区块链:要让区块链摆脱时间的锁链?一起读读区块链的时间简史

时间对于分布式账本技术的意义不言而喻,任何账本都需要达到「有序」,而在时间和状态分离的时钟体系中,时间和状态并非耦合绑定,链上交易的时间戳将会被编码,交易像水一样在网络间流动。

Solana将基于哈希的时间链与状态更新进行分离,首先为其智能合约平台提供一个免许可、全局可用、信任最小化时钟体系,并在达成共识前优化网络运行,Solana把这个核心创新称之为「历史证明机制」。

撰文:小毛哥Mao特别感谢RockX联合创始人董心书博士的审读及建议

「今天是2019年8月16日,起迟了,今天又是平淡的一天。」

几年几月几日、早与迟、今天和明天,都是我们对时间的概念,时间可以来源于iPhone手机、玩具手表、最精确的原子钟等任何可信赖的第三方,重要的是,我们所说的「时间」好像是一个人类社会赋予的概念。爱因斯坦的广义相对论尝试从更科学的角度探索时间的真正定义,当然,人们还是以自己感觉最直观的定义理解着自己的时间。

反直觉的是,在完全开放的分布式系统中,因为失去了可以完全信赖的第三方,我们很难依赖几年几月、早与迟这些习以为常的时间概念来确定事件的顺序。在分布式系统中,我们所需要的「时间」不是我们习惯的时间粒度,而是需要的是一种机制,通过该机制我们可以验证一个事件发生在另一个事件之前、之后或者同时发生。

为什么时间是区块链的根本问题?

时间戳的概念

试想一种情况:你在某日举着《纽约时报》阅读,被记者拍下一张照片,过了几天之后,你发现你的这张照片被刊登在了新一期《纽约时报》。

假设《纽约时报》信息是正确无误的情况下,因为这个巧合,即使多年之后,虽然你忘记了被拍下照片的日期,但通过这份情报,你也可以准确地判定照片拍摄的日期:在2014年10月12日至2014年10月14日之间。

这个巧合实际构造出一种时间机制,我们建立了两个可信的时间点,而案例中《纽约时报》提供的信息就是这个机制里的时间戳。

正如上文我们所提到的,要确定事件的前后关系问题,需要的不是可信的物理时钟,而是去建立拥有可信时间点的时间机制。根据爱因斯坦的相对论中观点,全宇宙中位于不同空间的时间不是一致同步的。比特币通过创建自己的时间概念来解决这个问题,证明实现分布式账本技术是可行的。

支持比特币的美国总统候选人Kennedy家族中的比特币拥有者存在不确定性:金色财经报道,支持比特币的美国民主党总统候选人Robert F. Kennedy Jr的竞选团队也对Kennedy家族中谁拥有比特币表示出不确定性。Kennedy证实,他拥有大量比特币,此前他曾表示自己没有,这些加密货币最初归属于他的妻子。5月份他在迈阿密举行的比特币2023大会上还表示,他的竞选活动将接受比特币捐款,应该培育和保护该网络,但他不是比特币的投资者,他对该资产的认可并不构成投资建议。

然而,CNBC获得的一份财务披露显示,截至6月30日,Kennedy家族在经纪账户中持有价值100,001美元至250,000美元的比特币。该文件没有说明投资何时进行,但称Kennedy家族从购买中获得的收入较少,超过201美元。

Kennedy的竞选经理、民主党众议员Dennis Kucinich表示,不存在利益冲突,此次购买是Kennedy在迈阿密对比特币发表积极言论之后进行的。[2023/7/10 10:45:55]

分布式系统中的基本问题:时钟问题

根据一份比特币最初的源代码,中本聪最初将比特币的数据结构,即大家熟悉的「区块链」表述为「时间链」。

时间对于分布式账本技术的意义不言而喻,任何账本都需要达到「有序」,人们不能花没有收到的钱,也不能花已经花了的钱。区块链技术本身必须在无需第三方的情况下,明确地对账本进行排序。虽然区块链中还有许多其他技术细节,但时间是至关重要的,没有时间与顺序,就没有区块链。

