主页 > 苹果版imtoken图标 > 比特币字符串位数 BTCU 谈话 | 陆迪:共识机制的演进与发展

比特币字符串位数 BTCU 谈话 | 陆迪:共识机制的演进与发展

苹果版imtoken图标 2023-02-10 07:33:33

小编:还可以

比特币字符串位数_比特币分叉对比特币的影响_比特币每十分钟产生多少个比特币

一、为什么需要共识机制

说到共识机制,就不得不先说说区块链为什么需要共识机制。 为了解释什么是共识机制,让我从区块链的基础知识开始。

所谓区块链的本质是什么? 刚接触区块链的时候,我也对这个问题感到困惑。 下面我说说我的看法:区块链的本质是分布式账本。

区块链之前的账本都是中心化的账本,比如银行系统,比如支付宝。 我们在支付宝的系统里互相开户、存钱、转账。 这些数据都记录在支付宝的账本中。

所以,也可以说,如果马云在任何人的账户上多存一些钱,或者直接扣一些钱,这在技术上是可以实现的,因为每个人的数据都记录在一个中心化的数据库中; 账本只是改变数据库,改变数据。

所以我们之所以信任支付宝,是因为我们相信马云不会做出这种有损名誉的行为。 当然,支付宝是国家直接监管的,所以我们更信任它。

但在技术上,它仍然保留着被任意更改的可能性,因为它是一个中心化的账本,由一个人或一个机构在中心控制。

比特币字符串位数_比特币分叉对比特币的影响_比特币每十分钟产生多少个比特币

那么相对来说,我们能不能实现一个去中心化的账本呢?

在互联网时代,我们可以实现两个人之间点对点的信息传播,但无法实现点对点的价值传播。 现在所有所谓的价值传播都必须通过第三方中心化的数据库,记录在它的账本上。

去中心化账本是一种什么样的场景? 假设我们有 10 个人想要建立一个去中心化的簿记系统。 10个人之间的每一笔交易,都有10个人在记账,记录谁给谁发了多少钱,谁的账户里还剩下多少钱。 这些不是一个人记录的,而是10个人同时记录的。 这就是去中心化记账场景的雏形。

比特币分叉对比特币的影响_比特币每十分钟产生多少个比特币_比特币字符串位数

但是会有问题,10个人记账,10个人记不同的记录比特币字符串位数,就会作恶。 比如我转了10块钱给张胜男,买了她的一本书。 同时,我偷偷记得我只给她转了5块钱,她也偷偷记得我给她转了20块钱。 行为。

所以,这种最原始的去中心化记账,会产生多个不同的账本。 区块链技术的创新,或者说要解决的问题是把多个不同的账本做成一个统一的,大家都认可的账本。

因此,区块链——一个去中心化的统一账本。

比特币字符串位数_比特币分叉对比特币的影响_比特币每十分钟产生多少个比特币

2. 什么是共识机制

那么解决方法是什么? 最关键最有效的方法是:随机。 每隔一段时间,随机选出一个人,他将这段时间记录的交易记录在一个统一的账本上。

比特币分叉对比特币的影响_比特币每十分钟产生多少个比特币_比特币字符串位数

所以现在的场景是这样的,第一个记账员随机选了A,他把自己记录的前10分钟内发生的交易记在账本上,比如B转10元给C,E转给F 20元,10个人还剩多少钱? 再过10分钟,又会随机选出一个人,他继续记下已有的账本,以此类推。

那我们再来看看那邪恶的一幕。 例如,第一个记账员选择了A,他不诚实地记录了B只给C转了5元,而不是10元。 可能是因为B是他的好朋友。 所以他记住了这一点,那么如何防止这种恶事发生呢?

在接下来的随机选择中,如果选择了 D,则 D 看起来是错误的。 为什么他只转了5块钱? 账本上,那么D不承认A的会计结果,D怎么办? D会绕过A在10分钟前记录的账户,以10分钟前的状态将自己的账户添加到账本中。

