区块链的十七个黄金(jīn)思想
2019-1-25 11:09
来源:
未央网
作者: 戴祎程
事(shì)中容错,事(shì)后一致——系统(tǒng)允许(xǔ)短暂错误,但保(bǎo)证最终一致性和正确性
一(yī)个不能接受错误存在(zài),或者因为存在错误导致(zhì)一系(xì)列问题(tí)影响可用性的系统,是没有生命力的。
区块链系统也一(yī)样,其本身(shēn)并没有要求输(shū)入系统的数据不能出错。这(zhè)一点可能与很多读者的认知(zhī)有所不同,许多人会认(rèn)为区块(kuài)链因为其数据无法篡改,因此一定要保证上链数据的真确性。数据无法(fǎ)篡改不等于(yú)无法更(gèng)改。其实,区块链系统(tǒng)恰恰是通过多数节点具有识别错误的能力,系统整(zhěng)体可以及时进行纠错,才让最终记录在区块链(liàn)并经过多(duō)次确认的(de)记录具有(yǒu)公信力。这可能也是区(qū)块链(liàn)系统区别于计算机领域传(chuán)统P2P系统的一(yī)个闪光(guāng)的设计思想。
计算机领域在分布式(shì)处理过(guò)程中(zhōng)追求高效、一致。对错误数据记录的修复和更(gèng)正,通(tōng)常会(huì)另行设计一套机制来保证。相(xiàng)对传统数据库,区块链由于需要保证事(shì)后数据的(de)不可篡改,引入了共识机制,为错误的出现和修(xiū)复(fù)提(tí)供更多的(de)容忍(rěn)度(dù)。这(zhè)一重要(yào)思想通常(cháng)被(bèi)许多区块链设(shè)计者所(suǒ)忽略,众(zhòng)多项(xiàng)目纷纷(fēn)追求提高短(duǎn)交(jiāo)易及确(què)认速度,这会导致弱化甚至牺牲其他(tā)节点(diǎn)对数据的验(yàn)证(zhèng)过(guò)程(chéng)。同时,更早更快的确认也会带(dài)来问题。参与生成数(shù)据的(de)节点需要满足(zú)生(shēng)成数据不(bú)能出错等更(gèng)严苛(kē)要求,导致(zhì)现在很多
区块链项目的在落地(dì)过程中出现困(kùn)难。因为系统使用方(fāng)会背上了数据必须一次性正确输入(rù)的包袱(fú),需要非(fēi)常保守和谨慎地选择上链数据。最终,区块链落地应用范围的狭窄,许多存在出错可能性(xìng)的数据难以结合区块链的优点参与业务升级改造。
笔者认为,区块链的设计(jì)不仅没有(yǒu)要求数据必(bì)须正确输入(rù),反而对(duì)上述问题提供了非(fēi)常有启发的处理模式和设计(jì)思想:当有数据出(chū)错的(de)时候,数据关联方都能及时感知到数据的(de)错误,并在第一时间通过某种协(xié)商机制(zhì)及时从不(bú)一致地数据中利(lì)用某种机制(
比特币中是少数服从多(duō)数的思想)快速(sù)挑(tiāo)出正确的数据,并最终使得该数据(jù)获得全局认(rèn)同(tóng)。这种数据确认过程,考虑了实际业务中可(kě)能存在的失误和系(xì)统性错误,具有很(hěn)强的包容(róng)性(xìng),值得业务系统在(zài)考虑错误处(chù)理(lǐ)更正流程设计(jì)时参考。在设计(jì)需要(yào)确认数据的(de)业务(wù)系统(tǒng)(或区块链系统)时,要权衡数据确认时间窗口(kǒu)以及系统纠错能力(lì),才(cái)能设计出适合自身业务特点(diǎn)的数据确认机制(共识机制)。一味(wèi)追求确认时间(jiān)短,会使系(xì)统适用的业务场景(jǐng)大幅受限,这对(duì)新(xīn)系统的落地应用是极为不(bú)利的。

版权申明:本内容来自于互(hù)联网(wǎng),属第三方汇集推荐平台。本文的版权归原作者所有,文章言论不代表链门户(hù)的观点,链门户不(bú)承(chéng)担任(rèn)何(hé)法律责任。如有侵权请联系(xì)QQ:3341927519进(jìn)行反馈。