4月7日,V神的网站更新了一篇名为《分片为何如此出色:揭开技术属性的神秘面纱》的文章,其中提到:分片是以太坊可扩展性的未来,它将是帮助生态系统每秒支持数千笔交易,并允许世界上大部分地区以可承受的成本定期使用该平台的关键。
你或许也知道,限制目前区块链技术大规模落地应用的一个很重要因素就是性能,这也是为什么很多传统互联网从业者不太看好区块链技术的一个原因。那么,如何解决区块链的性能问题呢?其中的一个解决方案就是分片技术(Sharding)。
什么是分片?
分片是数据库分区的一种形式,也称为水平分区,即将一个大的数据库切分成很多小的、可处理的部分,从而提高性能,缩短响应时间。
V神提议对以太坊未来的分片和历史访问进行预编译:Vitalik Buterin(V神)发文研究对未来的分片和历史访问进行预编译。V神在文章中表示,当前以太坊设计中的向后兼容性挑战之一是,历史访问需要在EVM中验证Merkle证明,该证明假设区块链将永远使用相同的格式和相同的密码。分片增加了这一点的重要性,因为用于rollups的欺诈证明和有效性证明需要指向分片数据的指针。V神提出了一种更加面向未来的方法:我们可以添加执行验证特定类型证明的抽象任务的预编译,而不是要求在EVM中验证历史和分片的证明。如果将来更改格式,预编译逻辑将自动更改。预编译甚至可以具有条件逻辑,用于验证转换前slots的一种证明和转换后slots的另一种证明。[2021/6/13 23:33:43]
分片并不是一个新的概念,早在 90 年代后期就出现在了传统的中心化数据库管理中。这个概念的流行,要归功于一个多玩家同时在线玩的角色扮演游戏 Ultima Online。
V神提出跨Rollup扩展方案以实现L2项目相互通信:3月3日消息,近日V神于社区论坛提出了一种针对特定类型的跨Rollup扩展的解决方案,以连接第二层扩展项目。根据该方案,虽然目前有许多项目已经部署了第二层Rollup方案,但问题在于各种二层项目不能直接在L2上实现相互通信。V神提议使用Rollup在两个支持智能合约的协议之间进行传输。假设一个rollup可以处理简单的事务,而另一个则具有完全的智能合约支持特性。为确保未来交易的安全,智能合约将被编程为接受“备忘录”,其中包括任何人向它发送的额外数据。事务将创建一个连接层,在所有这些隔离的合约中保存存款,允许rollup A通过该层发送到rollup B。针对该方案,Alon Muroch表示该方案就像银行之间的交易清算一样。将资产批量分配到单独的“账户”中可能会有限制,但两端都设置一个大池,并按比例分摊费用可以是一种解决方案。(Cointelegraph)[2021/3/3 18:10:05]
在这个游戏中,开发者将玩家分配到不同的服务器来缓解流量压力(这意味着有很多个平行的“游戏世界”)。商业上,一个普遍的分片案例就是将用户信息的数据库按照地理位置划分,同一个区域的用户信息放在一起,存到单独的服务器中。
动态 | V神提出可通过及时探测器解决51%攻击问题:以太坊创始人V神(Vitalik Buterin)认为51%攻击问题可以通过及时探测器(timeliness detectors)来解决。V神提出的新概念解决了三个挑战,因为它允许活跃的区块链用户就三个至关重要的问题达成一致:
1. 是否已经发生了“足够严重的”51%攻击;
2. 要聚合的“正确”链是什么;
3. 哪些验证器应该为攻击负责。
这个分析将通过随机挑选的验证者进行。相关人员会检查每个区块的时间戳,看看它是否“准时”出块。因此,只有那些“准时”出块的区块才会通过验证者的签名重新广播到主网上。(U.Today)[2020/2/14]
什么是区块链领域里的分片?
动态 | V神提出数据迁移新方法 或使以太坊1.0更快过渡到2.0:在12月23日的Ethresear.ch提案中,以太坊联合创始人Vitalik Buterin提出了一种将数据迁移到以太坊 2.0的更快方法,这意味着期待已久的升级可能比预期的要快。Buterin描述了一种消除Ethereum 1.0当前工作证明区块链的方法,这将允许项目“加速进度”与Ethereum 2.0的信标链合并。据悉,以太坊2.0是一个多年的项目,它经常面临延迟。目前还不清楚这一过渡将在何时实施。(CryptoBriefing)[2019/12/24]
区块链就相当于一个数据库,每一个节点都相当于一个独立的服务器。正常情况下,这些节点每次只有一个节点能获得记账出块的权利,剩下没获得出块权的节点相当于做了“无用功”,白白浪费了算力。
如果将分片技术运用到区块链中,就相当于将区块链网络里的所有待处理任务(比如确认交易、运行 DApp 等)进行分解,全网的节点也进行分组,每一组同时处理一个分解后的任务(比如 150 笔待确认交易),这样就从原先单一节点处理全网的所有任务变成了多组节点同时并行处理。
举个例子,假设目前以太坊上有 8,000 个节点(矿工),全网待确认的交易是 15,000 笔。以太坊每秒能处理 7-15 笔交易,正常情况下至少需要 1000 秒才能处理完这些待确认的交易,当然处理的过程中又会有新的待确认交易产生。
如果采用分片技术,将 8,000 个节点分成 100 组,每组 80 个节点,这 15,000 笔待确认交易分成 100 个分区,每个分区 150 笔,那么,每组节点(80 个)可以并行处理各自分区里的待确认交易(150 笔),这样最快 10 秒钟就可以全部处理完那 15,000 笔待确认交易。
从这个例子中,我们可以看到,分片技术可以大幅提高区块链的性能。
分片技术潜在的风险
那么,分片技术有没有缺陷呢?答案是肯定的。
分片技术虽然能在一定程度上解决区块链的性能问题,让区块链更具有可扩展性,但也存在两个缺陷。
一个是分区后,不同区的通信问题。上面的例子,将以太坊网络分成 100 个分区,每个分区都是独立的,相当于有 100 条独立的、平行的以太坊区块链,每条都由一组矿工(80 个节点)维护和确认交易。
这 100 条独立的以太坊区块链并不能相互通信,如果要通信,势必要增加跨分区的通信机制(类似垮链),这会增加区块链的复杂性,开发难度也会提高。
第二个是区块链的安全性。还是上面的例子,在未分片之前,以太坊网络是 8,000 个节点组成的算力,分成 100 个分区后,每个分区相当于一条独立的以太坊区块链,算力下降到 80 个节点组成的算力。
此时,对其中一个分区进行 51% 算力攻击就容易很多。控制了一个分区,攻击者就可以在这个分区内做恶,篡改交易。
以太坊基金会计划将分片技术作为以太坊 2.0 的升级内容之一。以太坊如何解决分片技术的上述 2 个缺陷,我们拭目以待。
除了性能问题,你觉得目前的区块链技术还存在哪些问题?欢迎在留言区分享。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。