BitVM中文社区
白皮书BTC Layer2生态BitVM生态BTC 2024 会议BTC测试网水龙头社交媒体
  • 社区介绍
  • 成员招募
  • BitVM
    • 📖英文白皮书
    • 📖中英文白皮书
    • 📖BitVM白皮书-详细讲解
    • 🍀BitVM项目概况
    • 🌾基础知识
      • BitVM论文中图1解析
      • 隔离见证的好处
      • Schnorr 签名:简介
      • 谨慎日志合约(DLC):比特币的可扩展智能合约
      • 什么是比特币默克尔化抽象语法树(MAST)?
      • 什么是多重签名钱包(Multisig)?
      • 什么是门限签名(TSS)?
      • 什么是图灵完备
      • 区块、链
      • UTXO与普通账户模型
      • UTXO Vs 普通账户模型
      • PoW共识
      • PoS共识机制
      • 哈希与加密算法
      • 点时间锁合约(PTLC)
      • 基于 Taproot 的闪电通道
      • Taproot 及 MuSig2 回顾
      • Taproot是什么(比特币升级Taproot)
      • SegWit和Taproot是什么?二者之间的差异与各自优势
      • DPoS共识机制
      • 比特币脚本研究
      • 零知识证明介绍
      • Optimistic Rollups
      • Rollup:详解ZK Rollups、Optimistic
  • 👨重要人物
    • Robin Linus
  • BitVM精选文章
    • 与BitVM有关的重要信息
    • BitVM:比特币层计算的突破
    • BitVM 入门
    • 深入探讨BitVM - 表达图灵完备比特币合约的计算范式
    • BitVM and Bridges-侧链桥
    • What is BitVM?
      • What is BitVM? with Robin Linus and Super Testnet (SLP520)
      • BitVM是什么?与Robin Linus和Super Testnet详细讲解
    • Robin Linus on BitVM
      • BitVM:Bitcoin的链下合约
      • BitVM:Off-chain Bitcoin Contracts
      • PPT中文版
      • PPT英文版
    • BitVM:图灵完备的 Taproot 智能合约
    • BitVM 在比特币上实现智能合约
    • 全面解析ZK Rollups和Optimistic Rollups
    • Optimism Rollup原理详解【以太坊L2方案】
    • 要在比特币上计算任何内容,资深开发者们怎么看BitVM?
    • BitVM 是什么?图文讲解
    • BitVM 脑洞大开,复杂概念和落地可行性剖析
    • BitVM:开启比特币的智能合约时代
  • 🆚生态对比
    • 从比特币应用编程理解 CKB 的可编程性
    • BitVM 与 RGB 协议:瞄准比特币生态的“双星”
    • 什么是 RGB 协议?
    • 牛市第一响:BTC L2将造就alpha之王
    • 比特币L2的机会
  • BitVM项目
    • BitVM项目概览
    • Bitlayer
      • Bitlayer 介绍
      • Bitlayer快速了解
      • 一文了解 Bitlayer:构建比特币计算层
      • Bitlayer Research:DLC 原理解析及其优化思考
    • zkBase
      • 为什么市场需要 ZKBase?
      • 了解 ZKByte:基于零知识证明和 BitVm 的比特币 Layer2 拓展解决方案
    • Bitstake
      • Bitstake 简介:基于 BitVM 的权益证明桥
    • Citrea
      • Citrea 概述:比特币首个 ZK Rollup
  • Runes
    • 作者
    • 优质文章
      • 为什么说 Runes 符文赛道即将爆发?
      • 超越BRC20?一文读懂比特币符文协议Runes的前世今生
      • 解读Runes协议:两大发行方式、文化与玩法
      • xiyu 对 Runes 协议的解读:提供了一种在比特币网络上创建和转移符号化资产的方法
      • 解读Runes协议:发展历程及其最新「公开铭刻」发行机制的拓展
      • Ordinals创始人Cesay:首次全面介绍Runes协议
      • Runes预挖矿概念:一文读懂Rune Kingdom符文龙
      • Runes是一个Bitcoin Token Standard协议
      • 一文读懂 Runes 与 BRC20 等同质化代币协议的对比
      • Ordinals创始人首谈Runes协议细节:前10个Runes只支持Open mint
      • 一文看懂BRC20、Atomicals、RUNE等协议的独特之处
    • 视频
      • No129. 什么是符文Runes协议?Runes协议几个关注度高的项目介绍
      • 比特币牛市行情下个热点赛道布局 | 符文协议 runes protocol | 什么是符文协议Runes
      • 被譽為下一個「銘文」的「符文」是什麼?Runes協定主網上線時間已定?|秒懂符文
  • btc
    • 📖白皮书
      • 中英文
      • 注解版
    • 📖《精通比特币》第二版
      • 原版序言
      • 中文版序言
      • 译者序
      • 第二版更新内容
      • 术语
      • 目录
      • 第一章 介绍
      • 第二章 比特币工作原理
      • 第三章 比特币核心
      • 第四章 密钥和地址
      • 第五章 钱包
      • 第六章 交易
      • 第七章 高级交易和脚本
      • 第八章 比特币网络
      • 第九章 区块链
      • 第十章 挖矿和共识
      • 第十一章 比特币安全
      • 第十二章 区块链应用
      • 附录A-1 比特币白皮书吴忌寒翻译
      • 附录A-2 比特币白皮书李笑来翻译
      • 附录B、交易脚本语言操作符,常量和符号
      • 附录C:比特币改进提案(BIP)
      • 附录D:Bitcore
      • 附录E:pycoin库、实用密钥程序ku和交易程序tx
      • 附录F:Bitcoin Explorer(bx)命令
    • 📖《精通比特币》第三版
    • 🌾精选文章
      • BTC生态扩容方案巡礼(1):铭文何去何从
      • BTC生态扩容方案综述
  • 培训
    • Web3技术培训
  • BTC 生态项目汇总
    • 图文版
  • 比特币 二层
    • Rollup
      • Bitlayer
      • QED Protocol
      • BitVM
      • Bison
      • B² Network
        • B² Network技术实现:基于零知识证明验证承诺的比特币ZK-Rollup
      • Chainway
      • bl2
      • Rollux
      • BOB
      • Hacash.com
      • BeL2
      • LumiBit
        • 详解原生比特币 Layer 2 网络 LumiBit
    • 比特币侧链
      • BEVM
        • BEVM Founder自述:为什么以及如何做BTC Layer2 ?
        • 以BTC为Gas且兼容EVM的BTC Layer2
      • MAP Protocol
      • Merlin Chain
      • Chain-key Bitcoin (ckBTC)
      • SatoshiVM
        • 比特币 L2 新机会?详解 SatoshiVM 及测试网交互流程
      • Rootstock
      • Libre
      • Stacks
      • Liquid Network
      • Babylon
      • BitBolt
      • Drivechain
      • RGB++
        • RGB++:为正统比特币L2添砖加瓦
        • RGB++ Protocol Light Paper
        • 从RGB到RGB++:CKB如何赋能比特币生态资产协议
        • 一文了解提出 RGB++ 协议的比特币二层:CKB
        • RGB++:比特币 L2 资产的新思路
    • 数据可用性
      • Veda
      • Nubit
    • 状态通道
      • OmniBOLT
      • Lightning Network
    • 客户端验证
      • BiHelix
      • RGB
    • 其他
      • Path Protocol
      • Bool Network
      • Dovi
      • Bitfinity Network
      • U Protocol
      • Botanix
        • Botanix protocol
      • AiPTP
  • BTC 基础设施
    • 链下索引
      • UniSat
      • Rooch Network
    • 资产协议
      • Layer1
        • Ordinals序列协议
          • BRC20.com
          • LRC-20/LTC-20
          • ORC-20
            • Ordinals
          • BRC-100
          • SRC-20(STAMPS 协议)
            • SRC20 OpenStamp
          • Runes 协议
          • Pipe 协议
          • Tap Protocol
        • Atomical原子协议
          • ARC-20
            • Atomicals Protocol
      • Layer2
        • BitVM
        • Lightning Network
        • RGB
        • Nostr Assets Protocol
    • 资产桥
      • DLC.Link
      • Liquidium
      • BoringDAO
      • GoWrap
      • XLink
      • MultiBit
      • UniRouter
      • VMPX
      • OrdBridge
      • BRCport
      • SoBit
      • BitSwap
      • SaxBridge
      • Ordinfinity
      • Shell Trade
    • 预言机
      • 概览
        • 预言机赛道大全图谱(经典收藏)
        • OKX Ventures研报:重新思考预言机,看到及未被看到的
      • Chainlink
        • 万字拆解 Chainlink 2.0 构成背景、技术原理、经济模型与未来挑战
        • Chainlink (LINK) 资金面情况及近期发展动态
      • Band Protocol
        • 投资 Band Protocol (BAND) – 您需要了解的一切
      • Pyth Network
        • Pyth Network 研报:Solana 生态预言机发展现状与前景分析
      • Supra
        • Supra万字研究报告: Intralayer中间件,能否撼动Link预言机龙头地位?
  • twitter-space
    • 怎么样的 BTC Layer2 更有机会胜出?
      • 全文
    • BTC Layer2 技术创新盘点
      • 全文
    • 比特币L2混战:从业者 / 市场如何选择?
      • 全文版
      • 精简
  • BTC Layer2 周报
    • BTC Layer2 68个项目盘点
    • 2024.3.11 - 2024.3.17
    • 2024.3.4 - 2024.3.10
    • 2024.2.19 - 2024.2.25
  • BitVM 周报
    • 2024.3.18 - 2024.3.24
    • 2024.3.11 - 2024.3.17
    • 2024.3.4 - 2024.3.10
    • 2024.2.26 - 2024.3.3
  • BTC 2024 会议
    • 比特币复兴 2024:按主题演讲和专题小组分段
