科普 | 区块链数据可用性问题与解决方案
在 2017 年,区块链的一切活动都向以太坊看齐,以太坊的价格飙升,人们蜂拥而至来创建应用(那是在 “buidl” 运动之前),而且大企业开始参与其中。但是这种史无前例的成功超过了以太坊的处理能力。
-没错… 以那个 gas 费完成交易需要花费好几天-
以太猫是第一个获得大规模成功的分布式应用。但是它(以及其它应用)抢占了以太坊网络的所有资源 —— 导致链的待打包交易池(mempool)以一个前所未有的速率增长。一夜之间,人们开始讨论起 Plasma 和状态通道,认为这些会是解决我们扩展问题的方法。但是,除开那些讨论和激动的情绪,这些解决方案的开发过程却步履维艰,一些社区成员因此开始怀疑这些方案的可行性。但是现在,随着这些方案逐步上线,人们意识到困扰了开发者很长时间的真正问题是一个很显然的数据可用性问题。
本文将初步讨论数据可用性问题的背景以及不同的二层网络方案是如何解决这个问题的,这些方案包括:Plasma,状态通道,以及弹性侧链。
数据可用性问题
就像 Vitalik 之前解释过的一样,数据可用性问题的由来,是恶意矿工会试图发布一个存在区块头,却丢失部分或全部数据的区块至链上。这种攻击行为会造成:-
欺骗网络来接受一个无效的区块,而且也没有方法来证明此区块的无效性。 -
阻止节点获得当前状态。 -
阻止节点创建区块或转账,因为他们缺少相应的信息来构建证明。
显然,对于真正的去中心化网络而言,这是不可持续的。随着区块链规模的不断增长,有能力参与网络并担当节点的电脑的数量会不断减少。那么我们怎么应对这种情况呢?
例子
在实践中
解决方案
SKALE 的方案
-
发送区块的验证者 A 向其所有对等节点发送区块提案以及构成提案 P 的所有交易的哈希值。 -
接收到 P 及相关哈希值之后,每个对应节点将哈希值与本地待打包交易队列中的转账进行匹配,以重构出 P。对于在队列中找不到的转账,节点们将向发送转账的验证者 A 发送查找请求。然后,发送方验证者 A 将这些交易的主体发送给接收方验证者,从而允许对等方重构区块提案并将该提案添加到其提案存储数据库 PD 中。 -
在此之后,节点们会向 A 发送一个带有门限签名的收据。 -
在从节点处收集了绝对多数(大于三分之二)节点的签名之后(包括 A 自己),A 将创建一个绝对多数签名 S。这个签名会作为绝大多数验证者都拥有 P 的一个证明。 -
A 会向其他所有验证者广播这个绝对多数签名 S。
总结
了解更多
(本文来源于以太坊爱好者 EthFans,未经作者许可严禁转载,违者法律必究)