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

研究与报告

区块链 链条设计有哪些常见问题:结构、共识与分叉解析

摘要

区块链的链条设计涉及区块连接、交易验证、共识规则和分叉处理。常见问题包括把哈希连接等同于绝对不可修改、只按区块数量选链、使用高度作为唯一标识,以及混淆交易收录证明与有效性验证。不同链的规则需要分别理解。

区块链供应链溯源的科技主题配图

链条设计需要解决哪些问题

区块链的链条设计,需要同时回答三个问题:历史记录怎样连接,新增记录怎样验证,出现竞争历史时怎样取得一致。哈希引用负责关联数据,共识规则负责约束节点接受哪些记录,两者需要配合。以下讨论适用于理解区块链基础结构;具体规则以比特币和以太坊的相关机制为例,不能直接推广到所有链。

问题一:把哈希连接理解为绝对不可修改

比特币开发者指南介绍,区块通过前一区块头的哈希相连,交易则通过默克尔根关联到区块头。修改历史交易会影响相关哈希引用,工作量证明进一步提高重建后续历史的成本。

区块链数字身份的科技主题配图

设计时需要区分“修改能够被发现”和“修改难以被网络接受”。前者来自数据之间的密码学关联,后者还依赖验证规则和共识机制。仅把记录串成哈希链,无法完整解决竞争历史的选择问题。

比特币挖矿散热的科技主题配图

问题二:选了PoW或PoS就认为共识已经完整

以太坊共识文档将共识描述为协议、激励与规则的组合。工作量证明和权益证明承担抗女巫攻击、区块作者选择等作用,还需要分叉选择等机制配合;以太坊的相关投票权重与质押余额有关。

因此,链条方案除了说明谁能提出区块,还需要说明其他节点如何验证,以及同时收到不同候选区块时如何选择。若只写“采用PoS”,仍不足以解释节点怎样保持一致。

问题三:把区块数量或高度当作判断依据

比特币在有效候选链之间比较累计工作量,不能简单理解为区块数量最多者胜出。同一高度也可能出现多个竞争区块,因此高度不能作为全局唯一标识,区块头哈希更适合用于引用具体区块。

数据库和查询接口若只保存高度,遇到分叉时就可能无法区分不同记录。设计中应保留区块身份及其前驱关系,并区分某个区块已被观察到与它属于当前选定链这两种状态。

问题四:混淆交易收录与交易有效性

比特币的默克尔证明用于证明交易被某个区块收录;交易输入是否可花费、是否重复使用,仍涉及交易验证规则。其UTXO模型要求普通交易使用尚未花费的输出。

接口设计应明确返回结果代表什么:找到交易、证明收录、验证有效性属于不同层次。还应考虑分叉带来的记录归属变化,避免把一次查询成功直接解释为历史永远不会改变。

← 返回全部文章

延伸阅读 · 相关栏目

行业资讯研究与报告政策资料交易平台观察