最近马蹄链这个区块链概念在圈子里, 讨论得非常之多, 但是, 大多数的内容都像是隔靴搔痒那样。我自己在过去几年里, 做了区块链底层架构方面的咨询工作, 评估过十多个共识的方案, 所以今天我要把这个事情讲透, 把马蹄链的设计思路还有实测表现说清楚。
马蹄链是什么
首先我们要明确的是, 马蹄链这种机制,它的本质其实就是一种叫做环形共识的拓扑结构。在这种结构里, 节点它们是按照一个固定的先后顺序, 把验证请求一个一个地往下传递。这个过程就像是一个马蹄铁, 它的头和尾相互连接, 从而扣成了一个完整的闭环形状。
它和我们平时所熟悉的那种传统的全节点广播方式是有着本质的区别的, 区别就在于, 强每个节点只跟它前面的那个邻居以及后面的那个邻居进行通信操作 , 由于这样的设计, 它直接就把网络方面的开销给削减掉了一大截子。
这个名字由来非常直接, 原因是一圈验证的节点摆成了弧形的样子, 数据是沿着这条弧线做单向流动的, 等到转完了整整一圈之后就完成了确认的这个动作, 整体的形态实际上看起来确实就像是一个马蹄铁被扣在了地面上一样。
马蹄链怎么运作
从流程拆开来看的话, 发起方会把交易交给那个最近的接入节点, 然后该节点把它封装以后传给下游方向, 在沿途的每个节点都要做轻量级的签名校验, 等这一轮转完以后, 所有节点都完成签名的时候才算出块, 只要有一个节点拒绝签收那么这整一轮就得作废并且要重新再来过。
在实际部署的操作里, 马蹄链这个东西通常是被挂在L2架构里面的。主链负责管最终的结算问题。同时马蹄环负责负责批量交易排序的任务。我去实测过一个具体的项目情况。那个项目的TPS数值是能够跑到每秒四千多笔的。端到端延迟被压到了大概是秒半左右的一个水平。对于高频应用场景而言来说这个性能是足够使用了。

简单来说, 马蹄链的做法就是在共识这个层面加上了一个环形的传送带结构, 这种设计通过拿出部分的分权化程度, 来换取交易处理速度的提升。至于这种模式是否适合你的项目, 核心判断依据就在于对你来说吞吐量还有响应时间这两项硬性指标约束得严不严格。
