本文解释了Klaytn网络在2021年11月13日经历的网络中断事件,强调了Klaytn区块链在一致性(Consistency)和可用性(Availability)之间的权衡选择。Klaytn优先选择数据一致性,因此当出现违反加密验证规则的交易时,网络会选择停止服务以保证数据完整性。
总结:Klaytn区块链的核心组件完全按照它们应有的方式运行,没有出现任何故障,而这恰恰是它发生中断的原因。
从2021年11月13日开始,Klaytn网络经历了长时间的网络中断。如果你有兴趣了解Klaytn团队和社区为解决中断而采取的技术原因和步骤,你可以从我们之前的帖子中的事件报告中了解更多信息。
但是,我认为对最近的Klaytn中断添加一些视角非常重要,这些视角可能会在情况的技术细节中丢失(特别是对于那些仍在学习区块链技术的人)。
从中断中得出的关键结论如下:Klaytn区块链的核心组件完全按照它们应有的方式运行,没有出现任何故障,而这恰恰是它发生中断的原因。
有一个重要的计算概念对于区块链架构尤其重要,称为CAP定理。CAP定理代表一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)。
CAP定理指出,在分布式系统(如Klaytn区块链)中,你不能同时拥有这三个属性,只能拥有两个。反过来,这意味着当你设计区块链系统时,你必须选择你的系统将优先考虑这三个属性中的哪两个。
通常,所有区块链都需要一定量的分区容错性,因为它们是全球网络,有时会出现连接失败、消息丢失和其他需要保护自己免受其影响的通信故障。
为了实现分区容错性,一些区块链使用工作量证明(Proof of Work)进行共识(如比特币),其分区容错性为50%,其他区块链(如Klaytn)使用基于实用拜占庭容错(Practical Byzantine Fault Tolerance)的权益证明(Proof of Stake)模型,其容错性通常为33%。此容错限制描述了网络在参与者连接问题或对网络状态的共识不一致的情况下继续运行的能力。它表示网络在必须选择保持其他两个CAP属性中的哪一个之前可以处理的默认部分:可用性或一致性。
一些区块链(如比特币或以太坊)选择可用性。这意味着,如果网络中存在分区,或者共识过程中存在分歧,超过了分区容错级别,则该系统将选择保持网络运行和可用。这种选择是有代价的。这意味着这种网络必须牺牲一致性(数据完整性),因此在此分区期间记录的任何数据都不是100%最终确定的,并且可能会更改。实际上,比特币的可用性非常强,以至于它表现出一种称为“概率终结性(probabilistic finalization)”的属性,这意味着比特币区块链上的任何数据实际上都不是100%最终确定的,而是网络记录该数据的时间越长,并且将其记录到区块链中的深度越深,它就越可能是正确的和一致的。实际上,比特币曾有两次大的历史案例,由于其对可用性的偏好,其数据被重写。
免费加入Medium,以获取该作者的更新。
其他区块链选择一致性。对于强一致性区块链(如Klaytn),这意味着它们的数据是“立即最终确定的(instantly finalized)”。换句话说,只要将数据放入区块链记录中,就可以保证记录到Klaytn区块链的数据与加密验证的规则正确且一致。加密验证的规则非常严格,并且由于基于同样强大的数学原理,因此无法被愚弄或破坏。它们是为什么区块链尽管是开放的分布式系统也可以实现其信任系统的基础。选择强一致性的折衷方案是,当分区容错阈值被打破时,网络有时会变得不可用。
这正是2021年11月13日在Klaytn网络上发生的事情。帐户更新交易代码中存在未经检查的内存共享错误。此错误试图将数据引入Klaytn网络,从而违反了加密验证的非常严格的规则。Klaytn的共识算法配置为不允许发生这种情况(请记住,它更喜欢一致性并且是立即最终确定的),并且它完美地完成了其工作。具有此不正确数据的区块未被共识允许记录到区块链中,因此我们遇到了网络不可用,通常称为网络中断。
更糟糕的是,Klaytn具有非常强大的gossip模型来传输数据并在网络的节点之间进行通信,以使新数据尽可能高效和快速地供网络其余部分访问(这有助于防止网络分区)。除此之外,传输的数据会临时存储在网络周围的节点上,以便传递给它们的邻居,从而进一步增加数据传播量。此事实延长了中断时间,因为每当网络尝试重新启动构建和接受新区块的过程时,都可以轻松访问无效交易(违反加密验证规则的交易)。
最后,这三个因素最终导致了我们Klaytn社区最近经历的中断:
我们希望此解释有助于阐明导致中断的事件,并向我们的社区成员带来一些开放性和透明度。话虽如此,Klaytn将继续努力改进这些机制,以避免中断,并继续寻找使网络更强大和更具弹性的方法。在我们团队和社区的支持下,我们确信能够实现这些目标。
特别是,Klaytn正在采取更广泛的举措,以增强社区包容性,以及专注于社区开发者沟通和关系的开源和开放网络计划。因此,我们正在努力提供更好的分析和浏览器工具,以及奖励社区的赏金计划,以帮助Klaytn做到最好。
有关这些及其他Klaytn相关主题的更多更新,请关注我们的官方渠道:
Twitter ](https://t.me/Klaytn_EN) | [Discord](https://discord.gg/5z2Htv6jAX) (EN/KR/CN) ](https://www.facebook.com/klaytn.official/) | [LinkedIn](https://www.linkedin.com/company/klaytn/) ](https://www.facebook.com/groups/klaytndevelopers/) | Discord Dev Channel
作者:Terry Wilkinson,Klaytn开发负责人
Terry Wilkinson是一位分布式账本技术专家,拥有超过7年的行业经验。他目前是Klaytn的开发负责人,他的重点是将Klaytn 2.0构建为具有全球竞争力的区块链基础层,以用于下一代去中心化产品和服务。
在他的职业生涯中,Terry曾从事多个以区块链为中心的初创企业和企业产品,包括:金融科技、医疗行业、NFT市场和DeFi解决方案。他曾关注(并参与)许多最受欢迎的Layer 1协议,其中包括:以太坊、Tendermint/Cosmos、Polkadot、比特币和Klaytn。
- 原文链接: medium.com/klaytn/an-exp...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!