那么到了下一个人的时候,他的面前就出现了两种账号。 他会选择把账号和自己的账号匹配起来,继续记录。 如果说这一幕中的大多数人是诚实的,那么只有少数人是坏人,既然行凶者不可能连续多次随意来给自己记账,那么他记的假账就会逐渐不为人所知而被抛弃。

我上面说的这些跟区块链有什么关系? 一个人保管的账户每10分钟会打包成一个区块; 每个人记录的 10 分钟和 10 分钟的交易是逐块的。 它们按时间顺序首尾相接,形成一条链。 每个区块的账户余额必须与前一个区块的账户余额相匹配。 每个人账户中的每一笔资金交易都必须可以从源头追溯到下面的源头。 可以去。 这就是区块链。

因此,区块链解决了去中心化记账(即没有人作为信用中心记账)场景下的账本统一问题。 之所以大家对统一账本非常信服,在于我刚才说的一套机制,当然这套机制里面有分布式数据库、密码学等技术知识在起作用,但是还有一个很重要的因素:随机选择的人。

由于这种随机性,作恶者继续作恶的概率很小。 这种保证大家可以对统一账本达成共识的机制就是我们今天要讨论的话题,共识机制。

比特币字符串位数_比特币分叉对比特币的影响_比特币每十分钟产生多少个比特币

3.PoW、PoS、DPoS

共识机制是否足以实现随机性? 并不真地。

如果我们只是随机选择人在参与记账系统中记账,在数字网络中,一个人或组织可以随意注册很多身份加入,形成很多由一个人在幕后控制的假账户,这样我就可以增加自己被选中的概率,也可以大概率的做坏事。

这种攻击在区块链行业中被称为“女巫攻击”,类似于微博雇佣大量喷子点赞的行为。

因此,在数字网络中,如何证明一个ID不是女巫或丧尸迷,是一个比较难的问题。 解决方案是让每个参与者都必须付出代价,代价与被选中的概率成正比。 我们今天讨论的共识机制本质上解决了这个问题。 1、随机; 2.成本。

01 Pow共识机制

区块链起源于比特币,那么先看看比特币是怎么做到的。

比特币使用了密码学中的一个奇特函数,即哈希函数(Hash)。 这个函数的特点是,如果你输入任何东西,它只会输出一个定长的字符串,输入有点不同。 ,输出内容变化很大,输出内容和输入内容之间的映射关系根本无法预测。

输出的这种完全不可预测性为随机性提供了基础。

为了便于理解,假设无论输入是什么,哈希函数输出的都是一个四位数。 所以比特币规定了这样一个规则,我要找一个哈希后输出小于20的数。所以如果我试着一个一个数,我算对的概率是20/9999。

所有比特币簿记员在玩这个游戏时都必须记账。 只有找到符合比特币输出要求的输入数字的记账人,才能拥有下一个区块的记账权。

比特币每十分钟产生多少个比特币_比特币字符串位数_比特币分叉对比特币的影响

那么要想记账准确,就得拼命地去尝试和计算。 只有付出足够的努力,你才能把簿记做好。 因此,仅仅增加一个假数字是不可能增加记账概率的。 它与支付的计算工作量有关。

又因为哈希函数不可预测,只能不断尝试,不能走捷径。 您是否可以尝试它是完全随机的。 这就是我们所说的工作量证明共识机制(PoW,Proof of Work)

PoW 是比特币使用的共识机制。 后来很多年才有这样的共识机制,直到今天还有公链还在用这个共识机制。 比特币经过十年的运行,人们认识到它不会有问题的共识机制。

但它的缺点也是司空见惯。 计算能力越来越强。 现在要买矿机,加入矿池一起算,才能增加被选中的概率,才可能挖矿到账。 这是非常耗能的。

其次,矿工群体和持币群体是分开的群体。 我们买币的时候不参与这个记账网络。 我们必须购买矿机才能参与记账网络。 所以门槛也很高,记账的人也没有那么多。 .

02 Pos共识机制