美国计算机科学家LeslieLamport在1978年发布的论文《Time,Clocks,andtheOrderingofEventsinaDistributedSystem》首次将分布式系统中的时序与相对论中的时间概念进行对比,并提出一种可用于「同步逻辑时钟的系统,以对事件进行全局排序」的分布式算法。他在1982年发表一篇关于可容错的计算机系统的经典论文《TheByzantineGeneralsProblem》,也就是著名的拜占庭将军问题的来源。

拜占庭将军问题是分布式系统发展中的殿堂级问题,而对于该类问题解决方案,背后的概念基本上是将可能引发不一致的并行操作进行串行化的排序。2008年11月13日,中本聪在一份解释比特币的早期邮件开头写道,工作量证明机制是拜占庭将军问题的解决方案之一。

如何确定事件的时间和顺序,是分布式系统的基本问题。引入全局时钟是实现拜占庭将军问题中线性一致性的方法之一。全局时钟可以让让许多互不信任的节点有全局同步的时间来源,再加上时间戳,就可能实现全局一致的有序交易。为了分布式系统达到强弱不等的一致性结果,许多建立在此思路上的区块链共识作为解决方案应运而生。

知情人士:FTX前工程总监寻求与检察官就指控FTX达成合作协议:1月10日消息,FTX前工程总监Nishad Singh上周参加了在纽约南区美国检察官办公室召开的报价会议,会见了美国联邦检察官,并寻求与美国检察官就FTX指控达成合作协议,其也是第三位寻求与检察官合作的SBF合伙人。报价会议中双方是否能够达成合作协议,需由检察官权衡信息的价值,再决定是否向当事人提供交易,以帮助当事人换取可能的宽大处理。

金色财经此前报道,美CFTC指控Alameda前CEO和FTX联创欺诈,两人均表示认罪。(彭博社)[2023/1/10 11:03:39]

全局一致的时钟+时间戳=有序的交易

理解时间和状态——解构区块链时钟

PoW时钟体系:工作量证明机制+时间链/区块链

为了理解这个晦涩的密码学问题,我们不妨将比特币的PoW工作量证明机制想象成一个时钟,反复计算出符合条件的哈希值相当于参与一个人人都可以参与并且会走到满足结果那一刻的时钟体系:

时间价值

时间对于工作量证明机制的意义在于通过持续消耗的动能来保护网络的安全。我们可以使用「存量和流量」描述基于时间的能量及价值累计现象,使用以下三个公式简要概括PoW时钟体系的时间价值:

时间流量/存量=已经消耗/将要消耗的动能时间存量价值=挖矿已经消耗的动能+挖矿硬件的库存价值时间流量价值=挖矿将消耗的动能+挖矿硬件的潜在盈利

状态更新

状态更新实际上是由出块决定,每个新出的区块反映出一个新的状态。这一时间链结构被设计为平均每隔十分钟出块一次,即PoW时钟大约每10分钟指针滴答转动一次。同时,每一次指针转动都意味着该时钟完成一个不可回溯、无记忆性的全局状态更新。

指针转动,滴答一次=有序出块,状态更新滴答时间=出块时间转速调整=挖矿难度调整最终状态更新=最长链原则

时间与状态:紧耦合

在工作量证明机制中,一个区块产生之后,整条链会锁定,此时没有任何状态更新,直到产生或接收到下一个有效的新区块。每个新的区块都包含前一个区块的哈希,作为在该区块有效的证据。总之,在PoW时间体系中,时间和状态是耦合在一起的,总是相互绑定、一致行进。没有状态更新,时间就无法推进。

PoW时钟体系特点

PoW时钟体系是对解决分布式系统中时间和状态问题的开创性的解决方案,PoW体系是一个安全、成熟、无许可的、全球共享的网络设施,值得注意的是,PoW时钟体系成本透明公开,但时钟性能、可拓展性不足,仍有改进空间。

