区块链的分区技术, 也就是大家常说的sharding, 是目前让分布式账本能够突破单条链的交易处理上限的主要办法, 其中的核心想法是把整体状态拆分成多条子链来并行进行工作, 但是关于究竟应该如何进行划分, 以及划分完毕之后又该如何实现同步的问题, 实际上远比表面上看起来的那种样子要复杂得多, 所以接下来会分别从已经出现的实现机制方式, 还有目前所存在的已知的不足之处这两个不同的角度, 详细把其中所包含的所有细节全部都交代清楚。
区块链分区怎么实现
确定性路由和随机洗牌是两条不同的技术路线, 前者的做法是根据账户哈希取模来固定归属关系, 后者的做法是让验证者在每一轮都重新进行分配,以太坊2.0均衡器方案会每隔32秒刷新一次这种状态, 其根本目的就是为了防止攻击者长期蹲守在特定的分区上面。
真正工程量大的是跨分区交易, 一笔跨区转账需要经历本地确认、中继网关和对端确认这三段过程, 延迟直接翻倍, 协议层必须预留可靠的消息通道, 否则分区之间就会变成信息孤岛。
区块链分区有哪些问题
安全模型遭受削弱, 这是最为关键的代价所在。攻击者如果想对单个分区发起攻击, 那么他们所需要付出的努力, 仅仅在于获取该分区51%的算力。

这一点在门槛从全网量级降到了局部量级的变化中体现得十分明显。在以太坊于2017年发布的关于分片的白皮书文档当中, 曾经专门使用博弈模型来针对这一特定风险进行论证和说明。
数据可用性这一件事情也是非常棘手的。因为每一个节点都只把属于自己那一块儿的数据进行持久化保存, 所以当需要去查询全局状态的时候, 就必须跨越多个节点来进行聚合操作。
这样一来, 网络的带宽消耗就会跟着分区数量的增加出现线性膨胀的情况。目前在工程实践中, 大家主要是依靠冗余副本这种方式来作为最终的保底手段, 但是在理论层面之中, 至今为止依然没有找到所谓的优雅解法。
这个分区把吞吐量的相关指标给换了, 变成了工程复杂度的衡量标准。所以在项目准备启动之前, 必须要先确认清楚业务方面是不是真的有达到这个数量级的实际需求在那里, 千万别因为没有实际必要性, 却为了划分分区本身而去进行划分操作。
转载请注明出处:imtoken,如有疑问,请联系()。
本文地址:https://www.zmdyd.cn/imazbqb/10692.html
