来源:PermaDAO
区块链的第一性原理是一种去中心化的记账方式,“区块”和“链”并非必要。
什么是第一性原理
第一性原理(First principle thinking)指的是,回归事物最基本的条件,将其拆分成各要素进行解构分析,从而找到实现目标最优路径的方法。该原理源于古希腊哲学家亚里士多德,因埃隆・马斯克的推崇而被大众所了解。该原理也与东方哲学中的”道“有相通之处。
2014 年,埃隆・马斯克在南加州大学商学院的毕业演讲上,说到了他的第一性原理决策方式:
“也许你听我说过,要从物理学的角度思考问题,这是第一性原理。即不要进行类比推理。你把事情细分到你可以想象的最基本元素,然后你从那里开始推理,这是确定某件事是否有意义的好方法。这种思考不容易,你可能无法对每件事都这么思考,因为这很花精力。但是如果你想创新知识,那么这是最好的思考方法。这个框架是由物理学家提出并发展的,他们因此找出了反直觉的事情,比如量子力学。所以这是非常有效、非常强大的方法。无论如何,一定尽可能这样去做。”
马斯克以真空胶囊高铁为例,如果用比较思维或者经验思维设计新型火车产品,多数人的想法是在现有的功能上做提升,让动力更强劲,流体力学更好。但是如果用第一性原理分析产品需求,就要回到运输工具的本质目的:将较多的货物从 A 点运输到 B 点,这才是最初制造火车等运输工具的目的,并非一定要用牵引力才能实现升级。在第一性原理的支撑下,马斯克提出采用磁悬浮加低真空的模式,打造真空胶囊高铁。
区块链中的第一性原理
那么区块链的第一性原理是什么呢?
肖风博士在 2024 香港 Web3 嘉年华的闭幕仪式上演讲里表示:区块链的第一性原理是新的记账方法。
“2009 年出来的区块链,作为分布式账本(DLT),它记录的是数字价值和网络价值,并且不再是在私人账本上记账,而是在公开透明的全球公共账本上,大家在一块记账,所有的利益相关者在一个账本上记账。这就是区块链的第一性原理,透明、公开的「全球公共账本」,所有 Web3 的创新都是基于第一性原理做的。”
笔者赞同肖风博士的观点,并基于这个观点进一步阐述区块链的本质。
“区块链”三个字拆开来看就是区块 + 链,既然区块链的第一性原理是一种记账方式,那么区块和链真的是必要的吗?
在回答这个问题前,我们首先来看比特币作为分布式账本,为什么需要区块和链。
在比特币中,区块是一个包含一组交易信息的数字记录,可以理解为是账本中的一页账,用哈希函数可以算出一个哈希值,这个哈希值的特点是只要区块的内容稍加变化,哈希值就变的不一样。每个区块都包含前一个区块的哈希值,可以理解为第 N+1 个区块的第一行要写入第 N 个区块算出的哈希,从而形成一个不可篡改的链式结构。
在比特币中,同步账本的机制即 PoW 共识机制。当比特币网络中发生交易时,这些交易会被放入内存池(mempool)中。然后,矿工从内存池中选择一组交易,尝试组成一个新的区块。要做到这一点,矿工需要找出随机数中的某个特定数值,并将这个特定数值与区块数据结合起来,生成一个满足网络难度目标的哈希值,这个过程被称为“挖矿”,谁先计算出符合条件的哈希值,谁就获得了记账权,也就是挖矿成功。难度目标是一个动态值,每 2016 个区块(大约每两周)调整一次,从而让比特币的平均出块时间维持在 10 分钟左右。
区块和链是比特币的基础结构,PoW 是比特币的共识机制,两者结合实现了比特币的去中心化记账功能。但从区块链的本质来说,只要能实现去中心化记账,记账可以是非区块的(例如单笔交易共识),账本也可以是非链式结构(例如 DAG)。因此区块和链并非必要,只是区块链这三个字深入人心,成为了以比特币、以太坊、Solana 为代表的去中心化账本的代称罢了。
比特币毕竟已经是 2009 年的产物了,随着区块链研究的不断发展,虽然大部分区块链还是遵循传统区块 + 链的结构,但也出现了一些以第一性原理设计的区块链,他们从最根本的去中心化记账问题出发,有着独特的数据结构和共识,本文以 Sui 和 Arweave AO 为例。
Sui:水之道
Sui 是基于第一原理重新设计和构建而成的 Layer1,主要团队来自 Facebook(后改名 Meta)已解散的 Diem 和 Novi 项目。Sui 的命名源于日语中的水,其品牌形象中也能看到水的影响。
Sui 使用 Sui Move 来编写其智能合约,采用了一种基于对象的数据模型,所有交易都以对象作为输入,并产生新的或修改过的对象作为输出,允许独立的对象并行处理交易。
在 Sui Move 中,每个智能合约都是一个模块,由函数和结构定义组成。结构在函数中实例化,可以通过函数调用传递给其他模块。运行时存储的结构实例作为对象,Sui 中存在三种不同类型的对象,分别是拥有者对象,共享对象和不可更改对象。
Sui 没有区块,对交易进行单独验证,并且一个交易是否经过 Sui 的排序和共识机制,取决于交易中的对象是共享的还是非共享的。
如果不涉及共享对象的交易,称为简单交易,Sui 采用拜占庭一致广播(Byzantine Consistent Broadcast)的轻量级算法,参考了 FastPay 的设计思想。由客户端广播交易给 Sui 的所有验证者,并收集验证者的基于权益加权的投票,生成一个证书,再将证书广播回给验证者,收到这个证书的验证者就可以直接执行这个交易。
如果涉及共享对象的交易,称为复杂交易,Sui 采用的是 Narwhal & Bullshark 共识机制。Narwhal 是一个 mempool 模块,负责保证交易的可用性。Narwhal 基于轮次进行运转的,每轮分为两个步骤,分别是交易的分发(同步交易给其他节点)和交易的验证(收集其他节点对交易的投票),多轮以后,交易会形成一个有向无环图(DAG)。Bullshark 是一个共识模块,负责对 Narwhal 中 DAG 的交易进行排序。
Sui 利用 DAG 进行交易传播和共识,降低了交易延迟并减少了通信过程中的网络开销。同时,为了维护历史信息的完整性和顺序,Sui 在一个单独的过程中将交易排序为检查点,检查点以线性方式相互链接,为存储和访问历史数据提供了类似于传统区块链的结构。
但实际上 Sui 的数据结构与传统区块链完全不同,Sui 分组到检查点中的交易已经最终确定,而传统区块链是将尚未最终确定的交易分组到区块中。
Arweave AO:空之道
水无常形,但毕竟有形。就像 Sui 还保留了传统区块链中的共识机制,并最终将交易数据组织成了传统区块链的区块 + 链结构。AO 则彻底颠覆了传统区块链的范式,无区块无链无共识,相比于水,AO 在象征意义上更接近于天空(日语为 Sora)。
AO 是一个基于 Arweave 的分布式、去中心化、面向 Actor(Actor Oriented)的计算系统。其基于的第一性原理并不是构建一个去中心化账本,而是构建一个去中心化的计算系统。大概类似于应用程序和操作系统的关系。
计算系统可以拆分成存储、计算和通信三个问题,在 Web2 中都有非常成熟的解决方案,难的是去中心化。一种思路是分别构建一个去中心化存储网络,一个去中心化计算网络,以及一个去中心化通信网络,这其实正是 2014 年以太坊联合创始人 Gavin Wood 提出的计算,存储和通信三位一体的去中心化技术架构的思路,分别是以太坊(智能合约)负责去中心化计算的部分,Swarm 负责去中心化存储的部分,Whisper 负责去中心化通信的部分。
AO 也由三个单元组成:
通信单元(Messenger Unit):负责消息通信,将消息传递给计算单元并协调以计算输出结果;
调度单元(Scheduler Unit):负责调度和消息排序,并将消息上传至 Arweave。
计算单元(Compute Unit):负责处理计算,并将计算结果上传至 Arweave。
一个 AO 上的进程(Process)由一组单元构成,每个单元都可以作为可水平扩展的子网,同时执行大量交易,从而实现高性能计算,但每个单元并不是一个去中心化网络。实际上在整个 AO 的架构中,真正去中心化的只有作为底层的存储网络 Arweave。
AO 上的进程通过将其全息数据上传到 Arweave 上,使其拥有了可验证性的属性——因为任何人都可以通过全息数据恢复 AO 上的这个进程。这其实是一种存储共识范式(SCP),即只要存储是不可变的,上面的交易就都是可追溯的,那么无论在何处计算应用程序,都将得到相同的结果。
AO 没有共识机制,但通过 SCP,将计算层与存储层分离,使存储层永久去中心化,而计算层保持传统计算层的模式。因此在 AO 上的计算拓展性没有任何类型限制,不仅可以实现以 EVM、WASM 或 Move 虚拟机为核心的区块链账本服务,甚至可以把任何现有的 Web2 服务都放在 AO 上重新构建为去中心化版本。
总结
第一性原理是从物理学的角度去思考事物的本质,再从本质出发,一层层向上设计。虽然 Sui 和 Arweave AO 都是基于第一性原理设计出来的区块链,但由于他们的本质不一样,于是设计出了完全不同的架构。
Sui 的本质是去中心化账本服务,对标的是像 Solana 这样的高性能 Layer1,因此 Sui 围绕着“更快的账本服务”设计了面向对象的数据模型,双共识机制和基于状态访问实现的交易并行执行,提高了可扩展性,同时降低了延迟和费用。让开发者能够快速且低成本地开发基于 Sui Move 智能合约的应用。
Arweave AO 的本质是去中心化计算系统,或者说是去中心化云服务,是运行账本服务的基础设施,因此 AO 围绕着“可验证的分布式计算系统”提出了 SCP,即在链下进行计算,将存储放在链上,实现大规模并行计算机的互联和协作。用户体验与传统云服务几乎一致,但背后是去中心化的计算系统。