PoS时钟体系:权益证明机制+时间链/区块链

Rabby:已将黑客范围缩小到3人,若黑客24小时未归还资金将寻求司法帮助:10月15日消息,DeBank插件钱包Rabby Wallet发推称,在社区和安全机构的帮助下,将黑客的范围缩小到3个人。如果黑客未在24小时内归还资金,团队将有义务协助受影响的用户寻求司法帮助。Rabby估计此次攻击损失为200,000美元,为保护用户利益,Rabby将在黑客归还资金之前使用Rabby保险基金补偿损失。Rabby保险基金包含100万美元作为初始资金。

此前消息,Rabby钱包项目的Swap合约存在漏洞,可任意转移用户资产。[2022/10/15 14:28:58]

PoS时钟体系将共识机制跟加密经济激励结合,有时通过限制验证人数以提高系统性能。本文以目前成果最佳的高性能、无须许可的BFT共识算法Tendermint+BPoS(BondedProofofStake)为例来理解该时钟体系。

时间价值

时间对于权益证明机制的意义是围绕着PoS机制的核心行为staking产生的,我们可以将理解PoW时间价值体系的方式引申至该PoS时钟体系。

时间的流量/存量=已经质押/即将质押的资金成本时间存量价值=已参与质押资金的机会成本+质押累计收益时间流量价值=长期持币者的预期质押量+预期质押收益

状态更新

PoS时钟体系状态与PoW时钟体系相似,

指针转动,滴答一次=有序出块,状态更新滴答时间=出块时间(Tendermint约6秒)

时间与状态:松耦合

在权益证明机制中,时间和状态依然是耦合绑定的。因此,该分布式系统性能的改良思路依然是在时间和状态之间做取舍,要么增加区块大小,要么减少区块时间,以增加时钟的性能,即系统的吞吐量,用公式来表示:

吞吐量=区块大小/区块时间

如果Tendermint网络达到5秒的出块时间,5MB的区块大小,理论上可以达到4000TPS的吞吐量。

PoS时钟体系特点

PoS时钟体系在解构分布式系统时间和状态的尝试中迈出了重要的一步,在系统的吞吐量上获得了巨大的提升,但同时也付出了巨大的成本,比如围绕staking的质押时间的长短含有影响PoS体系安全性的不确定因素。

分片时钟体系:状态分片架构+时间链/区块链

分片架构体系,虽然不同项目的解决方案存在差异,但基本架构基本包括信标链,为网络的其余部分提供时间源。该时钟体系的改进性能思路很简单,就是在时钟体系下增加更多小的时钟体系。

时间价值

分片时钟体系扩展了单一区块链的时间存量及流量,从而量化扩展了时间价值

加拿大安大略省证券委员会:Kucoin等13家公司尚未在安大略省内注册:金色财经报道,加拿大安大略省证券委员会(OSC)发布消费者警告,指出包括Kucoin在内的加密货币公司没有在安大略省内注册。OSC本月早些时候发布了一个类似的警告,也将Kucoin列为未注册的实体。今天的警报将13家公司(其中许多是加密公司)列为未在安大略省注册从事证券交易或提供咨询服务的公司。(The Block)[2022/8/24 12:44:04]

状态更新

信标链可以提供分片架构的全局时钟,但每个分片仅是周期性地将其各自的独立时钟体系与信标链的时钟体系同步,分片交互时需要状态的周期性更新,更新所需的时间可能会带来延迟。

时间与状态:将耦合的时间和状态同时分割

状态分片架构将整个时钟体系分割为一堆单独的时钟体系,将全局状态分割为一堆较小的单独分片,每个分片有自己的独立时钟体系,相互独立但共同推进。

分片时钟体系的特点

