一个不能接受错误存在,或者因为存在错误导致一系列问题影响可用性的系统,是没有生命力的。
区块链系统也一样,其本身并没有要求输入系统的数据不能出错。这一点可能与很多读者的认知有所不同,许多人会认为区块链因为其数据无法篡改,因此一定要保证上链数据的真确性。数据无法篡改不等于无法更改。其实,区块链系统恰恰是通过多数节点具有识别错误的能力,系统整体可以及时进行纠错,才让最终记录在区块链并经过多次确认的记录具有公信力。这可能也是区块链系统区别于计算机领域传统P2P系统的一个闪光的设计思想。
计算机领域在分布式处理过程中追求高效、一致。对错误数据记录的修复和更正,通常会另行设计一套机制来保证。相对传统数据库,区块链由于需要保证事后数据的不可篡改,引入了共识机制,为错误的出现和修复提供更多的容忍度。这一重要思想通常被许多区块链设计者所忽略,众多项目纷纷追求提高短交易及确认速度,这会导致弱化甚至牺牲其他节点对数据的验证过程。同时,更早更快的确认也会带来问题。参与生成数据的节点需要满足生成数据不能出错等更严苛要求,导致现在很多
区块链项目的在落地过程中出现困难。因为系统使用方会背上了数据必须一次性正确输入的包袱,需要非常保守和谨慎地选择上链数据。最终,区块链落地应用范围的狭窄,许多存在出错可能性的数据难以结合区块链的优点参与业务升级改造。
笔者认为,区块链的设计不仅没有要求数据必须正确输入,反而对上述问题提供了非常有启发的处理模式和设计思想:当有数据出错的时候,数据关联方都能及时感知到数据的错误,并在第一时间通过某种协商机制及时从不一致地数据中利用某种机制(
比特币中是少数服从多数的思想)快速挑出正确的数据,并最终使得该数据获得全局认同。这种数据确认过程,考虑了实际业务中可能存在的失误和系统性错误,具有很强的包容性,值得业务系统在考虑错误处理更正流程设计时参考。在设计需要确认数据的业务系统(或区块链系统)时,要权衡数据确认时间窗口以及系统纠错能力,才能设计出适合自身业务特点的数据确认机制(共识机制)。一味追求确认时间短,会使系统适用的业务场景大幅受限,这对新系统的落地应用是极为不利的。
版权申明:本内容来自于互联网,属第三方汇集推荐平台。本文的版权归原作者所有,文章言论不代表链门户的观点,链门户不承担任何法律责任。如有侵权请联系QQ:3341927519进行反馈。