eth共识机制
① 011:Ethash算法|《ETH原理与智能合约开发》笔记
待字闺中开发了一门区块链方面的课程:《深入浅出ETH原理与智能合约开发》,马良老师讲授。此文集记录我的学习笔记。
课程共8节课。其中,前四课讲ETH原理,后四课讲智能合约。
第四课分为三部分:
这篇文章是第四课第一部分的学习笔记:Ethash算法。
在介绍Ethash算法之前,先讲一些背景知识。其实区块链技术主要是解决一个共识的问题,而共识是一个层次很丰富的概念,这里把范畴缩小,只讨论区块链中的共识。
什么是共识?
在区块链中,共识是指哪个节点有记账权。网络中有多个节点,理论上都有记账权,首先面临的问题就是,到底谁来记帐。另一个问题,交易一定是有顺序的,即谁在前,前在后。这样可以解决双花问题。区块链中的共识机制就是解决这两个问题,谁记帐和交易的顺序。
什么是工作量证明算法
为了决定众多节点中谁来记帐,可以有多种方案。其中,工作量证明就让节点去算一个哈希值,满足难度目标值的胜出。这个过程只能通过枚举计算,谁算的快,谁获胜的概率大。收益跟节点的工作量有关,这就是工作量证明算法。
为什么要引入工作量证明算法?
Hash Cash 由Adam Back 在1997年发表,中本聪首次在比特币中应用来解决共识问题。
它最初用来解决垃圾邮件问题。
其主要设计思想是通过暴力搜索,找到一种Block头部组合(通过调整nonce)使得嵌套的SHA256单向散列值输出小于一个特定的值(Target)。
这个算法是计算密集型算法,一开始从CPU挖矿,转而为GPU,转而为FPGA,转而为ASIC,从而使得算力变得非常集中。
算力集中就会带来一个问题,若有一个矿池的算力达到51%,则它就会有作恶的风险。这是比特币等使用工作量证明算法的系统的弊端。而以太坊则吸取了这个教训,进行了一些改进,诞生了Ethash算法。
Ethash算法吸取了比特币的教训,专门设计了非常不利用计算的模型,它采用了I/O密集的模型,I/O慢,计算再快也没用。这样,对专用集成电路则不是那么有效。
该算法对GPU友好。一是考虑如果只支持CPU,担心易被木马攻击;二是现在的显存都很大。
轻型客户端的算法不适于挖矿,易于验证;快速启动
算法中,主要依赖于Keccake256 。
数据源除了传统的Block头部,还引入了随机数阵列DAG(有向非循环图)(Vitalik提出)
种子值很小。根据种子值生成缓存值,缓存层的初始值为16M,每个世代增加128K。
在缓存层之下是矿工使用的数据值,数据层的初始值是1G,每个世代增加8M。整个数据层的大小是128Bytes的素数倍。
框架主要分为两个部分,一是DAG的生成,二是用Hashimoto来计算最终的结果。
DAG分为三个层次,种子层,缓存层,数据层。三个层次是逐渐增大的。
种子层很小,依赖上个世代的种子层。
缓存层的第一个数据是根据种子层生成的,后面的根据前面的一个来生成,它是一个串行化的过程。其初始大小是16M,每个世代增加128K。每个元素64字节。
数据层就是要用到的数据,其初始大小1G,现在约2个G,每个元素128字节。数据层的元素依赖缓存层的256个元素。
整个流程是内存密集型。
首先是头部信息和随机数结合在一起,做一个Keccak运算,获得初始的单向散列值Mix[0],128字节。然后,通过另外一个函数,映射到DAG上,获取一个值,再与Mix[0]混合得到Mix[1],如此循环64次,得到Mix[64],128字节。
接下来经过后处理过程,得到 mix final 值,32字节。(这个值在前面两个小节《 009:GHOST协议 》、《 010:搭建测试网络 》都出现过)
再经过计算,得出结果。把它和目标值相比较,小于则挖矿成功。
难度值大,目标值小,就越难(前面需要的 0 越多)。
这个过程也是挖矿难,验证容易。
为防止矿机,mix function函数也有更新过。
难度公式见课件截图。
根据上一个区块的难度,来推算下一个。
从公式看出,难度由三部分组成,首先是上一区块的难度,然后是线性部分,最后是非线性部分。
非线性部分也叫难度炸弹,在过了一个特定的时间节点后,难度是指数上升。如此设计,其背后的目的是,在以太坊的项目周期中,在大都会版本后的下一个版本中,要转换共识,由POW变为POW、POS混合型的协议。基金会的意思可能是使得挖矿变得没意思。
难度曲线图显示,2017年10月,难度有一个大的下降,奖励也由5个变为3个。
本节主要介绍了Ethash算法,不足之处,请批评指正。
② 以太坊共识协议Casper原理是怎样的
Casper(投注共识)是一种以太坊下一代的共识机制,属于PoS。Casper的共识是按块达成的而不是像PoS那样按链达成的。数字货币交易所币汇
③ 以太坊技术系列-以太坊数据结构
本篇文章和大家介绍一下以太坊的数据结构,上篇文章我们提到,以太坊为了实现智能合约这一功能,使用了基于账户的模型。我们来看看以太坊中数据结构。
既然是基于账户的模型,我们需要通过账户地址找到账户的状态。就像通过银行卡号可以找到你在银行中的各种信息一样。最简单的想法当然是一个简单的哈希表 key是账户地址 value是账户状态。但这里有个问题解决不了。
轻节点如何校验账户合法性?
上篇我们说过,区块链中有2类节点,全节点和轻节点,轻节点只会存储block header,所以轻节点如何才能校验账号是否合法呢?
这个思路和我们平时用的md5校验一致,我们会对区块内的信息进行hash运算从而得出区块内信息唯一确定的值,区块链所有节点中这个值都是相同的。
在这个过程中我们用到了一种数据结构Merkle Tree(哈希树),我们先看下Merkle Tree(哈希树)的示意图。
上篇文章说到区块链中的链表(哈希链)和我们平时常见链表不同的是将指针从地址改为了hash指,这里也一样,哈希树和二叉树的区别有2个
1.将地址改为了哈希值
2.只有叶子节点存储数据
回到之前的问题轻节点是如何校验1个账户或交易是否是在链上的呢?
整个流程如上图所示
1.轻节点需要判断1个账号是否合法
2.轻节点由于只存储block header,所以拿到1个账号的时候会向全节点发出请求
3.全节点存储了所有账户状态,将账户路径中的需要计算用到的hash值返回给轻节点
4.轻节点本地进行计算根hash值,如果计算结果和自己存储一致则账户合法,不一致则不合法。
那以太坊中的账户信息的数据结构就是这样吗?
直接用这样的数据结构来存储账户信息会有2个问题
查找困难
生成hash值不确定
第1个问题应该比较容易发现,在这个树中寻找1个账号需要的复杂度是O(n),因为没有任何顺序。
第2个问题其实也是因为无序导致的,无序的组合每个节点针对同一批账户生成的hash值不一致,这就导致无法达成共识。
既然2个问题都和顺序有关,那我们类似二叉排序树一样,使用哈希排序树是不是就可以解决问题了呢?
使用排序树后会带来另外1个问题
插入困难
因为要维持树是有序的,很可能带来树结构的很大变动。
以太坊中使用了另外一种数据结构字典树。和哈希树不同,字典树应该是很多地方都有使用。我们简单来看下字典树的结构。
字典树能够较好地解决哈希树的2个缺点1.查找困难 2.生成的hash值不确定以及排序二叉树的1个缺点 插入困难。
但字典树我们可以看到可能树的深度可能由于部分元素导致整棵树深度非常深。
这时我们可以进一步优化,将相同路径进行压缩。这就是压缩字典树。
将哈希树和压缩字典树结合,就可以得到以太坊存储账户的最终数据结构-MPT。
将压缩字典树里面的指针从地址改为指针,并且将数据存储在叶子节点中即可。
介绍完状态树的数据结构,我们接下来讨论1个问题,区块中存储的账户状态是什么样的范围。有2种选择。
只保存当时区块中产生交易的账户状态。
保存全局所有的账户。
我们可以看下这2种方式,无非就是空间和时间的平衡,只保存当前区块产生的交易意味着是做懒加载(需要的时候才去寻找账户),在区块链中这个代价是非常大的,因为寻找的账户之前从未交易过,这样会遍历整个区块链。另外一种保存全局的账户方式虽然看起来空间消耗较大,但查找快捷,而且空间的问题我们可以通过其他方式优化。所以最终以太坊选择了第2种每个区块都报错全局所有账户的方式。
我们来看下以太坊中是如何保存状态树的。
可以看到以太坊中虽然每个区块都保存了全部账户,但是会将未发生变化的账户状态指向前1个节点,本身只存储发生变化的状态,这样可以较大程度优化空间占用。
介绍完以太坊中比较复杂的状态树后,我们继续来看看以太坊中的另外两棵树,交易树和收据树。
首先介绍一下,为什么需要交易树&收据树。
1.交易树
虽然以太坊是基于账户的模型,但是就像银行不仅会存储银行卡的余额,还会存储卡中的每笔钱怎么来的以及怎么花的。交易树中就存储着当前区块中的包含的所有交易。
2.收据树
由于智能合约的引入增加了不少复杂性,所以以太坊用收据树存储着一些交易操作的额外信息。比如交易过程中执行日志就包含在收据树中方便查询。收据树和交易树是一一对应的。每发生一次交易就会有一次收据。
和状态树不同交易树和收据树只维护当前区块内发生的交易,因为当时区块发生交易时不需要再去查找另外1个交易,也就之前需要可能遍历整个区块链的查找操作了。
由于以太坊中的出块速度较快,我们进行一些查询一些符合条件交易的时候会面临大量数据遍历困难的问题。收据树中引入了布隆过滤器可以帮助我们有效缓解这一困难。
布隆过滤器将大集合中每个元素进行hash运算映射到1个较小的集合,这时再来1个元素要判断是否在大集合的时候,不需要遍历整个大集合,而是去进行hash运算去小集合中寻找是否存在,如果不存在,肯定不在大集合中,如果存在则不能说明任何问题。
如上图所示,布隆过滤器只能证明某1个元素不在集合中,不能证明1个元素在结合中。
以太坊中如果我们要在较多区块中寻找某1个交易,则可以利用布隆过滤器,过滤掉肯定不存在目标交易的区块,然后进入收据树内继续利用布隆过滤器筛选,剩下的才是可能的目标交易的交易,进行一一比对即可。
我们介绍了以太坊的核心数据结构,状态树&交易树&收据树,他们都是使用相同的数据结构-哈希压缩字典树。但状态树是维护1颗全局账户树,交易树和收据树则是维护本区块内的交易或收据。
介绍完数据结构后,后面我们会用几篇文章来介绍以太坊中的一些核心算法,比如共识机制,挖矿算法等。
④ 以太坊2.0未来的发展如何
以太坊 2.0 升级,最核心的是以太坊 2.0 分片和 PoS 共识机制。采用 PoS 共识机制是为了提高以太坊协议的能源效率以及增加以太坊区块链的安全性。以太坊 2.0 分片,使得以太链不再需要通过每个节点来处理链上的每笔交易。
在分片系统中每个节点只需处理约 1% 的交易或更少,从而极大地提高了区块链的效率。实现ETH2.0以后不仅网络性能得到大幅提升,投资者也可以减少重资产的投入(+slf0037)。共识协议Casper及分片技术落地,对网络的底层协议作出巨大的改变,还进一步推动了区块链扩容技术向前发展,不断达到商用的标准。截至2021年1月7日16时已经有超过230万个ETH被锁定在该网络中,占以太坊总供应量的2%。然而,这仍然只是更新的第一阶段。据官方消息,Uniswap v3已部署到以太坊主网。根据官方文章,Uniswap v3是该协议迄今为止功能最强大的版本,集中式流动性为流动性提供者提供了空前的资本效率,为交易者提供了更好的执行力,以及去中心化金融的核心基础设施。就以太坊路线图而言,V神表示,随着合并日期的临近,路线图的许多方面越来越变得切实可行,乐观估计今年年底可以完成升级,在合并后,执行链会在共识链内部运行,每个信标链区块会包括一个来自执行链的区块。他还表示,合并需要许多复杂技术,目的是让整个过程尽可能简单,对于用户、客户端、开发者、智能合约来说,合并会更加顺畅,用户无需过多担心。目前许多中心化交易所、去中心化交易所、去中心化质押协议和基础服务商都进入了以太坊2.0的Staking赛道。不难想象之后会有更多的服务商涌现,而以太坊2.0 Staking板块也将会成为交易所和钱包的标配。那么 ETH 1.0 的 PoW 链,究竟还能挖多久?目前并没有一个明确的答案。但可以确定的是,在以太坊由 PoW 彻底转变为 PoS 之前,以太坊基金会必须用足够长的时间来向大家证明 PoS 链是安全的。这样才能让所有开发者和用户放心的完成切换,从而使整个价值超过 1000 亿美金的生态体系真正的、完全的运行在信标链上。
没有人知道完成工程的推进,需要花多长时间,这是个很大的未知数,并且这些未知数可能是以太坊 2.0 转换的很大阻力。因此,我们乐观估计 PoW 链至少还可以持续挖两到三年。
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。
⑤ 以太坊合并/转向PoS后会发生什么
以太坊合并/转向PoS后会发生什么,今天是以太坊合并的日子,很多人都非常的关注,那么也有不少人有疑问以太坊合并之后pos后会发生什么,下面跟着小编一起来看看吧,希望此文章能帮到你。
以太坊合并/转向PoS后会发生什么
在合并正式发布之前,就已经出现了许多争论,并且在合并后它们将继续存在很长时间。
以太坊转向权益证明(PoS)可以被认为是加密行业中最重要的事件之一。猜测和错误信息盛行。在这里,我们将讨论这项技术实验的事实和后果。
需要强调的是,开发人员从原来的共识协议工作量证明(PoW)切换到PoS的决定已经酝酿了好几年。BeaconChain(信标链)是负责使用PoS的以太坊区块链分支,最初于2020年12月1日上线,用于开发和测试。
毋庸置疑,从PoW到PoS的转变将导致以太坊作为一个网络的认知发生变化。有很多观点需要考虑:经济、环境、代币经济学、与其他加密货币的竞争、法律、中心化与去中心化最终,以太坊从PoW切换到PoS的变化将会是区块链以及整个加密社区的转折点。
以太坊变得可持续,但比特币将独树一帜
将PoS作为共识机制,将导致以太坊区块链所需的能量大幅减少。
几项研究得出结论,由于合并,以太坊在实施PoS后将减少99.95%的电力消耗,这一事实不容忽视。
PoS实施后的第一个事件将是以太坊的哈希率暴跌为零,代表一个时代的结束。任何拥有ETH的用户都可以成为验证者。他们还可戚物以通过在协议中质押ETH来获得回报。
合并的最直接影响将是媒体如何更加关注比特币及其造成的环境破坏。喜欢PoW机制区块链的投资者对投资以太坊犹豫不决。例如,由于碳足迹,特斯拉放弃了最初将比特币作为支付手段的提议。
借助PoS,以太坊为任何投资者提供了一条清晰的道路,对于必须遵循ESG标准(环境、社会与治理标准)、向ETH注入资金或投资与以太坊活动相关公司的投资者来说尤其如此。
通过这种方式,比特币仍然是媒体的目标,而以太坊则避免了近年来关于加密货币的最具争议的问题。
监管机构针对以太坊的论据将减少
众所周知,监管机构长期以来一直希望对加密市场进行干预或制定某些基本规则。一方面,似乎由于加密市场的规模较小,他们并没有急于干预。但另一物仔消方面,他们观察到加密货币的长期增长可能会危及本国货币。
但是由于加密项目之间的多功能性,监管加密货币并不是一项简单的任务。所以监管机构必须罩知从某个方面开始,可持续性问题似乎一直是选择对加密货币进行监管的首要论据。
PoW是加密货币不可持续的原因之一,所以监管机构正在考虑禁止它。一些监管机构声称应该禁止通过PoW开采加密货币,因为它的电力消耗很高。
欧盟发布的加密监管法案MiCA早已将禁止PoW挖矿列入其中,尽管它最终被推迟了。在美国,白宫的最新报告指出,加密货币和相对应的区块链技术对温室气体排放、污染、噪音的影响居高不下,这阻碍了联邦机构实现符合美国气候承诺和目标的净零碳污染的努力。
在该报告中,以太坊被认为承担了开采加密货币产生的20-39%的电力支出,比特币估计为60-77%。由于以太坊转向PoS,监管机构将无法使用这一论据继续反对区块链。这为建立在以太坊上的加密业务提供了一层保证。
⑥ 【Discover ETH】什么是权益证明PoS
本篇作为Discover系列文章的开篇,结合ETH2.0的目标,来谈谈权益证明PoS是什么。
在谈PoS之前,我们先来了解一下共识。共识,即达成了普遍协议。区块链实质上是一个全球性的状态机,达成共识意味着网络上至少有超过一半(51%)的节点同意网络的下一个全球状态。
共识机制 (也称为共识协议或共识算法)允许分布式系统(计算机网络)协同工作并保持安全。当前主流的共识机制有两种,分别是 工作量证明 (Proof of Work,PoW)和 权益证明 (Proof of Stake,PoS)。以太坊在设计之初就希望最终以太坊的共识机制能转变为PoS,而PoW只作为一个过渡阶段。但无论是PoW还是PoS,最终的目的都是相同的,即实现分布式计算机的共识机制。下面先简单了解工作量证明(PoW)的工作机制。
工作量证明通过矿工们完成,矿工们需要竞争创建最新区块以处理和完成交易。 获胜者将与网络中的其他节点分享最新区块,并且获得最新的特定代币区块奖励(如以太坊的以太币)。由于用户需要拥有超过网络中 51% 的算力才能够欺骗整条链,因此网络安全得以保证。 这将需要巨大的设备和能源投入,所需的开支甚至可能超过收益。
工作量证明是08年在中本聪所创造的比特币中提出的,至今已经经过了充分的考验和测试,但随着越来越多的矿工和矿池的加入,挖掘新的区块的难度指数爆发式上升,也面临的如下的问题:
PoS作为ETH2.0关键的建设目标,其作用不仅仅只是因为PoW带来的环境不友好的能源消耗,还有PoS的建设能更有力支持 分片链 (以太坊网络扩展的关键升级),更强的去中心化特性等等。下面从几个方面来简单谈谈权益证明PoS的工作过程。
在以太坊中,工作量证明的过程参与的角色是矿工/矿池。其目的是通过算力试错来反复计算,以此生成一个低于目标随机数的混合哈希。这个计算难度依赖于区块所声明的 难度 ,难度越小,有效的哈希值的集合就越小。而在权益证明中,则没有矿工这一角色,与之对应的是称之为 验证者 的角色。
在ETH2.0中,用户需要质押 32ETH 来获得作为验证者的资格。验证者被 信标链 随机选择去创建区块,并且负责检查和确认那些不是由他们创造的区块。他们不需要开采区块,他们只需要在被选中的时候创建区块并且在没有被选中的时候验证他人提交的区块。此验证被称为证明。
验证者因提出新区块和证明他们已经看到的区块而获得奖励,对于一些恶意验证者节点,也会有相应的惩罚机制使之失去质押。验证者质押的ETH越多,获得的奖励也越多。可以这样说,权益证明是一种用于激励验证者接受更多质押的机制。
前面提到了 分片链 这个名词, 分片 就是将区块链分成多条链。验证者将会在不同的分片上处理它们的分片数据,以此来提高区块链的工作效率。ETH2.0预计会有64个分片链。
验证者会被随机洗牌到不同的分片中,以防止验证者恶意操纵节点并提高链的安全性。处理不同分片之间的数据的关键角色就是 信标链 (Beacon Chain)。
信标链 是协调分片信息、管理验证者的连接不同分片的桥梁。
当用户在分片上提交交易时, 验证者 将负责将用户的交易添加到分片区块中。 信标链 通过算法选择验证器以提出新的块。如果一个验证者没有被选中提出一个新的分块,它们将会证明另一个验证者的提议,并确认一切都正常。
至少需要 128 个被称为 委员会 ( committee )的验证者来证明每个分片块。委员会有一个提出和验证分片区块的时限,这个时限被称为 插槽 ( Slot ),大约为12秒。 每个插槽只能创建一个有效区块,一个 周期 ( Epoch ,大约6.4分钟)有 32 个插槽。
每个周期过后,委员会都由不同的、随机的参与者解散与重组,重组过程由一个半随机算法 RANDAO 来选择,以此避免恶意节点的操纵。
ETH2.0使用 Cassper 终局协议来确认一个新的区块是否得到足够的证明,即只要2/3的插槽同意(即当前参与计算的2/3的验证者节点),该区块就会被最终确定。而推荐此区块的验证者将获得奖励。因此,在权益证明的机制下,每过6.4分钟就会创建一个新的区块。关于Cassper协议的详细说明后续再进行探索。
权益证明的建设以太坊在15年就已经提出,截止至今也才完成了Phase 0信标链的建设。而下一阶段的与主网合并,再下一阶段的分片链建设也一再推迟。虽然PoS的建设非常缓慢,但无论如何,权益证明作为主流的共识机制算法之一,也是值得我们探讨其设计原理。
后续将会针对信标链的详细设计、分片等ETH2.0内容进行探索。
⑦ 一文了解以太坊挖矿算法及算力规模2020-09-09
以太坊网络中,想要获得以太坊,也要通过挖矿来实现。当前以太坊也是采用POW共识机制,但是与比特币的POW挖矿有点不一样,以太坊挖矿难度是可以调节的。以太坊系统有一个特殊的公式用来计算之后的每个块的难度。如果某个区块比前一个区块验证的更快,以太坊协议就会增加区块的难度。通过调整区块难度,就可以调整验证区块所需的时间。
以太坊采用的是Ethash 加密算法,在挖矿的过程中,需要读取内存并存储 DAG 文件。由于每一次读取内寸的带宽都是有限的,而现有的计算机技术又很难在这个问题上有质的突破,所以无论如何提高计算机的运算效率,内存读取效率仍然不会有很大的改观。因此,从某种意义上来说,以太坊的Ethash加密算法具有“抗ASIC性”。
加密算法的不同,导致了比特币和以太坊的挖矿设备、算力规模差异很大。
目前,比特币挖矿设备主要是专业化程度非常高的ASIC 矿机,单台矿机的算力最高达到了 112T/s(神马M30S++矿机),全网算力的规模达到139.92EH/s。
以太坊的挖矿设备主要是显卡矿机和定制GPU矿机,专业化的ASIC矿机非常少,一方面是因为以太坊挖矿算法的“抗 ASIC 性”提高了研发ASIC矿机的门槛,另一方面是因为以太坊升级到2.0之后共识机制会转型为PoS,矿机无法继续挖。
和ASIC矿机相比,显卡矿机在算力上相差了2个量级。目前,主流的显卡矿机(8卡)算力约为420MH/s,比较领先的定制GPU矿机算力约在500M~750M,以太坊全网算力约为235.39TH/s。
从过去两年的时间维度上看,以太坊的全网算力增长相对缓慢。
以太坊协议规定,难度的动态调整方式是使全网创建新区块的时间间隔为15秒,网络用15秒时间创建区块链,这样一来,因为时间太快,系统的同步性就大大提升,恶意参与者很难在如此短的时间发动51%(也就是半数以上)的算力去修改历史数据。
⑧ 两种共识机制对比(PoW vs PoS)
区块链中最核心的架构就是共识机制,可以说是区块链的驱动引擎,发展这么多年,目前主流比较明确经得住考验的就只剩下PoW(Proof of Work)与PoS(Proof of Stake)两种机制。简单概述下,PoW系统的特点是通过消耗大量算力来计算特定算法的解(典型如哈希),第一个算出结果的有权生成区块,同时也会得到coin作为奖励(这也是coin的生产与分发过程,形象地称为Mining),采用PoW的典型区块链有Bitcoin和Ethereum,目前PoW也是运行时间最长,被公认为是最可靠安全的共识机制; 其本质是通过消耗大量算力来实现系统内的逆熵过程,保证系统的长期安全与稳定 。但PoW被广为诟病的也是其消耗太多的能源资源,这方面PoS就被认为是更为绿色的解决方案,顾名思义PoS是通过质押系统中的资产即coin来成为一个质押者(staker),这样就有权产出区块,质押份额越多,获得产出区块权的概率就越高,也代表着奖励越多。
在分布式系统中有一个 CAP 定理,是指一个分布式系统中存在着三元悖论,即不可能同时满足这三个特性:一致性(Consistency)、可用性(Availability)和分区容错性 (Partition tolerance),而只能满足其中两个。区块链作为一种分布式网络,这个定理也逐渐演变成了区块链的三元悖论,即 安全性(Security) 、 去中心化(Decentralization) 和 可扩展性 (Scalability) ,也是同时只能满足两个特性。
整体上看PoW系统更注重的是 安全性(Security) 与 去中心化(Decentralization) ,放弃 可扩展性 (Scalability) ,这也是Bitcoin网络的吞吐量非常慢的原因。而PoS系统更关注的是 可扩展性 (Scalability) 与 去中心化(Decentralization) ,但就PoS能否真的 实现 去中心化(Decentralization) ,我是比较持怀疑态度的。从保守主义与系统的更长期稳定的角度出发,我个人是坚定地站在PoW这边的,可能跟自身保守的性格有关,并不是特别看好PoS作为基础层能比较稳定。特别是像这次 5月份的Luna事件 ,事件大概的过程是Luna链上的算法稳定币UST缺乏价值支撑最终脱锚,其核心问题在于UST的锚定设计试图用一个PoS股权系统去支撑其锚定美元,而且还超发了太多UST,再加上UST与Luna的兑换设计缺陷最终导致Luna自身的死亡螺旋。但这个事件更大的意义应该是敲响了一个警钟,PoS机制在面对空头资本砸盘时真的还能维持稳定、维持所谓的去中心化吗?可能到时节点数量萎缩的速度会很快,逐渐趋于中心化。
所有系统设计都需要根据自身定位来折中,以下从价值锚定的角度,简单分析下为什么长期来看PoW会更有优势。
在PoW系统中三股主要的参与者分别是研发人员,投资者(或者叫用户)与Miner,这三者的相互制衡,使得这个系统达到一个稳定平衡的状态。而PoS系统中,将Miner这个重要的制衡力量移除了,投资者和Miner变成了同一群体 质押者(stakers) ,因此该群体滥用权力的行为会变得相对不受限制,并且该链随后的发展方向也可能会更加不平衡,更容易倾向有利于 质押者(stakers) 群体的方向。
PoW系统很好的阐述了什么是被普遍认可的价值,抽象上来看就是高代价的稀缺性 ,高代价与稀缺性两者缺一不可。PoS最多只能实现其中一个稀缺性。
Miner为了在链上生产区块赚取coin,不仅需要持续支付高额电力成本,还必须不断投入研发、升级硬件、优化基础设施和运营规模来保持其竞争力。最终结果是,能够长期持续盈利的Miner并不会是一个一层不变的群体,而是总在竞争中淘汰掉效率太低的Miner,使高效率的Miner能存活下来。这也更有利于 去中心化(Decentralization) ,因为不断变化的Miner群体意味着没有一个Miner可以在相当长的时间内保持网络的大部分算力,除非他们通过严酷的竞争考验,不断优化自身来提供更多的算力。
而PoS系统中的质押者实际上并多少真正的风险投入,也没有优胜劣汰的严酷竞争机制,他们只需要简单地运行一个staker节点就可以躺着赚利息,本质上只是将自己在银行系统里的钱简单的转化为链上资本,就可以坐地收割后进入这个系统的新人。这种行为并没有太多难度,只是简单地赚取“无风险”利息,他们并没有将资本转化为任何形式的需要面临风险考验的投资。
而且当发生硬分叉时,PoW的Miner选择支持哪条链时会更为谨慎,因为他们需要投入高昂的电力成本来为他们的选择背书,一旦选错了将损失所有投入成本。PoS系统如果发生硬分叉,质押的coin作为系统内部状态的一部分,硬分叉后质押者将在两条不同链上都拥有相同数量的资产,由于没有什么沉默成本,导致质押者更愿意两边都支持,从而使硬分叉更容易且更频繁地出现,这被称为 nothing at stake 问题。
PoW是真正能做到无准入限制的(Permissionless),就是说已经在这个系统中的老人无法限制新人加入,只要你有能力提供算力,就能直接接入网络中产出coin。而PoS系统中,新人要进入,都不得不先从老人手中买coin。
而且PoW中Miner为了支付各种高昂成本(电力,设备,基础设施等),产出coin后也不得不卖出一些以弥补成本,这同时也是一种把coin分发给更多人的过程; 特别是在熊市,Miner为了维持开销也不得不低价贱卖coin,这样新人才有机会以相对低的成本获得筹码入场,这才是一个健康的生态扩张过程 。而PoS中由于质押者并没有什么运行成本,也不需要面对太多竞争,质押者出块得到coin后不需要急着卖出,更容易哄抬价格,其实会变相激励场内老人剥削新入场者,不给后来人更多机会;整个系统会趋向于更封闭,逐渐演变成一个有限游戏,长期运行下去只会越来越中心化;系统中财富越来越集中,富者更富,穷者更穷,从而更不可能实现 去中心化(Decentralization) 。
由于PoW系统中是以提供工作量的方式产出区块的,随着时间的推移这些工作量都会被累积起来并使链不断向前延伸,这也是为什么叫区块链;这些累积的工作量也给攻击者造成了巨大障碍,如果想要反转整条链,不仅需要非常高的算力,还需要相当长的时间,这也为应对攻击提供了足够长的时间缓冲。
而PoS系统其实只是维护一个分布式账本, 并没有工作量累积的概念,一旦攻击成功,要反转整条链就是相当容易的,几分钟就可以搞定。
严格来说由PoW算力支撑的BTC不应归为高科技类,由于它整个系统架构更保守更稳定,提供的更多的是一种 物化价值(objective costliness) ,更能作为价值之锚,所以数字黄金这个称号很贴切。而像ETH(目前还是PoW,2.0升级后为PoS)这些更接近科技类创新平台,PoS本质上更像是一种股权系统,其实PoS系统反而是需要中心化,偏向更依靠整个社区的生命力,需要依靠核心团队的创新与开拓能力往前走;而PoW则需要去中心化,更偏向稳定与提供 物化价值(objective costliness) 。
区块链作为一个价值分配系统, 算力是它的价值之锚,如果没有算力,就会退化为一个股权系统 。算力在哪,资金就会跟去哪。目前的发展趋势也是逐渐往多层网络的方向发展,类似TCP/IP的多层协议栈。从作为基础层(Base Layer)的角度看,更需要的是长期稳定与提供价值支撑,因此PoW系统更合适;而PoS可能更多的是可以作为Layer2以实现 可扩展性 (Scalability) ,弥补PoW基础层的吞吐量不足,并通过锚定在PoW基础层上来获取算力安全性与价值支撑。
最后顺带说下最近市场行情,5,6月份以来的瀑布令很多人很恐慌,恐慌指数一度长时间停留在个位数;其实我觉得也没必要那么恐慌,要在这个圈子长期活下去,面对这种大波动的心理预期还是要有的。想起之前红杉资本的沈南鹏经常提到一个词Grit,沙砾,它是砾石在千万次打磨后留下来的细小颗粒;Grit代表了勇气和持之以恒的一种坚持,有种经常被按地上摩擦但依然勇往直前的感觉。这个和塔勒布讲的反脆弱性有异曲同工之妙,承载价值的东西就应该具有这种品质,PoW系统肯定是有反脆弱性的。
回望2017年入圈后经历过的各种事件,其实像这样的大波动近乎每年都有(除了2019年一年比较顺利外);像2017年国内的94事件,2018年一整年的大熊市,2020的312事件,2021的519事件,再到2022今年的5,6月份市场转熊,每次经历大波动后,市场都会淘汰掉该淘汰的,出清掉该出清的风险,对整个行业发展也是好事。眼光还是应该放远一点,至少看5到10年后的变化,科技发展过程中所带来的波动和风险是不可避免的,日光之下无新鲜事,每次科技革命过程中总会夹杂着众多的反对、质疑,还有众多的投机、骗局;这个过程也总是通过各种暴雷、回归,清除泡沫后价值重估,夯实了基础后积蓄能量再次进入跃升到新的发展阶段。 价值互联网的到来是一件无法回避的事情 ,当理解和看清了这种趋势后,规避掉各种坑和市场噪音,远离合约杠杆和各种山寨的诱惑,握住核心资产,时间本身就会带来回报。