在理想状态下,若分片之间跨分片交互最小,每个分片的性能维持不变,所有分片的累计吞吐量将会随着分片数量的增加而线性增加。分片概念的设想显著提升了系统性能,但可以预见是,由于每个单独分片的时间和状态依然是耦合的,同时还存在着分片安全、跨分片交易、网络通信等技术问题,分片时钟体系的现实情况依然会受到基础区块链,包括信标链及主链自身扩展性的限制。

跳脱时钟框架体系:分离时间和状态

让我们回顾一下以上讨论的时钟体系,PoW时钟体系开创性地为比特币创建了信任最小化的时钟;PoS时钟体系中我们以Tendermint+BPoS共识为例,说明了如何减少验证者人以改善时钟体系性能;分片时钟将整体的时钟体系分割为一堆单独的时钟体系,显著地提高了吞吐量。

值得注意的是,所有这些时钟体系依然是建立在时间和状态耦合的框架内,也必然会受到限制。看起来每一个时钟体系都有独到之处,但都不完美。让我们继续思考继续优化区块链时钟体系的方法:

时间一定要和状态绑定吗?

如果我们能「证明历史」且「编码时间」,可以分离时间和状态吗?

如果技术上能做到分离时间和状态,这个时钟体系会是什么样?

首先,该时钟体系依然需要一个全局可用、无需许可的时间来源,只有在全局可用的时钟体系下,状态更新可以持续且异步进行。其次,要改善节点之间的通信,需要快速、精准并保持信任最小化。

在时间和状态分离的时钟体系中,时间和状态并非耦合绑定,链上交易的时间戳将会被编码,交易像水一样在网络间流动。

基于该思路,Solana将基于哈希的时间链与状态更新进行分离,首先为其智能合约平台提供一个免许可、全局可用、信任最小化时钟体系,并在达成共识前优化网络运行。

Coinbase:正在调查Celo存取款延迟的问题:7月15日消息,加密交易所Coinbase表示:正在调查Celo存取款延迟的问题。[2022/7/15 2:16:14]

Solana把这个核心创新称之为「历史证明机制」,PoH历史证明机制是在达到成共识前在网络运行的优化解决方案,提供了一种全新的时钟概念。POH在达成共识之前充当一种特殊的时钟,使得优化数据传播到内存池管理等的各种独特的时序假设在上层设计上产生。

这一核心创新打开了全面提升的设计空间。除了提供「编码时间」的时间戳的时钟之外,PoH还使得Solana能够优化网络上可用的区块时间、区块传播、吞吐量和分类帐存储。

PoH时钟体系:分离时间和状态的时间来源+时间链/区块链

时间价值:

PoH历史证明机制中提供了一种全新的时间概念,同为时钟体系提供了一个特殊时间来源,起到了时钟体系「计时」和「定序」的作用,使得系统时间不再受限于状态。

状态更新:

PoH历史证明时钟体系将时间和状态分离,状态更新不限于每次时针转动。也就是说,该时钟体系分离了时钟转动一次和滴答一次。

时针转动∈状态更新滴答时间=区块时间

时间与状态:解耦/分离

时间维度:基于可验证延迟函数(VDF)编码时间戳可验证延迟函数是一类数学函数,能够使得该函数的计算需要至少一段已知的时间。其他区块链要求验证人相互通信、同步信息以确认时间已经过去,可以进行下一步行动,而每个Solana验证人可以通过将标准时间戳编码为一个SHA-256序列哈希的可验证延迟函数(VDF)进入区块链中。Solana使用VDF并不是为了随机性,而是为了维护该时钟体系的方法之一。

Solana如何将标准时间戳编码至区块链中

状态维度:先选择领导者,后进行完整的纪元因为每个验证人都需要维护自己的时钟,所以选择领导者在先,进行一个完整的纪元在后。如同Tendermint机制,一个纪元的时间表可以持续数千个区块。然而,与Tendermint不同的是,Solana网络从不等待验证失败的节点。每个验证人运行VDF以证明它已经获得了传输区块和验证人的区块时段,同时可获得奖励。