在这些弊端下,新一代的共识机制被提出,称为权益证明共识机制(PoS,Proof of Stake)。 原理很简单。 用权益量(持币量)代替工作量(算力)作为记账人不是女巫或海军的证明。

基本概念是持有的币越多,越有可能被选中,就像注册一个微博很容易,但要花钱买VIP一样。

当然,这种有点类似于“钱越多越好”的观念,常常被人们误解,认为这是越富越富,马太效应甚至资本主义,其实不然.

比特币分叉对比特币的影响_比特币字符串位数_比特币每十分钟产生多少个比特币

最开始,PoS机制在公链的共识机制中与PoW相结合。 一条公链的区块不断地由 PoW 矿工产生,一群节点被调用锁定自己的代币成为验证者。 节点,PoW 矿工挖出一个区块,PoS 节点需要在区块上签名说“我同意这个区块记录的内容”,你锁定的币越多,你的签名就越有发言权。

这样的机制其实是有道理的。 一个人在系统中拥有的货币越多,他就越不可能对经济系统采取行动,他就越不会做坏事。 因为作恶会暂时增加代币数量,但这条公链的价值会被彻底摧毁,直接体现在币价的暴跌上。

最早的 PoS 是和 PoW 一起应用的,现在这种 PoW+PoS 的共识机制在一些公链上仍然存在,比如 DASH、DCR 等。

PoS最早是在2011年的一个BTC论坛上提出来的,最早将PoS应用到公链上的是2012年上线的名为Dotcoin的公链,不同于当时对比特币的模仿和抄袭。 山寨币源代码的代码创新度特别高,因此一直备受追捧,市值一度位列前三,但随后销声匿迹。

后来PoS逐步发展,独立应用纯PoS共识的公链逐渐诞生。 应用纯PoS共识机制的公链虽然解决了参与记账人的成本问题,但不如PoW机制直接解决随机问题,所以PoS机制一般会额外增加一个随机数算法需要随机选择簿记员。

这个随机数的原理我后面会详细说。 随机概率还是和节点锁定的代币数量有关。

03 PoS 和 DPoS

之后,PoS共识将被提升为一个比较火热的创新,即提出“委托”的概念,并融入到PoS共识机制中

在委托委托的概念出现之前,无论是 PoW 还是 PoS,一个节点的成本都是非常高的。 它需要24小时在线,时刻监控网络中的交易和记账,选择自己时更新自己记录的区块数据。

PoS 节点通过锁定自己的硬币来参与网络。 相比PoW节点,购买矿机参与的成本无疑要低很多。 然而,由于作为节点的一些门槛,持币者在网络中的参与度仍然较低。 高的。

这也意味着攻击网络的可能性还是比较大的。比如现在只有1%的币被锁定参与PoS共识,那如果我在市场上再买1%的币加入PoS共识共识网络,我或许可以发起51%的攻击,达到我的邪恶目的

比特币每十分钟产生多少个比特币_比特币字符串位数_比特币分叉对比特币的影响

是否可以通过委托的方式,让不想打扰运行节点的持有者,将自己的币委托给专业的节点,从而扩大全网的安全性? 为此,委托权益证明共识机制(Delegate Proof of Stake)诞生了。

说到DPoS,就不得不提BM。 BM不是他真名的缩写。 他的真名是 Dan Larimer,BM 是他网络名称 ByteMaster 的缩写。 BM先后创办了Bitshares、Steem、EOS,市值排名都相当靠前。 他是一位了不起的区块链模型设计师。

BitShares、Steem、EOS的创始人叫ByteMaster,Bitcoin和VSYS的创始人叫Sunny King。 我觉得这些 PoS 高手有点骄傲和次要。

他在Bitshares的时候就提出了一个想法,就是持有者应该投票给自己信任的节点,而不是把币投票(签名)到区块上,相当于把自己币的权利委托给节点去行使他们代表他们的权利。 BM在他的三个项目中一直坚持这个理念,都应用了这种DPoS机制。

他在Bitshares的时候,设置了100个额度,让大家用币来给节点投票。 得票最多的 100 个节点是区块生产者,即记账人。

