# 👑web3.0 公链

By [bdstravel](https://paragraph.com/@bdser) · 2022-10-28

---

web3.0 主要结构
-----------

*   激励层
    
*   应用层
    
*   身份层
    
*   计算层
    
*   存储与通信
    

### 计算层

web3.0 计算层是开放的，谁都可以使用，不像现在我们登录的网站，都是运行在自己的服务器上，在web3.0的世界里，把计算层独立了出来，就像是我们现在用到的5G网络，自来水，电网一样

独立出来的好处，避免数据垄断，让数据以公共账本的形式公开，当然数据公开也不是终点，让数据回归创造数据的人才是终点，但是这一切需要从摆脱数据垄断开始

*   公链： 公链节点随时加入或者退出
    
*   联盟链： 联盟节点接入需要许可
    

公链
--

以太坊（eth）就是一种提供通用计算服务的基础设施，由于eth的计算网络可以随时进出，即不回收到任何限制，也不会影响算功能的输出，所以我们一般都把eth这样的网络称为 『公链』

### 比特币（btc）

比特币是第一个基于去中心化的网络，实现了一种确定性的计算服务，我们也可以管他叫做『数字黄金』，带引号的，但是从技术角度来将，\*\*比特币实际是一套『状态转换系统」，\*\*这个系统是以比特币的交易信息作为输入，并将这些输入，转换为新的比特币的账本进行输出

比特币目前不完备的特点

*   架构涉及太紧密，缺乏必要性的扩展
    
*   脚本只能实现一些简单的合约功能
    
*   不支持复杂的循环计算，无法完成实现图灵完备
    
*   比特币系统里面，代表还未花费余额的 UTXO，进行类似0和1的逻辑功能
    
*   不能实现诸如多阶段期权合约，以及去中心化交易报价等功能
    

所以eth，就是在btc的基础之上建立了一个替代框架，基于这个框架，就可以让客户端的计算性能更强大，也可以让开发更简单，同时还能允许应用程序共享区块链的安全性

### ETH 世界通用账本

eth内置了图灵完备的编程语言，这样任何人都可以基于eth编写智能合约，进行去中心化应用开发，也可以自由的针对所有权规则，交易形式和状态转换函数进行设定

eth 通过账户来反应状态，账户包括资产余额，还可以和合约进行交换，有了『账户』之后，智能合约的执行，就更加轻便和快捷，从而可以给他的扩展性创造条件

所以，基于以上设计，以太坊就可以实现更多更加精细化的控制。举个例子。在转账的功能方面，比特币可以设置成集齐五个账户中的三个，才可以发起转账支付，而以太坊则可以设置为集齐五个账户中的三个账户的签名，最多可以提取合约中的 80% 的金额，如果只是集齐五个账户中两个账户的签名，则每天最多可以提取合约中的 10% 的金额。

功能

*   为去中心化的应用提供计算支持 ，比如金融应用
    
*   为用户提供代币发行，储蓄，与借贷以及金融衍生品等服务，典型例子是Defi
    

可以说ETH就是去中心化应用的提供通用计算功能的基础层，强调账户状态的严格同步，eth 也被称为『世界通用账本」

IPFS
----

ipfs全称 星际文件系统 他是一个可以按照内容进行检索的文件存储和调用系统

基于ipfs协议，存储文件流程的大概是，以256kb为单位，进行切割文件，然后分别到不同节点进行存储，同时为每个文件生成一个哈希值，将哈希值和文件进行捆绑，会形成一个完整的索引架构，可以想想文件的目录功能

但是这样的搜索文件起来，就会显得慢一些。因为每次需要遍历所有索引文件来寻找

文件是通过加密手段进行内容加密的，而且只有旷工在用户发出检索文件请求以后，才会在ipfs的索引结构中找到对应的文件

我们知道，数据的基本特性就是 存储即拥有，我们自己的行为数据保存在互联网公司的服务器上，其实同时也就把数据的使用权，默认赋予给了互联网公司，那互联网公司为了获得『被赋予』数据使用权的资格，也会宁愿提哦那个免费服务吸引客户，而IPFS设计模式，正式为了打破这种模式，基于IPIF协议，用户不用担心网站被攻击，跑路，删除而无法下载数据，也不需要为数据存储篡改而担忧，同时IPFS还可以将分布不同地域的存储空间进行整合利用，从而就为个人，分散的存储空间找了一个经济变现的机会，下面看俩个案例

### NFT头像

2021年下半年，加密头像突然火了起来， 比如Crypto Punk 和 Bored Ape Yacht Club 的地板价，已经达到了 数百个ETH

![](https://storage.googleapis.com/papyrus_images/cad74284dcb5d39f7dac3fa34fe63c1a0e9694c550ec838c3c106b4b90e85a40.png)

我们可以想想看，如果这些头像保存在中性化的网络服务器上，理论上来说，图片就是随时可以被篡改的或者永久消失，而如果把图片直接上传到eth上，可能Gas费会非常昂贵，因此，大量的NFT项目就选这通过IPFS来存储这些图片

2022年4月1日，eth宣布其官网网站 ethereum.org ，已经部署到了IPFS上，用户可以通过ens浏览 etheretherum.et网站。这样的消息动态，其实也是正说明web3.0不同协议之间的可组合性

internet Computer
-----------------

专门web3.0 而生的公链

我们知道，目前eth 在btc的基础上，实现了图灵完备的智能合约，理论上是可以支持去中性化应用，但是理论归理论，实践归实践，事实上，eth只能支持有限的去中心的应用

为什么会是这样呢？因为就是著名的CAP不可能三角定理，在一个分布式系统中，一致性、可用性、分区容错性三项特征中，最多智能存在其中俩个。

简单来看，一致性（Consistence）也就是 CAP 中的 C，它是指所有节点数据是否保持一致。我们根据数据一致性的不同程度，可以分为强一致性、弱一致性和最终一致性，这里的强一致性，是指所有节点写操作完成之后，数据都是完全一致的；而弱一致性则可以容忍写操作之后，出现部分或全部不一致数据；最终一致性则只要求，经过一段时间之后的数据一致即可。

然后是可用性（Avalibility），就是 CAP 中的 A，是指系统每次向未崩溃的节点发送请求，都能得到回应。也就是说节点处于可响应状态，对于需要处理的计算任务可以及时完成。

至于分区容错性（Partition Tolerance），就是 CAP 中的 P，它是指节点之间传递信息，可以出现误差或延误，但不会影响系统整体运行。

那么，对于区块链来说，分区容错是前提。所以，不同的区块链，只能在一致性和可用性上做出取舍。比如比特币和以太坊，就是以放弃一定的可用性为代价而追求强一致性的代表。比如说比特币。从数据结构上来看，它的每个节点、每一次交易验证，都需要遍历操作。也就是说，在发起转账之前，我们先要验证这个人是否有足够的比特币用来转账。那么如何判断这个人是否拥有足够的比特币呢？比特币的设定是要看转账给他的人是否拥有足够的比特币，按照这种方式，我们每一次转账，都要回溯到这个比特币是在哪个区块、由哪个矿工挖出来的，然后又通过多少次转账才到了自己的名下。整个验证一遍，我们才能最终确认这笔转账是否有效。所以，这样的查询方式效率就会非常低。

从数据存储上来看，比特币的每个节点都需要下载完整数据包，那么当交易越来越多的时候，节点存储空间，就成为了区块链处理效率的又一个瓶颈。从计算方式上来看，比特币的全部交易都只能通过串行计算而没有并行计算，所有节点都需要针对所有任务进行重复计算，所以计算效率也会受到很明显的影响。

然后我们再来看以太坊。首先，虽然它设置了“账户”，从数据查询的角度来看不再需要“遍历”操作，但以太坊每块存储空间仅为 1MB，区块大小的限制依然很明显。而且，以太坊同样也只支持串行计算，不支持并行计算。所以，以太坊仍然属于强一致性、低可用性的公链。强一致性对于金融相关的应用非常重要，但是对于其他类的应用来说，就显得能力不足了。

目前基于以太坊的应用，往往会采用一种“混合结构”，即和资产相关的操作在链上执行，而和资产无关的业务放在链下执行。这样做的好处是成本上的经济，但缺陷就是，去中心化应用仍然在某种程度上，依赖于中心化节点，由此而来的“单点故障”“数据泄露”等问题，仍然没有得到完美解决。

而现在我们要说的 Internet Computer（IC），是以打造“互联网计算机”为目标，为去中心化应用提供全栈式开发及运维系统，它把去中心化应用延伸到了更广泛的场景。

IC 是由一组加密协议组成的，这些协议会把独立操作的节点连接到一组区块链网络中。同时，它还克服了传统区块链上，智能合约在速度、存储成本和计算方面的限制，使得智能合约可以以近似于中心化网络的速度运行。另外还有一点，不同于以太坊生态往往偏向于金融属性，基于 IC 建立的是一种“全栈式”的去中心化应用，从前端到计算再到后台，都可以基于 IC 通过不同的容器，从而实现一种“无单点故障”运行状态。

而且，基于 IC，我们不仅可以实现已经出现在以太坊上的各种应用，甚至可以构建一个完整的比特币和以太坊的节点，使得在 IC、比特币和以太坊之间，能够实现一种原子层面的互操作性。

不过，虽然 IC 的技术架构更加适应去中心化应用，但由于 IC 还处于生态发展的早期，各种基础设施有待完善，比如说转账的原子性，还没有形成统一的技术标准。

### ETH 依然处于在赛场的最前沿

eth把pow机制转换为了 Pos共识机制，并且通过分片技术进行全面扩容，这个分片技术的思路，就是支持eth并行计算，提升效率

Layer-2
-------

Layer-2的思路是将部分计算工作从链上移到链下，并通过某种机制实现链下和链上安全性的共享，目前已经出现了zk Rollup（zkr）和Optimistic Rollup（op） 等技术路线。不过也还没有进入大规模的状态，使用的时候，也请注意风险，从另外一个角度来看呢，也算是可能一个投资机会

最后想说，其实这些公链都有一些问题还有待解决，希望通过今天的讲解，能够比较深入了解公链的赛道

谢谢

---

*Originally published on [bdstravel](https://paragraph.com/@bdser/web3-0)*