由 GitBook 提供支持
在本页
  • 从BM开始聊起的故事
  • DPoS详解
  • 总结

这有帮助吗?

  1. BitVM
  2. 基础知识

DPoS共识机制

从BM开始聊起的故事

我们聊DPoS时,为什么要从BM聊起呢,

其实,这和聊比特币绕不开中本聪一样,DPoS是BM一手创造的。DPoS不是独立提出的共识算法,而是直接被BM应用到比特股项目中,在稳定运行了3年多后,又接着被BM构造成可复用的区块链工具箱:石墨烯。

虽然应用得很早,但DPoS算法直到2017年才被BM单独拎出来作了一篇“DPoS技术白皮书”,这期间伴随着比特股、Steemit、EOS三个项目的依次发布。

那么到底BM是谁,市场上对这个人的评价为什么富有争议呢?或许我们从了解BM开始,才能体会到DPoS的精髓。

我们在前面的文章中曾简单提过BM,BM的本名是Daniel Larimer,由于他的GitHub昵称是ByteMaster,所以才被称作BM。BM是比特股、Steemit、EOS项目的创始人,截止发稿时,这三个产品的市值均在区块链项目的Top33以内。

与年少成名V神的辍学经历不同,BM 2003年毕业于弗吉尼亚理工学院,获得计算机学士学位,算是正经的科班出身。