PoH时钟体系的特点

1.缩短节点通信间隔时间其他区块链要求验证人相互通信、同步信息以确认时间已过去、状态可更新,而Solana的节点在持续不断接收最新交易时,每个交易都有发送者附加的已签名PoH时间戳哈希,并将其转发给其他节点,节点可以立即通过PoH时间戳哈希对直接对交易进行排序,而缩短了等待对应节点确认的通信时间。

2.无需等待领导者的轮换在POH历史证明机制下,领导者的轮换不会影响网络状况。网络可以在没有任何验证人相互通信的情况下决定领导的轮换,网络会作为一个整体,持续不断地处理交易,领导者的轮换决策是异步调用的。

3.新节点只需要数据结构便可验证区块链完整性PoS机制受到常见的批评之一在于其不是完全客观的,而是弱主观的。但由于POH对Solana的改进,Solana变得客观。因为随着时间的推移,时间也被编码到区块本身中。同时由于验证人通过并行验证POH的速度可以比POH的初始速度快1000倍,所以一个新的节点可以在没有外在信息的情况下,只需要账本的数据结构即可验证区块链从创世到当前的完整性。

如何基于历史共识继续优化PoH时钟体系?

TowerBFT:充分利用PoH时钟体系时间来源,优化PBFT共识

PBFT实用拜占庭容错的瓶颈

说明什么是TowerBFT之前,我们首先来说明一下实用拜占庭容错,PBFT诞生于比特币出世之前,至今已逾二十年,源于解决分布式系统的著名共识问题:拜占庭将军问题。

一群拜占庭将军围攻一座城市,他们必须达成同时进攻或同时撤退的共识,且各将军只能透过信使将自己的决定通知其他人。然而,这群将军中有叛徒,发出相反的讯息,或者只通知一部分的将军。在已知有叛徒存在的情况下,该如何达成正确可用的共识?

在分布式系统中,我们可以将:

将军看作节点

信使看作节点间的通讯

进攻/撤退的决策看作需达到的共识

将军的随机行为称为拜占庭错误

在叛徒节点存在的情形下仍能达成共识的特性称为拜占庭容错(ByzantineFaultTolerance)

从结果来说,一个正确可用的共识必须确保拜占庭将军一定会达成唯一的共识,且共识终究会形成。

PBFT实用拜占庭容错是一个基于选出领导者、基于通讯、倾向于一致性的共识解决方案,由于PBFT含有验证者需要把其投票广播给其他验证人的通讯机制,大大增加了通信复杂度和通讯量,导致难以扩展的瓶颈。

基于PoH历史证明的改良版共识算法

在PoH历史证明的基础上,Solana改良运行TowerBFT,这是一种类似PBFT的共识算法。TowerBFT在达成共识之前利用Solana的PoH时钟已经同步的时间来源,减少了通讯复杂度和通讯延迟。

与PBFT不同的是,TowerConsensus倾向于活跃性而非一致性。与PBFT相同的是,节点会成倍增加超时时间以达成协议,但由于该时钟体系的账本结构本身也是一个免信任的时间源,节点可以观察和检查网络中所有其他验证人的超时时间。我们可以通过一个例子让方便大家更好地理解这一点:

想象你置身在一个孤岛上,一个瓶子漂了过来,里头装着一个U盘。在U盘里存着一个Solana账本。如果你只查看账本本身,你将看到每个节点都可以计算当前验证人的数量、每个验证人的状态——以及最为重要的一点,每个验证人向网络中的任何区块提交的超时时间。仅仅是根据数据结构,不需要任何点对点的对等信息,验证人就可以做出投票决定,网络可以达成共识。

验证人和复制器:双节点分工生成轻量级证明,优化数据储存

目前区块链网络以1GB每秒的速度,每年将为账本生成4PB的数据。按照这样的速度,区块链数据的存储将很快成为主要的中心化向量,这与区块链实现的去中心化愿景背道而驰。

