本文已参与「新人创作礼」活动, 一起开启掘金创作之路。
免责声明:本文仅从技术角度翻译、分析Solana,不构成任何的投资建议。原创翻译,转载请注明出处。
本⽂提出了⼀种基于历史证明(PoH)的新的区块链架构—⼀种⽤于验证事件之间的顺序和时间流逝的证明。PoH ⽤于将不受信任的时间流逝编码到账本中 - 这是⼀种只会累加的数据结构。当与⼯作量证明 (PoW) 或权益证明 (PoS) 等共识算法⼀起使⽤时,PoH 可以减少实用拜占庭容错算法的消息传递开销,从⽽实现亚秒级确定。本文还提出了两种利用时间保持PoH账本属性的算法——⼀种可以从任何⼤⼩的分区中恢复的 PoS 算法和⼀种⾼效的流式复制证明 (PoRep)。在时间排序和存储⽅⾯,PoRep 和PoH 的组合提供了对账本伪造的防御。 本文是基于1gbps的网络上分析的,表明以当前的硬件水平,吞吐量高达710k txn/秒是可以实现的。
1 简介
区块链使用复制状态机的方式来解决容错的问题。当前公开可⽤的区块链不依赖于时间,或者对参与者保持时间的能⼒做出弱假设[4, 5]。⽹络中的每个节点通常依赖于他们⾃⼰的本地时钟,⽽不知道⽹络中任何其他参与者的时钟。缺乏可信的时间来源意味着当使⽤消息时间戳来接受或拒绝消息时,⽆法保证⽹络中的每个其他参与者都会做出完全相同的选择。本文介绍的 PoH 就是为了创建具有可验证时间流逝(指事件的持续时间和消息排序)的账本。预计⽹络中的每个节点都将能够在没有信任的情况下依赖账本中记录的时间流逝。
2 ⼤纲
本⽂的其余部分组织如下。
第3章描述了整体系统设计
第4章深入描述了历史证明
第5章深入描述了股权证明共识算法
第6章深入描述了提议的快速复制证明
第7章深入描述了系统架构和性能限制
3 ⽹络设计
见图 1,在任何时间,都有一个系统节点被指定为Leader⽣成历史证明序列,提供⽹络全局读取⼀致性和可验证的时间流逝。Leader 对⽤⼾消息进⾏排序和排序,以便系统中的其他节点可以有效地处理它们,从⽽最⼤限度地提⾼吞吐量。它在存储在 RAM 中的当前状态上执⾏交易,并将交易和最终状态的签名发布到称为Verifier的验证节点。验证者在他们的状态副本上执⾏相同的交易,并发布他们计算出的状态签名作为确认。他们公布的确认消息作为共识算法的投票。
图1:整个网络的交易流
在⾮分区状态下的任何时间内,⽹络中都有⼀个Leader。每个 Verifier 节点都具有与 Leader 相同的硬件能⼒,并且可以通过基于 PoS 的选举成为 Leader。这个基于 PoS 算法的选举在5.6中有详细介绍。