BM曾直言不讳地说到:“我的人生目标就是找到自由市场的方案来保护生命、自由和财产”。他认为要达成这个目标,就必须要从货币开始。

我们在数字货币一节提到过,无论是贵金属还是信用货币,都是历史的必然,所以在选择使用什么货币上,BM认为不一定是美元,他希望的是:构造一种自由安全的数字货币。

2009年,他怀揣梦想开始了数字货币的事业,他先发现了比特币,于是不遗余力地推广着这个项目。

然而在2010年,BM指出中本聪10分钟一次的交易确认时间太长了,这样的话,性能会是一个瓶颈,然而这样的想法却遭到了中本聪的暴击:看不懂就算了,我没时间搭理你。

于是,BM觉得比特币不是希望,便着手开发第一个项目——比特股,同时创造出DPoS,把自己的高性能共识算法想法形成了实践。

在这里,我们可以看出DPoS与其他共识机制的第一个区别,就是交易确认时间短。

2014年,当V神还在到处奔走,开始发起以太坊项目的众筹时,当很多项目还是基于比特币的微创新时,比特股就已经横空出世了。

所以比特股一跃成为了当时的明星项目,它的口号是“Beyond Bitcoin”,在这里我们可以感受到极强的攻击性和目的性,也正因为如此,日益强大的比特币社区被树在了它的对立面。

比特股一共有2个版本,比特股在1.0版本之前,某些版本甚至都没有提供向下兼容。虽然后来正式发布了1.0版本,似乎并没有改善多少。糟糕的使用体验,庞大的系统资源开销,还是让尝鲜的用户逐渐流失了。

这时候BM利用了自己手里超过1/3的记账节点,在没有达成社区共识的情况下,强行增发了比特股总量。这一招几乎就是比特股项目的灭顶之灾,社区人就此纷纷退出。

虽然社区萎靡,BM还是继续了开发工作,将比特股升级到了2.0,它的易用性和稳定性勉强可以满足正常使用。随着比特股2.0的发布,BM也同时发布了石墨烯工具箱。

尽管在技术上提供了改进,但比特股社区最终选择让BM离开比特股项目,比特股回到了另一位币圈大佬——巨蟹的手里。随后比特股的发展陷入了长期的低迷,长期在2分,最多到2角钱左右,直到去年的牛市,比特股涨到过2元人民币。

虽然最终离开了比特股,但是BM依然会参与BTS紧急Bug修复工作。与此同时,BM又开发了一款旨在颠覆传统互联网媒体行业的项目——Steemit,这也是开辟了基于区块链Token内容社区的先例。Steemit也是基于石墨烯技术的,它非常流行。

