首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从“中本聪共识”说起,谈谈区块链共识中的“确定性”

开始讨论共识机制中“确定性”概念时,我们先用两个达成共识的场景作为参考。

场景一:一群人决定一起吃饭,其中有几个人是leader,吃什么由他们决定,只要leader们决定“吃火锅”,其他人只能够选择吃/不吃,而没办法决定“吃什么”;

场景二:一群人决定一起吃饭,每个人都可以选择“吃什么”,也可以选择推翻自己之前的决定,只要时间够长,就一定能达成一致;

对比上述两个例子,“吃什么”的确定过程呈现出两种不同的形式:场景一中leader决定“吃火锅”后,结果就不会修改,但是其他参与者可以选择吃/不吃;而在第二种场景中,“吃什么”则是一个不断变化的因素,只要还有一个人没确定“吃什么”,那么他就有概率推翻之前所有人达成的“吃什么”的共识。

上述例子其实描述了共识机制中“确定性”的不同,场景一象征BFT共识,具备“最终确定性”,“吃火锅”是最终确定的,不存在“吃烧烤”的可能;场景二象征“中本聪共识”,具备“概率确定性”,即便达成“吃火锅”的共识,也存在“吃烧烤”的可能性。

同时,我们也不难看出决定确定性的本质特性是共识范围,也就是“谁说了算”,场景一中是leaders,场景二中则是吃饭的所有人。“谁说的算”确定,你就会相信结果不会被修改,“谁说的算”不确定,你就不会相信结果不会被修改。

就目前常见的共识机制而言,“确定性”主要分为两种:“概率确定性”以及“最终确定性”。

“概率确定性”如中本聪共识中“最长链机制”,任何一笔交易都要等待六个区块确认;所有保存到本地的区块链必须是被本地节点验证通过的最长链;只有最长区块链上的区块才能获得系统承认并得到挖矿奖励。

在概率性确定中,包含交易的区块在链上埋得越深,该交易被撤销的可能性越低。

值得注意的是,开发者可以选择通过增加区块确认长度的方式,降低交易被撤销的可能,但是永远无法消除这种可能性,区块总存在被逆转的可能性。只不过鉴于比特币网络中庞大且昂贵的算力成本,不会有人轻易选择砸钱逆转区块;但是这无疑也是一个“隐性炸弹”,一旦区块真的被逆转,交易作废带来的影响难以估量;尤其是当区块链开始尝试融合实体产业时候,在某些场景中,交易可逆性无疑更加可怕。

“最终确定性”往往是是基于拜占庭容错协议(BFT)衍生的共识机制产生的,如Polkadot、YeeCo中的共识算法。在最终确定性逻辑中,一旦交易被包含在区块中并添加到区块链上,该交易就会被立即视为最终确定,而不像比特币的区块只是处于“很可能”被确定的状态。这意味着一旦在区块中达成协议,区块就会最终确定,其中的交易也不能被逆转。

在比特币网络当中,由于“中本聪共识”具备的“概率确定性”,导致区块存在被撤销的可能,最终威胁到系统的安全。典型的例子就是“双花攻击”,当恶意节点累计了 51% 的挖矿能力,他们就可以通过逆转/撤销区块作恶。不过鉴于比特币网络庞大的算力基础,并不会有人轻易占据如此大规模算力。

而在拜占庭容错机制中,由于“最终确定性”存在,即使有一小部分参与者的行为表现异常,拜占庭容错(BFT) 协议也能正常工作。唯一存在隐患的是拜占庭容错往往需要一个类似“leaders”的团队达成足够多共识才能提交到区块链上,在这一环节中存在作恶的可能性。不过,作恶需要采取区块链分叉的方式,就不仅仅是区块链行为,也涉及到共识参与人的博弈行为,这种博弈也间接降低了分叉的可能性。

如果仅从“交易是否会被撤销”的角度出发,无疑最终确定性更占有优势,尤其是在处理一些能够对应链下世界的权属转移(比如支付,充值等等)行为时,交易可被修改对这些经济活动的破坏是致命的,自然这些场景更倾向于具备“最终确定性”的共识。

但是,区块链并非仅仅承载“交易”类功能,在某些应用场景中也并非只有“是”或者“不是”两种选项,区块可逆不会导致严重后果,那么在这些场景中则更需要相对灵活的“概率确定性”的共识。

综合而言,很难说概率确定性和最终确定性究竟哪种更可行。或许,考虑在概率性确定与最终确定性之间取得适当平衡,更加恰当。

(作者:阿常,内容来自链得得内容开放平台“得得号”;本文仅代表作者观点,不代表链得得官方立场)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191112A0IVUV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券