后来他觉得Bitshares的100个节点效果不好。 毕竟节点太多,忽略了很多节点的管理。 所以后来他只在EOS上设置了21个节点,由持币者投票选出节点,得票最多的21个节点被选为出块节点。

出块节点不仅可以出块,还可以获得出块带来的EOS奖励。 每年的奖励特别丰厚,达到数千万美元。 所以,每一个节点,都是一个让所有人都无比嫉妒的位置。 EOS超级节点选举也是风雨飘摇。

比特币分叉对比特币的影响_比特币字符串位数_比特币每十分钟产生多少个比特币

同时,21个节点的位置也让大家对EOS的中心化程度提出了批评。 在舆论中,DPoS 逐渐被等同于中心化。

这就导致了一个奇怪的现象,“D”本来就是delegation的意思,所以任何在机制中有delegation概念的共识机制,其实都是DPoS机制,后来采用了delegation机制的公链,为了防止“中心化”这样的标签往往愿意给他们的共识机制起另一个名字。

这导致了业内一种奇怪的刻板印象,即“有超级节点就是DPoS,没有超级节点就是PoS”。 这其实是错误的。 当然,EOS 可能对此负责。

其实现在很流行的Staking,是指将自己的币种委托给一个可信的节点,让节点代为行使自己币种的区块生成权,相当于保留了出块权自己的货币免于闲置,同时可以分享 必须行使出块权带来的出块奖励。

因此,实际上,委托机制的出现,大大增加了PoS公链权益的参与度。 所以现在流行的PoS公链都没有不包含委托元素的,所以其实都是分为DPoS的。

04 PoS与PBFT

PoS 除了纯PoS(我一般称之为老PoS,所以新链基本都是DPoS)和DPoS,还有很多结合了POS和PBFT的公链。 当然,先不说项目方为了创新给自己的共识机制起的奇奇怪怪的名字。 分类其实可以分为带委托和不带委托的PoS。

PBFT 是一种实用的拜占庭容错算法。 BFT 是一个拜占庭容错问题。 它来自古老的拜占庭将军问题。 这个问题我就不细说了。 本质是多方参与,可能导致部分方无法发送消息或发送虚假消息。 统一的问题。

比特币字符串位数_比特币分叉对比特币的影响_比特币每十分钟产生多少个比特币

拜占庭将军问题相当经典。 在互联网时代,已经有多方应用,统一解决部分服务器宕机的问题。 但在区块链时代,除了要考虑宕机因素,即不回消息外,还要考虑作恶因素,即回复假消息,所以解决难度是更高。

业界早就想出了最高效的解决方案,叫做PBFT。 学术界没有比 PBFT 更好的方法了。 这种方法研究了30多年,基本上已经达到顶峰,没有任何改进。 对于区块链行业的公链,总有公链提出自己有更好的改进方法,然后套上自己公链名称的首字母缩写,叫做XBFT方法。 基本上,维维是在不改变本质的情况下进行了一些创新。

PBFT 和 PoS 之间的兼容性是相当兼容的。 很多公链都集成了PoS和PBFT,比如EOS。

PBFT 有什么好处? 优点是出块快,共识强,不会出现分叉。 它的原理是一个节点产生一个区块,并将结果发送给其他节点。 如果2/3的节点直接返回区块ok,那么这个区块就死了,所以不会有分叉。

EOS采用PoS+BFT算法后,0.5s出块,永不分叉。 它不需要像比特币那样等待6个区块被确认。

但 PBFT 的问题在于其带宽使用与网络中节点数的平方成正比。 因此,节点越多,效率就越低。 超过100就别想了。

Cosmos 的 Tendermint 共识机制是 PBFT 算法,现在只有 100 个节点。 之前总有人质疑Cosmos。 你的100个节点是EOS21节点的放大版。 Cosmos回应说我的100个节点以后可以增加,但实际上不能轻易增加。 它使用的共识机制决定了如果节点数量增加它就不会工作。

比特币分叉对比特币的影响_比特币每十分钟产生多少个比特币_比特币字符串位数