2017年,随着Steemit的成熟,BM宣布退出了Steemit,开展了下一个项目EOS。EOS的目的是要做出区块链行业的操作系统,为开发者提供底层功能,包括并行运算、数据库、账户系统等等。

EOS一经发布,就广受关注,短短五天内,EOS便筹集到了数亿美金,它的代币销售规模在目前为止是最大的。

现阶段的EOS超级节点竞选也体现出了BM强大的影响力。 EOS项目影响力也越来越大,BM因为与V神在区块链上的理念不合,也经常互怼,他们争论的重点是二人对于去中心化的前提假设不同,这也造就了两个不同的设计逻辑,所以,两人的争论过程可以说是非常地吸引眼球了。

我们从BM的个人经历、项目经验、影响力都可以看出BM是一个很懂金融的天才式程序员,同时也是一个有点刚愎自用导致与社区矛盾不断的意见领袖。

DPoS详解

讲完了BM的故事,我们再来讲讲DPoS。我们在前文粗略地讲过DPoS算法,我们先来回顾一下。

简单来理解,DPoS共识算法就是将PoS共识算法中的记账者转换为指定节点数组成的小圈子,而不是所有人都可以参与记账,这个圈子可能是21个节点,也有可能是101个节点,这一点取决于设计,只有这个圈子中的节点才能获得记账权。这将极大地提高系统的吞吐量,因为更少的节点也就意味着网络和节点的可控。

1.DPoS共识的目标

从名称上,我们也可以判断出DPoS与PoS共识是直接关联的。DPoS算法是BM根据当时PoW、PoS的不足而改进的共识算法,它的目的就是为了提高性能,也就是交易确认时间短。

在PoS共识中,人们使用财产证明来“挖矿”,也就是说,这是任何人都可以参与的,只要你持有币,你就可以参与挖矿。

但是我们可以看出,PoS并没有解决性能问题,在这里我们直接认为提高性能就是提高TPS,我们可以构造一个等式,:

TPS = transactions / block_time

TPS表示区块链每秒能确认的交易数, transactions 是由区块大小block_size和平均每笔交易大小决定的,而区块大小受全网网络状态network_bandwidth 限制,也是由记账节点之间物理带宽witness_performance决定的。

记账节点的个数witness_count直接决定了物理带宽的上限,因为记账节点数量越多,则对物理带宽要求越高,对网络的稳定性要求也越高。

要注意的一点是在DPoS中,记账节点不叫做矿工,而是改称为见证人,Witness。

所以这个公式变成了下面的样子。

TPS = (block_size * network_bandwidth * witness_performance) /- (block_time * witness_count)

我们可以看到,要提高TPS,可以提升分子项,降低分母项,也就是增大区块大小block_size、提升记账节点网络带宽network_bandwidth、提升记账节点处理性能witness_performance,减小区块时间block_time、减小记账节点数量witness_count。

分子项我们可以看到,它基本受限于物理资源的上限,目前工业水平制造的物理资源的使用上限基本就是整个项的上限了,所以可操作性不大。

而分母项是由共识算法决定的,所以我们从区块时间,以及记账节点数入手,DPoS算法便正是从这两项着手的。

首先改动的便是限制记账节点的数量,也就是见证人的数量。

我们在PoW和PoS中可以看到,成为记账节点是无需门槛的,你可以随时参与挖矿,随时退出。

那这会带来什么问题呢,首先无法确定记账节点的数量,其次无法确定记账节点之间的网络环境,记账节点数越多网络环境越复杂,这些不确定性会增大网络分区的概率,从而导致区块链分叉。

如果我们事先规定好记账节点的数量,接着让全网所有节点可以投票决定哪些节点可以成为记账节点,这样就限制并减小了分母项witness_count,这个过程我们也称作投票选举。

因为记账节点数量不多,那么我们可以在共识算法中可以规定出块时间为一个固定值,这个值可以很小,通过轮流出块的方式来进行记账。

以上思路基本就是DPoS的基本设计思路,BM还为DPoS算法确立两个原则:

  1. 投票选举过程一定要保证最大权益所有者最终能控制全网,因为一旦出了问题,他们的损失最大;

  2. 与PoW、PoS一样,所有节点仅承认“最长”链。

这两个原则确立了DPoS共识的基本特性,第一条放大了PoS共识使用者就是记账者的优点,第二点则规定了分叉时系统应该表现的行为。

2.DPoS共识算法分析

