比特幣開發(fā)者有什么困難
掃描二維碼
隨時(shí)隨地手機(jī)看文章
一場經(jīng)年未決的爭論又在比特幣開發(fā)者社區(qū)內(nèi)重現(xiàn),矛頭指向了去中心化系統(tǒng)所面臨的一大關(guān)鍵性挑戰(zhàn):如何在沒有負(fù)責(zé)人的情況下升級(jí)軟件。
這次的導(dǎo)火索是 Taproot/Schnorr 。這是一項(xiàng)聚焦于隱私性和可擴(kuò)展性的升級(jí),已經(jīng)持續(xù)開發(fā)了多年,近期取得了巨大的進(jìn)展,其代碼也以“pull request(合并請(qǐng)求)”的形式進(jìn)行過審查和測試,讓幾年前關(guān)于代碼更改的討論更加接近現(xiàn)實(shí)。
目前為止,代碼更改本身并未在開發(fā)者之間引起爭議。引發(fā)討論的是,該如何激活這部分代碼,使之改變比特幣交易的發(fā)送方式,才是最佳方案。
之所以會(huì)出現(xiàn)這樣的問題,其關(guān)鍵的原因在于,比特幣沒有領(lǐng)導(dǎo)者,而且分布在全世界各地。整個(gè)網(wǎng)絡(luò)如何以向后兼容的方式平穩(wěn)升級(jí),讓那些運(yùn)行舊版本軟件的用戶繼續(xù)參與?怎樣才能讓比特幣在更改代碼的過程中不造成中斷?
需要明確的一點(diǎn)是:比特幣是一個(gè)開源項(xiàng)目,擁有一個(gè)遍布全球的開發(fā)者網(wǎng)絡(luò),幾乎每天都會(huì)更新其代碼。但是,如果“共識(shí)”代碼被更改,就會(huì)觸及比特幣更深層次的部分,需要進(jìn)行“軟分叉”,需要一定程度上的協(xié)作才能平穩(wěn)進(jìn)行。
Bitcoin Core 的貢獻(xiàn)者馬特·科拉羅(Matt Corallo)上周寫了一份郵件群發(fā)給了比特幣的開發(fā)者,再度引發(fā)了這場爭論。他在郵件中寫道:“近期,有一系列軟分叉設(shè)計(jì)在具體實(shí)現(xiàn)和未來采用方面取得了良好的進(jìn)展。然而,由于種種原因,關(guān)于激活方式的討論卻不多?!?br />
有兩種方式可以進(jìn)行軟分叉。一種是通過 BIP 9(比特幣改進(jìn)提案),之前就有一些軟分叉是通過這種方式進(jìn)行的。它可以確保礦工在軟分叉之前做好準(zhǔn)備,確保軟分叉在整個(gè)網(wǎng)絡(luò)中平穩(wěn)推進(jìn)。關(guān)于這種方法,最常見的反對(duì)意見是,它給予了礦工太多權(quán)力。
另一種方式是 BIP 8 ,也稱為用戶激活式軟分叉(UASF)。無論礦工是否發(fā)出了準(zhǔn)備就緒的信號(hào),軟分叉都會(huì)被激活??评_警告說,這種方式會(huì)引發(fā)其他問題,具體取決于執(zhí)行情況。
歷史教訓(xùn)
該討論始于 2017 年,當(dāng)時(shí) BIP 9 被用于激活隔離見證(Segregated Witness,SegWit),成為了比特幣可擴(kuò)展性之爭的重要一節(jié)。為避免礦工挖出無效塊并遭受損失,只有當(dāng) 95% 的礦工表示準(zhǔn)備就緒之時(shí),隔離見證才會(huì)被激活。
大多數(shù)礦池(由一群將算力聚集起來的礦工組成)表示不會(huì)支持(實(shí)際上是禁止)隔離見證,除非在激活隔離見證的同時(shí)增加區(qū)塊大小參數(shù)。(那位神秘的比特幣之父將區(qū)塊大小的上限設(shè)定為 1 兆字節(jié),從而限制了區(qū)塊內(nèi)可容納的交易數(shù)量。每 10 分鐘出一個(gè)塊。)
這一需求引發(fā)了不小的爭議,許多人相信這會(huì)導(dǎo)致網(wǎng)絡(luò)中心化(無論如何,除非比特幣成為中心化的網(wǎng)絡(luò),否則隔離見證不可能成功施行)。
簡而言之,這場爭議表明了,礦池可以利用 95% 這一閾值來推動(dòng)符合其預(yù)期目的更改:幫助他們完成過渡,以免造成損失。
許多比特幣支持者并不喜歡這樣,認(rèn)為這是礦工在試圖利用他們的權(quán)力來推動(dòng)有違部分用戶意愿的改變。
隨著爭議不斷加劇,一位匿名開發(fā)者 Shaolinfry 指出,比特幣支持者們依然可以促成升級(jí)。從根本上來說,他的想法是,應(yīng)該讓比特幣用戶和交易所來決定是否進(jìn)行更改,并讓礦工遵從他們的意愿——而非反其道行之。這個(gè)方法已經(jīng)被用來激活其它更改。Shaolinfy 在 BIP 8 中正式提出了這一想法,也被稱為用戶激活式軟分叉。
有大量用戶在社交媒體上表示了對(duì)用戶激活式隔離見證軟分叉的大力支持,并開始運(yùn)行該軟件。此舉似乎達(dá)到了預(yù)期的效果。在這個(gè)軟分叉激活的前一天,礦工就開始發(fā)出信號(hào)來支持隔離見證。
值得注意的是,在爭論不休的這段時(shí)間內(nèi),出現(xiàn)了多個(gè)用戶激活式軟分叉,一個(gè)比一個(gè)更為謹(jǐn)慎(且更為保守),而且爭議性更小。但是,如果不陷入困境的話,對(duì)于一些比特幣開發(fā)者來說,通過用戶激活式軟分叉,可以更好地實(shí)施改變。
當(dāng)時(shí),比特幣創(chuàng)業(yè)公司 Blockstream 的開發(fā)者羅斯提·拉塞爾(Rusty Russell)甚至還為參與構(gòu)建 BIP 9 而道歉。
拉塞爾在 Medium 上的一篇文章中寫道:“我沒想到 BIP 9 會(huì)被用來綁架整個(gè)網(wǎng)絡(luò)。這極大地改變了風(fēng)險(xiǎn)模型;目前,BIP 8 是一種更好地促成網(wǎng)絡(luò)升級(jí)的方法,礦工只能加快進(jìn)程,無法阻止它。”
前車之鑒
有了前車之鑒,一些開發(fā)者對(duì)于再次使用 BIP 9 促成 Schnorr/Taproot 或是其他更改之舉非常謹(jǐn)慎。
Bitcoin Core 的開發(fā)者盧克·達(dá)什希爾(Luke Dashjr)在回應(yīng)科拉羅時(shí)表示:“我認(rèn)為 BIP 9 已經(jīng)被證實(shí)是一個(gè)失敗的方案了?!敝?,他又提出了技術(shù)上的理由。在這場關(guān)于可擴(kuò)展性的爭論中,有很多人支持通過用戶激活式軟分叉來實(shí)現(xiàn)隔離見證,達(dá)什希爾是其中呼聲最高的一個(gè)。
創(chuàng)業(yè)公司 Lightning Labs 的開發(fā)者亞歷克斯·博斯沃思(Alex Bosworth)表達(dá)了相似的觀點(diǎn),還拿 BCH (2017 年從比特幣分叉出的加密貨幣)舉了例子。
最近,很多 BCH 礦池聯(lián)合提議,應(yīng)從區(qū)塊獎(jiǎng)勵(lì)中撥出一部分 BCH 給開發(fā)者基金。博斯沃思認(rèn)為這又是一個(gè)礦池濫用權(quán)力的例子,不利于加密貨幣的去中心化。
博斯沃思在推特上說:“我知道,部署軟分叉通常是為了嘗試對(duì)礦工友好的方法。但是,我們目前的算力有很大一部分(1/3)形成了壟斷,用于通過竊取區(qū)塊獎(jiǎng)勵(lì)的提議?!彼饕獜氖驴蓴U(kuò)展型閃電網(wǎng)絡(luò)基礎(chǔ)設(shè)施的搭建。
這就是為什么他支持用戶激活式軟分叉的原因,雖然后者需要消耗更多時(shí)間。
博斯沃思補(bǔ)充說:“慢節(jié)奏的用戶激活式軟分叉是最適合我的?!?br />
混合式方案
然而,有些人發(fā)出了警示,擔(dān)心將用戶激活式軟分叉作為唯一的激活方式可能會(huì)促成有害比特幣的更改。
舉例來說,最開始的時(shí)候,開發(fā)者喜歡 BIP 9 的一個(gè)原因是,95% 這一閾值會(huì)提供一道安全保障。如果礦池在升級(jí)軟件之時(shí)發(fā)現(xiàn)了問題,他們就會(huì)阻止更改。一旦用戶激活式軟分叉啟動(dòng),就很難停止激活。
這就是為什么科拉羅老調(diào)重彈,提出了一個(gè)將 BIP 8 和 BIP 9 相結(jié)合的方案。先是按照 BIP 9 來激活軟分叉,如果因?yàn)椤安缓侠淼姆磳?duì)理由”導(dǎo)致軟分叉未在一年之內(nèi)成功激活,那么接下來的 6 個(gè)月里用戶可以再次提出爭議。之后,如果社區(qū)確實(shí)想要做出更改的話,可以在下一年嘗試 BIP 8 。
一些開發(fā)者可能會(huì)爭辯說,如果不存在“不合理的反對(duì)理由”,那么推行一項(xiàng)更改所花的時(shí)間就太久了。但是科拉羅表示要有耐心。
要辨認(rèn)這些反對(duì)理由是否“不合理”可能需要一些時(shí)間??评_說:“如果更改未能成功推行,那么通過 BIP 9 流程可以很好地了解社區(qū)的民意?!?br />
科拉羅說:“比特幣開發(fā)并不是一場競賽。如果有些事不得不為,等待 42 個(gè)月可以確保我們不會(huì)開出一個(gè)負(fù)面的先例。否則隨著比特幣的發(fā)展,我們將追悔莫及?!?br />
雖然拉塞爾在 2017 年似乎很反對(duì) BIP 9 ,但他已向 CoinDesk 表示,他現(xiàn)在同意采用這種混合式方法。
拉塞爾說:“由于礦工未能成功阻止更改,我們也沒有因拖延而遭受巨大損失,我不介意激活 BIP 9 ?!辈贿^,他提議縮短時(shí)間線。
拉塞爾說:“對(duì)于 BIP 9 來說,一年的激活期限似乎太久了, 6 個(gè)月或許更好。這樣一來,如果超出 BIP 9 的激活期限,并且被認(rèn)定是遭遇礦工阻撓的緣故,用戶就可以組織一個(gè)用戶激活式軟分叉?!?br />
工程師正在認(rèn)真審查 Taproot/Schnorr 的代碼,從而解決一切遺留問題。因此,開發(fā)者依然有時(shí)間來討論激活方案。不過,先要等社區(qū)做出決定之后,才能對(duì)比特幣協(xié)議進(jìn)行更改,增強(qiáng)網(wǎng)絡(luò)的隱私性。