liuyifei
《【天下大义,当混为一】(中)稳定论 vs 演化论》
这段是补《【天下大义,当混为一】(上)谈Hash Vote & Market Vote》的开头:
零、什么时候比特币应该分叉?
比特币应不应该分叉,要看造成分歧的原因是什么。
1、如果是目标不同,那就应该分叉,让市场选择谁是对的
在扩容之争中,一派(Bitcoin Core)认为比特币的目标是数字黄金,一派(Bitcoin Cash)认为比特币的目标是全球货币,目标分歧不可调和,所以自由分叉,竞争,让市场做选择是最好的结果。
有些不同目标的分叉,会占领不同的市场,形成不同的产品。但比特币的这次扩容分叉,很可能最后还是会统一,因为储值能力,并不能脱离日常使用而单独存在。
比特币要能储值,那就要求你卖出时有 “足够多的人” 愿意买入,但是 “足够多的人” 并不会凭空从天上掉下来,用户数、知名度、IP,这些在商业上都是极其昂贵的东西,创造这些昂贵的东西最好的方法,就是流量和高频使用。
什么东西才能高频使用?没错,就是——现金。现金并不只是指 “日常买咖啡”,而是指 “高频、高接触、高曝光使用”。
同样是2100万币的产品,用户会选择用日常使用的、熟悉的产品A做储值,还是几乎没有接触的产品B做储值呢?最典型的产品就是房产了,虽然一线大城市的房产更适合储值,但二三四五线城市的居民,几乎都还是买本地房产,异地买房少之又少——无他,唯熟尔。
2、如果是目标相同,只是达成目标的手段不同,那最好通过仲裁机制解决分歧
过度的自由分叉,会对产品造成损害,任何产品都讲究规模效应——BCH社区分歧的两派,目标都是让BCH成为50亿人使用的世界货币——货币更是讲究规模效应。
过于频繁的分叉,还会严重损害BCH上的应用,例如使用交易的留言字段(OP_RETUEN)写微博的memo,分裂后总不可能每一条链上都存一遍微博吧?但如果只存了A链,然后A链最后死掉了,怎么办?
所以,没有有效仲裁机制,防止不必要分裂的BCH,只会导致应用的逃离——这也就意味着用户的减少,和 “高频使用” 的现金思想相抵触。
但是,仲裁机制要解决分歧,首先就要保证自己没有分歧,例如委员会投票,这种仲裁机制并不好,因为委员会自己就可能分裂,那什么才是有效的仲裁机制?
之前比特币并没有仲裁机制,在扩容之争中,开发团队Core的核心(有代码提交权)五人中,Gavin Andresen和Jeff Garzik支持扩容,并被踢出Core团队,比特币也分裂成了Bitcoin Core和Bitcoin Cash。
Bitcoin Core依然没有仲裁机制,所以可以预期Bitcoin Core未来还会发生进一步的分裂,ETH靠创始人Vitalik Buterin,暂时回避了这个问题,代价则是损失去中心化的 PoV(Proof of Vitalik)。而Bitcoin Cash走在了所有币的前面,正在形成一套有效的仲裁机制。
后面接上次发的《【天下大义,当混为一】(上)谈Hash Vote & Market Vote》
以下是《【天下大义,当混为一】(中)稳定论 vs 演化论》
一、BCH分歧的双方
BCH本次争论中,一派以支持 “ABC开发团队” 的比特大陆为首,另一派以nChain的CSW(Craig S Wright)为首,并发布了BSV客户端(Bitcoin Satoshi Vision,中本聪愿景)。两派都认为BCH应该成为50亿人的世界货币,但对于如何达到这一目标,两派所主张的手段不同。
比特大陆派认为BCH应做快速迭代更新,满足市场和应用需求,吸引更多用户,并最终达到50亿人世界货币的目标。CSW派则认为BCH作为货币,应该保持底层的稳定,只有稳定的协议才能吸引应用和企业,甚至主张应该恢复到最初的0.1版比特币、并锁定协议,认为中本聪已经为比特币设计了足以承担世界货币功能的底层框架(包括图灵完备的脚本),只要在上层做开发即可实现目标。
二、白皮书怎么设计比特币?
要讨论 “稳定论 vs 演化论”,首先我们应该先了解,白皮书是怎么设计比特币的?
扩容派经常指出Core的路线违反了白皮书的目标,而Core派则反击说,BCH分叉时增加的EDA/DDA难度调整算法违反了白皮书,白皮书里根本没有DDA难度调整算法。
实际上在白皮书里,不要说DDA难度调整算法了,甚至连大家习以为常的 “区块10分钟一块” 都没有,只是在第4章:工作量证明(Proof-of-Work)里设计了 “区块平均n分钟一块”:
The proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases.
工作量证明的难度将采用移动平均目标的方法来确定,即令难度指向令每小时生成区块的速度为某一预设的平均数。如果区块生成的速度过快,那么难度就会提高。
然后在第7章:回收硬盘空间(Reclaiming Disk Space)里举了10分钟一块的例子:
……If we suppose blocks are generated every 10 minutes……
……如果我们设定区块生成的速率为每10分钟一个……
白皮书其实非常克制,仅做了目的性描述,哪种设计更好地满足白皮书的目标,就更符合白皮书。BCH的DDA难度调整算法,能在算力大幅变化时,让区块时间更满足 “平均n分钟一块” ,所以更符合白皮书。
在11月15日的算力战中,我们将能直观地看到什么叫 “BCH的DDA难度调整算法更符合白皮书” ,如果双方都从Bitcoin Core上大量调算力到Bitcoin Cash上进行算力战,那Bitcoin Core的区块时间将明显延长,长时间不能恢复,并发生严重拥堵,而Bitcoin Cash不管算力怎么变化,都能稳定 “平均10分钟一块” 。
三、如何满足白皮书的目标?
我们坚持白皮书中比特币作为 “电子现金系统” 和 “世界货币” 的目标不变,那在外界环境改变时,我们也就必然要改变手段,才能保证目标不变。就像上文所举例的,当分叉发生时,Bitcoin Cash将原来比特币 “2016个块调整一次” 的难度调整算法,修改为 “每个区块调整一次” 的DDA难度调整算法。
那么,这种协议层的修改,是否让比特币的底层变得不稳定?如果主张 “稳定底层协议” 时,应如何看待这样的修改?
目前我们可以看到,有不少人都支持 “稳定协议论”,这和 “稳定协议论” 的简单、清晰、易理解有很大关系。CSW甚至在一开始提出的是更极端的 “锁死协议论”:把比特币恢复到0.1版并锁死,这个主张实际上无法实行,比特币在0.1版后做了大量功能性和安全性的协议层修改,这些修改——例如多重签名——已经不可能删除。
为什么CSW会提出这样无法实施的主张?这和这样的主张简单清晰,更容易理解、宣传、获得支持认同有关,但获得这样的认同,并不意味着这种主张的正确。
最典型的例子就是中国1958年的大炼钢铁运动,“我们要超英赶美”,“今年钢产量要翻倍到1070万吨” 这样的口号简洁有力,在宣传和发动群众上有着巨大的优势,但最后却造成了巨大的经济灾难。
而一个合理的钢铁发展计划,必然复杂琐碎,充满调整反馈,在大部分情况下,都要根据经济和市场的情况进行修正,甚至无法落到纸面上,更不用说 “简洁有力的宣传口号” 了。
四、一个 稳定论 vs 演化论 的实例:DSV操作码
DSV操作码(OP_CHECKDATASIGVERIFY)是本次硬分叉的争论焦点,也是典型的,稳定论 vs 演化论 两派的分歧点。
DSV的目的是将外部信息引入区块链中。现在的BCH区块链是一个孤立系统,它不知道巴西vs阿根廷的球赛结果,不知道今天的股票价格是多少,甚至不知道BCH自己的价格。但如果有了DSV,BCH用户就可以约定信息的发布方式,由某一个数据发布主体,通过签名的方式,生成可被BCH链上DSV操作码解析的数据。
这样某两(多)个用户,就可以无需通过第三方机构(股票交易所、体彩中心等),在BCH链上建立可靠的智能博弈合约。例如两个人要赌巴西vs阿根廷的球赛结果,只要把币打入一个多重签名地址,然后球赛结果经签名发布后,币就会自动转到赢家的地址中。
进一步了解,可参见闪电的这篇文章:《Oracle真实世界数据链——将现实世界和区块链世界相互打通》。
“演化论” 认为,DSV增强了BCH的功能,这是一个相当有用的功能,能为BCH带来更多的应用和用户。而 “稳定论” 则认为,不应为了上层应用或需求,去修改操作码这种底层协议,底层协议应尽量保持稳定,能不改就不改。
五、观点的逻辑自洽
当我们面对两个对立观点时,首先要思考观点是否逻辑自洽。
1、“演化论” 的观点是逻辑自洽的,BCH要成为50亿人的世界货币,所以BCH应考虑如何获取更多用户,而增强链功能,是一个吸引更多应用和用户的有效手段。这也和 “现金” “高频、高接触、高曝光使用” 的逻辑一脉相承。
有用则加,若错则改,小步迭代,快跑前进。在BCH用户数(和总市值)明显落后BCE(Bitcoin Core)的情况下,增加BCH用户数,是最重要的任务。
2、而 “稳定论” 的逻辑首先会面临一个问题:BCH的最高目标到底是稳定,还是获取50亿用户?两个目标并不一定能保持一致。有可能稳定可以获取更多用户,但也有可能适应市场需求,增加功能才能获取更多用户。如果竞争对手修改了底层协议,增加了功能,确实可以获取大量用户,那我们改不改?
如果不改,那最后在竞争中落败,用户归零,都灭绝了,还有资格讨论对错吗?如果也改了,那不变成 “演化论” 了?
3、实际上,Core拒绝扩容的观点,就是一种典型的 “稳定论”:比特币应尽量保持去中心化,节点应尽量保持小,交易拥堵可通过第二层闪电网络解决。
而BCH扩容分叉的观点,则是 “演化论” :用户的体验非常重要,不反对第二层网络,但现在区块容量已满,需要立即扩容,否则会导致用户流失到其它币上。
六、如何处理开发中的争议?
“演化论” 逻辑上很漂亮,但对区块链而言,却有一个致命问题:快速迭代需要频繁的修改,在一个去中心化的系统中,谁能做这样的决策?
ETH可以做快速迭代、频繁修改,那是因为创始人Vitalik Buterin的存在,能裁决不同的修改意见,Vitalik Buterin是ETH系统中 “天下大义,当混为一” 的 “一”,而比特币系统中的 “一”,则是算力。
但算力和Vitalik Buterin还是有巨大区别,算力无法直接参与开发,算力甚至不能介入开发。我曾设想过,所有的开发修改都形成BIP提案,然后由算力投票决定BIP提案是否通过,但经过推演,发现实际不可行。
证明不可行只需要有一个反例就足够了:比特大陆曾经提议矿工统一捐出挖矿产出的一小部分给开发,但因有政府强制税收的影子,被社区大部分人反对,提案因此而流产。但如果算力能直接决定开发提案,那比特大陆就能直接以优势算力,通过实施矿工捐助提案。这并不是社区大部分人愿意看到的结果。
我们知道暴力决定元规则,元规则决定一切规则,但这不等于 “暴力直接决定一切规则”,大部分规则是在元规则下,各方力量博弈的结果。算力是比特币系统的 “一”,是最终裁决力量,但 “最终裁决力量” 并不等于 “直接裁决一切”。
比特币具体的开发提案,应该由开发组和各方博弈决定,只有在各方无法谈拢,比特币面临分叉时,才是算力这个 “最终裁决力量” 上场的时间。
算力如何做裁决,将在《【天下大义,当混为一】(下)算力战》中做阐述,这也是大家最关心的内容,明天再见:)
总结:
1、比特币在目标一致,只是手段不同时,应通过算力仲裁机制,减少削弱力量的、无必要的分叉。
2、白皮书对比特币多为目的性描述,实践中重点是满足白皮书的目标。
3、如果坚持白皮书目标不变,为了满足不变的目标,在变化的市场环境中,必然采用变化的 “演化论”。
4、“稳定论” 主张简单清晰,更容易理解、宣传、获得支持,但并不意味着主张正确。“稳定目标” 和 “用户数目标” 在逻辑上相冲突。
5、“演化论” 必然产生冲突分叉,此时应通过算力做分叉裁决,避免无必要的分叉。