在DPoS共识算法中,区块链的正常运转依赖于见证人(Delegates),见证人是由全网节点投票产生的,见证人也是记账节点的实际控制人,相当于咱们选课代表,课代表帮我们整理作业。

见证人在完成打包交易的同时可以领取区块奖励和交易的手续费,并且可以执行社区投票的提案,所以DPoS共识算法不仅仅是算法,而是一个包含了协作治理关系的共识机制。

我们可以引用“DPoS算法白皮书”中的内容,来看看BM设计DPoS算法是怎样的思路。

BM认为所有区块链实际是建立交易之上的确定性状态机。共识是在确定交易顺序,过滤无效交易的一个达成一致意见的流程。

DPoS为了尽快确定交易顺序,过滤无效交易,所以规定了在正常情况下,所有记账节点轮流每3秒产生一个区块,轮到了某个记账节点出块时,必须在3秒内提交区块,否则就会错块。

假设一直没有记账节点错过自己顺序,那么他们生产的链条势必是最长的链条,如果记账节点在非指定时间生产区块被认为是无效的,每经过一轮,所有节点轮流出块的顺序就会发生重新洗牌。

下图就是一个理想的轮流记账状态。

DPoS算法白皮书介绍了7种异常的情况会打破上面的正常情况。

在这种情形下,B节点只能在9秒内生产1个块,而大多数分支,由于数量多一倍,将预期能在9秒内生产2个块,诚实的2/3的大多数可以比小的那一部分创建一个更长的链条,由于原则二,DPoS可以抵御这种攻击。

在DPoS白皮书中介绍了少数记账节点恶意或故障造成的分叉、网络分区情况下重复出块、少数记账节点重复出块、记账节点数量不足、多数记账节点的联合腐败等各种情况。

由于篇幅有限,你如果感兴趣的话可以自行阅读。遗憾的是白皮书中的内容没有经过严格证明,以定性分析为主,所以我们无法确定DPoS算法是否有设计缺陷。

在实际应用中,比特股中见证人是101人,EOS里是21人。比特股中见证人们赚取手续费,EOS里见证人们分享EOS的通胀收益。他们都是通过公开选举选出来的,选票就是大家手里的比特股或EOS。

3.有关DPoS的一个争论:中心化问题。

我们之前文章中提过的FLP和CAP定理,如果为了提升性能,即一致性的效率,势必会牺牲其他两项。这也会引出有关DPoS的一个争论:中心化问题。

我们以比特股社区为例,每个人都可以尝试成为101个见证人节点中的一个,他们可以在社区里拉票,为社区做事,或者干脆用钱买很多bts。平时大家象征性地开个会,因为是轮流记账,各个节点之间竞争不大。

但是不要忘记,区块链的发展非常依靠社区,这种方式势必会带来社区的中心化。虽然比特股中101个见证人负责记账,但总得有人指定发展方针,于是又设计出了11人理事会,这同样是通过选票选出来的。

11人理事会有很高的权力,他们相当于11个超级节点,通过举手表决,甚至可以决定修改代码,而这11人理事会是比特股系统里的中心,也是规则的制定者。

这是DPoS算法的优势,也是DPoS算法的劣势。在PoW中,矿工、开发者、用户三权分立。

而DPoS似乎将这三权合并到了见证人和理事会手中。在EOS中,BM还制定了区块链宪法,要求所有记账节点必须遵守,所以也有人抨击这是具备了BM特色的去中心化。

从某种角度来看,DPoS是社区治理加上共识算法,不再是单纯的技术共识,这是与PoW、PoS算法最大的不同。

DPoS的基本假设是相信节点是好的,所以尽可能快速选择记账节点,而把问题发生后的修复过程推迟到投票中,可以说DPoS并不考虑拜占庭容错问题,把拜占庭容错推给了社区治理,而在社区治理上可归纳为一切皆投票。

而现实生活中,很多情况下,投票并不能解决问题,比如投票人都是有惰性的,集齐所有人投票成本是很高的,如果记账节点没有上限,所有节点的投票都投给自己,DPoS系统就会退化成PoS系统。

总结

我们来总结一下DPoS共识机制。

DPoS共识机制本身将“矿池”纳入系统内部,并把它们统称为见证节点,虽然不会出现中心化挖矿的风险,但是DPoS由于节点数不多,并且见证节点权力较大,可以认为DPoS本身就是带中心化思路的共识机制。

上一页SegWit和Taproot是什么?二者之间的差异与各自优势下一页比特币脚本研究

最后更新于1年前

这有帮助吗?

- (图来自白皮书)

例如少数记账节点发起恶意分叉或者发生故障,如下图。-- (图来自白皮书)

🌾