什么是区块链数据可用性问题,我们如何使用纠删码来解决它?_区块链技术_区块链神吐槽
区块链技术资源分享
追寻中本聪先生的脚步

什么是区块链数据可用性问题,我们如何使用纠删码来解决它?

我们可以通过某种奇特的密码累加器方案来消除解决数据可用性的需要。

假设有一个方案存在一个表示状态的对象S(S可能是一个散列),以及个别用户持有的可以证明存在状态对象的辅助信息(“证人”)(例如S是Merkle根,证人是分支,尽管其他结构如RSA累加器确实存在)。存在广播一些数据的更新协议,并且该数据改变S以改变状态的内容,并且还可能改变证人。

假设某个用户在该状态下有一组N个对象的证人,并且更新了这些对象中的M个对象。接收到更新信息后,用户可以检查所有N个对象的新状态,从而查看哪个M被更新。因此,更新信息本身至少编码〜M * log(N)个比特的信息。因此,为了实现M事务的效果,每个人所需要的更新信息必须是O(M)的大小。

那么这意味着我们实际上可以创建可扩展的分片式区块链,其中发生不良事件的成本与整个验​​证器集的大小成正比。

有一个微不足道的攻击,攻击者总是可以焚烧O(c)资本来暂时降低碎片的质量:通过发送高交易费用的交易来阻止垃圾邮件,迫使合法用户不让你进入。这种攻击是不可避免的; 你可以用灵活的燃料限制进行补偿,甚至可以尝试根据使用情况尝试自动重新分配节点到碎片的“透明分片”方案,但是如果某个特定的应用程序是不可并行的,Amdahl的法律保证你没有任何东西可以做。在这里打开的攻击(提醒:它只适用于Zamfir模式,而不是诚实/不协调的多数)可以说没有比交易垃圾邮件攻击严重得多。因此,我们已经达到了单个碎片安全性的已知限制,并且试图走得更远是没有价值的。

让我们回头一点。如果我们有即时洗牌,我们是否真的需要这种复杂性?不立即洗牌基本上意味着每个分片直接从全局验证器池中提取验证器,所以它就像区块链一样运行,因此分片实际上不会引入任何新的复杂性?

有点。首先,值得注意的是,即使没有分片,工作证明和简单的证据证明,两者在贿赂攻击者模型中都具有非常低的安全性; 一个区块在经过O(n)个时间后才真正地“定型”(好像只有几个区块已经过去了,那么替换链条的经济成本就是从区块之前开始双重支出的成本有问题)。卡斯帕尔通过增加最终机制解决了这个问题,经济安全边际立即增加到最大。在一个分支链中,如果我们想要经济最终的话,那么我们需要提出一个推理链,为什么一个验证者愿意在一个完全基于随机样本的链上做出非常强烈的主张,

分享到:更多 ()
区块链神吐槽

区块链资源分享

韭菜的自我进化