除了PoW、PoS、PBFT,其他一些公链有时也会提出自己创新的共识机制。 如果没有被多个公链广泛认可和使用,基本上是昙花一现。 这种事情并不少见。

PoC(capacity)最近开始热了,等真的热了再说。 有点类似于PoW,也有自己的矿机比特币字符串位数,不过是用硬盘挖矿。

另外,有人可能会提到DAG有向无环图,但实际上DAG是一种数据结构,或者说是区块的排列结构,其背后还是采用了PoW或者PoS。

比特币字符串位数_比特币分叉对比特币的影响_比特币每十分钟产生多少个比特币

4. PoS随机数解决方案

前面说了,PoS本身不具备随机选人的能力,需要结合随机数。

区块链上的随机数都是伪随机的,不可能像自然界那样有一些天然的随机数来源。 之前我们在社区讨论过oracle机器,我当时也简单科普了一下这个问题。

那么 PoS 的随机性呢? 这是指 VDF 可验证延迟函数。 简单来说,就是建立一个随机算法。 虽然这个随机算法是开源的,大家都可以看到,但是如果不知道随机种子(输入量),就不知道最终的随机数。 数(输出)。

所以随机主要看随机种子会不会被别人知道。 延迟就是参与节点先说出一个数字,然后公布它的哈希值,这样大家虽然知道哈希值,但是不知道原来的数字,真正随机抽取的时候会一起公布。 源数据。 这种时间延迟使得多个节点无法预测和控制随机种子,从而保证随机结果的随机性、公平性、不可控性和不可中断性。

Cardano的Urboros算法,Algorand等基本都是基于这个大原理,然后追求一些学术上的可验证性。

比特币字符串位数_比特币分叉对比特币的影响_比特币每十分钟产生多少个比特币

5.拓展话题

拖了好久今天才分享。 关于共识机制未来的发展,比PoW和PoS好,这个问题很开放。 如果要深入交谈,则需要更长的时间。 打字打腻了,先从简单的开始,大家讨论一下~先抛出几个问题:

1. PoS的缺点:

先发优势:拥有的币越多,以后可以持续获得的币越多

垄断的可能性:节点不向新进入者出售硬币

2、PoW的安全问题:

一条新链在使用PoW的时候,必然有一个算力比较小的弱期。 在这样的时期,借用算力进入新链的网络很容易发起51%攻击。 贡献一个非常有趣的网站来对 PoW 公链发起一小时的 51% 攻击,成本其实很少!

3.热力学讨论:

网络内部熵的减少必然需要外部熵的增加,所以 PoW 的大功耗是有意义的。 如何在物理世界中不损失能量的情况下保证网络的安全? 所以换句话说,不依赖能源消耗是不可能实现去中心化安全的(业界观点,非本人观点)

4.形而上的讨论:

从技术演进史来看,方向是从基于实物的媒介向更虚拟化的模型发展。 基于虚拟权益的PoS必将取代基于算力设备的PoW。 区块链在信息上与物理世界是分离的,不应该过多依赖外部物理设备。

如果您对后续的讨论结果感兴趣,欢迎加入BTCU社区一起讨论学习!

关于作者

比特币分叉对比特币的影响_比特币字符串位数_比特币每十分钟产生多少个比特币

路弟

高校区块链技术社区创始人

哈希未来合伙人 / InfPool合伙人

原清华大学学生区块链协会副会长

欢迎联系我:

微信:wushuizichen

微博:鲁迪

比特币分叉对比特币的影响_比特币每十分钟产生多少个比特币_比特币字符串位数

比特币分叉对比特币的影响_比特币字符串位数_比特币每十分钟产生多少个比特币

比特币字符串位数_比特币分叉对比特币的影响_比特币每十分钟产生多少个比特币

近30所高校区块链协会负责人联合发起

汇聚高校区块链技术力量

扫描二维码添加助手到通讯组

比特币每十分钟产生多少个比特币_比特币分叉对比特币的影响_比特币字符串位数