Solana利用两种类型的节点分工生成轻量级证明,使其有PoS网络更有效地运行。

验证人节点:负责验证网络数据,但PoH历史证明和TowerPBFT帮助其提高验证速度。

复制器节点:从验证人节点中获取计算权重,以极小的硬件要求进行操作。

复制器节点对硬件的要求不高,我们日常所有的笔记本电脑就可以执行。但是复制器节点在网络中的作用却很重要,能够优化分布式数据存储系统,旨在解决处理数兆字节级(pb)数据的数据可用性问题。

Solana的复制器节点不需要参与共识并存储整个数据历史,而是利用多个复制器节点分别储存数据历史的小片段,以生成轻量级证明并执行纠删码功能,从而将整个状态历史被分割成许多部分。每隔一段时间,网络就会要求复制器证明它们正在存储其应该存储的数据。

Solana使用的复制证明理念主要借鉴自Filecoin,并利用PoH共识提供的时序来源优化复制证明的创建方式。复制器节点将在不参与共识的情况下,使用PoH历史证明生成轻量级的证明,这种证明可以复制账本的各个部分,而且允许验证人能够跨GPU批量验证。

结语

理解「编码时间」的意义,重塑区块链Layer1可拓展性

Solana通过将时间与状态分离,证明在一个信任最小化、无须许可世界计算机是可能会被实现的。本文我们探讨了三个Solana的创新点:

历史证明(ProofofHistory,PoH):Solana其他独特的架构都是建立在PoH的基础上,PoH提供共识之前的时间源,起到了计时和定序的作用,是解决时钟问题和重塑区块链可拓展性的一个深刻而巧妙的解决方案。

TowerBFT:充分利用PoH时钟体系的时间来源,优化PBFT共识。

复制器(Replicators):使用PoH历史证明生成轻量级证明,优化分布式数据储存。

从「时间维度」理解分布式系统的性能至关重要,时间就是一切,通过PoH历史证明「编码时间」的全新思维,无许可的分布式系统甚至可以媲美经过验证的中心化的云计算提供的性能。

当前Solana在5个大洲的200个验证者构成的测试网络上,吞吐量超过50000TPS,平均TTF为1.5秒。这基本上可以媲美目前最好的全球分布式的数据库Spanner,但Solana更有实质意义的去中心化。

同时,逻辑简单、信任最小化的可拓展Layer1底层网络实际上在逻辑上抽象了复杂性,使得往后的开发人员能将精力集中在应用程序逻辑上。将期待留给Layer2的可拓展解决方案和优化应用场景,实际上增加了用户、开发人员和服务商的复杂性和摩擦。

Vitalik于2014年1月在向世人揭开以太坊的面纱时,他所强调的正是这一点:世界计算机的意义在于抽象所有不特定于应用程序的东西。随着时间的推移,在2019年8月21日,Vitalik又在推特上发文称,对于layer2链下扩容方案感到悲观,因为对于激励要做很多应用层处理,并且很难大规模应用。

对于绝大多数用例,构建在Solana区块链之上的开发人员根本不需要考虑可拓展性,因为Solanalayer1的意义就在于抽象复杂性,在此基础优化上层layer2的设计,笔者会再下一篇文章详细论述这层逻辑。

参考文章

BlockchainProof-of-WorkIsaDecentralizedClockWorkisTimeless,StakeisNotBitcoin,Stock&Flow若想搞懂區塊鏈就不能忽視的經典:PBFTIt’sthesettlementassurances,stupidVitalikButerinrevealsEthereumatBitcoinMiami2014引介|以太坊2.0:信标链BandwidthandtheBlockchain重塑区块链的可扩展性:状态和时间的分离一文搞懂可验证延迟函数VDF若想搞懂區塊鏈就不能忽視的經典:PBFTCryptographyMailingListBitcoinP2Pe-cashpaper

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

[0:78ms0-1:104ms