区块链 · 数字资产知识 · 行业资讯
文章库关于本站

数字资产知识

设计区块链共识协议需要注意哪些问题

摘要

设计区块链共识协议,需要同时考虑参与资格、区块验证、分叉选择、确认条件和激励约束。工作量证明或权益证明只是其中的组成部分。关键是明确安全假设,让节点能够独立验证,并在消息延迟、竞争区块和恶意参与者存在时按照一致规则处理状态。

SGT区块链发行总量的科技主题配图

共识设计的范围

共识协议需要解决谁能提出区块、区块是否有效,以及出现竞争历史时如何选择等问题。以太坊开发者文档将共识机制描述为协议、激励与相关规则的整体,工作量证明和权益证明承担抗女巫攻击、参与区块生产等作用。

设计时应分别定义参与资格、有效性验证、分叉选择和确认条件。只确定采用哪种证明机制,还不足以说明节点如何持续形成一致的账本。

参与资格与安全假设

在开放网络中,一个参与者可能创建多个身份,因此不能直接把身份数量当作独立支持力量。设计需要说明参与权重依据什么资源,以及攻击者集中这些资源后能影响哪些行为。

安全条件还应区分恶意行为与暂时离线,说明网络通信受阻时哪些保证仍然成立。协议能否避免冲突历史被确认,与能否持续处理新区块,是需要分别分析的问题。

独立验证与分叉选择

比特币开发者指南说明,全节点独立验证区块;面对均有效的竞争分支,依据累计工作量选择链。这体现出有效性判断和历史选择是两个不同步骤。

设计时应先明确交易授权、重复花费和状态更新规则,再定义如何比较有效分支。即使某个分支得到较大权重支持,其中违反验证规则的区块也不能因此变成有效区块。

确认条件与网络传播

不同节点收到区块的时间可能不同,同一位置出现竞争区块并不必然意味着攻击。协议需要规定节点如何处理这种差异,以及收到新证据后何时调整所接受的历史。

应用关心的是记录何时足够稳定。因此,应把区块产生、暂时接受与确认条件区分开,并说明这些条件依赖的假设。评估处理速度时,也需要考虑传播和验证所需的时间。

激励约束与常见问题

采用经济激励的协议,需要让奖励、惩罚与可验证行为相对应,并分析参与者偏离规则的动机。经济成本可以约束攻击,但不能替代对验证规则和攻击条件的分析。

常见误区包括把节点更多等同于更安全、把最长链理解为区块数量最多,以及把共识等同于简单多数表决。实际判断必须结合参与权重、分叉规则和确认条件;不同协议的阈值与保证不能直接套用。

← 返回全部文章

延伸阅读 · 相关栏目

区块链基础技术原理数字资产知识资料与核验