昨天學(xué)到BIP141、SegWit2x 和UVSF的時候我就在想层玲,這丫太難了号醉,壓根就看不到,要不就一筆帶過吧辛块。后來想想畔派,也不能這樣啊,作為一個鐵錚錚的區(qū)塊鏈學(xué)習(xí)者润绵,怎么能見熊就跑呢线椰,咱好歹要了解了解對吧,所以我就從硅谷區(qū)塊鏈公眾號上引用了這篇文章尘盼,足以解釋BIP和SegWit的前世今生了,至于UVSF憨愉,咳咳烦绳,我再找找看。
如有侵權(quán)莱衩,請隨時聯(lián)系刪帖爵嗅。
一、故事回顧
背景:中本聰留下的BUG
大家知道笨蚁,比特幣的每一個區(qū)塊的容量大小只有1M睹晒,隨著用戶數(shù)和交易量的迅速增長,區(qū)塊容量限制越來越成為影響比特幣區(qū)塊鏈運(yùn)轉(zhuǎn)的瓶頸括细。用戶的交易需要越來越長的時間來等待礦工打包確認(rèn)伪很。
這就猶如北京和上海之間有趟比特幣班車,每10分鐘一班奋单,要是上車的人越來越多锉试,就需要加把小車廂換成大車廂,把100座變成200座的览濒。不然沒上車的人就會堵在車站呆盖,直接把系統(tǒng)搞癱瘓了。
實(shí)際上贷笛,2009年比特幣初次誕生時应又,中本聰把每個區(qū)塊的容量大小設(shè)置為32M。這個容量其實(shí)足夠大乏苦,拿到今天都綽綽有余株扛。
但那時比特幣面臨黑客的“粉塵攻擊”。所謂 “粉塵攻擊”汇荐,就是有黑客提交大量的小額交易洞就,阻礙了正常交易的確認(rèn)。這就猶如有人去銀行搞破壞掀淘,派 1000 個人堵到窗口存1塊錢旬蟋,銀行容納不了就癱瘓了。
為抵御粉塵攻擊繁疤,2010年咖为,中本聰把區(qū)塊容量的上限降低為1M,并說這個上限在未來某個時候可以再調(diào)整稠腊。
序幕:派系的產(chǎn)生與容量告急
不久后躁染,中本聰隱退江湖,把區(qū)塊鏈系統(tǒng)的代碼維護(hù)工作交給了他的一批追隨者架忌,這些人被稱為 core 開發(fā)組吞彤,為首者是被稱為中本聰繼承人的加文·安德森(Gavin Andresen)。
但core團(tuán)隊(duì)并不是BTC唯一的主宰者。比特幣的交易需要礦工挖礦來記賬饰恕,隨著挖礦成本的迅速升高挠羔,普通個人計(jì)算機(jī)挖礦成功的概率逐漸趨近于0,只有采用大批的專業(yè)礦機(jī)集體挖礦才能成功埋嵌,也就是礦池破加。中國西南及內(nèi)蒙因大量水電、風(fēng)電過剩而導(dǎo)致電價極低雹嗦,為礦池挖礦提供了良好條件范舀。在2017年中國政府打擊之前,中國的數(shù)個大礦池一度集中了全球近90%的算力了罪。后來的擴(kuò)容大戰(zhàn)就在core團(tuán)隊(duì)和礦工群體之間展開锭环。
中本聰所言擴(kuò)充區(qū)塊容量的這一天很快就到來了。下圖可見泊藕,從 2014 年第四季度開始辅辩,比特幣的區(qū)塊包開始快速增大,按照當(dāng)時的增長速度娃圆,交易區(qū)塊大約會在 2016 年底觸及 1M 的紅線玫锋。考慮擴(kuò)容方案達(dá)成共識需要多方復(fù)雜的談判讼呢,所以時間其實(shí)非常緊迫景醇。2015 年 5 月, Gavin Andresen 提出在 2016 年 3 月擴(kuò)容到 20M吝岭,開啟了擴(kuò)容方案大戰(zhàn)的序幕。
亂戰(zhàn)開始
2015年6月吧寺,中國五大礦池(Antpool窜管,F(xiàn)2Pool,BTCChina稚机,BW幕帆,Huobi)聯(lián)合發(fā)表聲明反對擴(kuò)容到 20M,支持?jǐn)U容到 8M赖条。這一方案也遭到了社區(qū)大部分礦工的反對失乾。隨后,一些 core 開發(fā)組的早期成員也陸續(xù)提出了系列擴(kuò)容建議纬乍,這些建議是比特幣改進(jìn)協(xié)議(BIP碱茁,bitcoin improvement proposals)的主要組成部分》卤幔
2015年12月纽竣,core團(tuán)隊(duì)的 Eric Lombrozo、Johnson Lau 和Pieter Wuille (BlockStream的聯(lián)合創(chuàng)始人)建議,移除比特幣交易過程中的簽名字段蜓氨,將交易和簽名分離開聋袋,這樣就可以在不擴(kuò)大區(qū)塊大小的情況下實(shí)現(xiàn)變相擴(kuò)容,也稱為技術(shù)性擴(kuò)容方案SegWit(Segregated Witness)穴吹,核心協(xié)議是BIP141幽勒。
2016年1月12日,一個名為 Jonathan Toomim 比特幣開發(fā)人員提出港令,要延續(xù)中本聰?shù)乃枷肷度荩?BIP109 協(xié)議,在中本聰?shù)拇a庫基礎(chǔ)上將區(qū)塊大小擴(kuò)大到 2MB缠借,并分叉出 Bitcoin Classic干毅。這項(xiàng)提議的支持者包括core開發(fā)組成員Gavin Andresen,Jeff Garzik以及前比特幣基金董事 Olivier Janssens等人泼返。該方案需要獲得 75%以上算力支持才能夠被激活硝逢,激活之后 28 天才會發(fā)生硬分叉。
2016年1月23日绅喉,邁阿密比特幣圓桌會議在在 Hyatt Regency 酒店舉行渠鸽,參會方主要包括 Bitcoin Classic、Bitcoin Core 及中國礦工柴罐。這是一次倉促的會議徽缚,沒有達(dá)成任何協(xié)議。但中國礦工們倒是在邁阿密會議基礎(chǔ)上迅速組織了一次擴(kuò)容問題的協(xié)調(diào)會革屠,會后達(dá)成了“九二共識”(滑稽)凿试。“二”指支持比特幣擴(kuò)容至 2 MB似芝,“九”指反對低于90%算力共識的分叉協(xié)議那婉。這個“九”是針對Bitcoin Classic來說的,意思說支持?jǐn)U容党瓮,但75%的支持率太低了详炬,會引起社區(qū)分裂,需要90%的支持率才行寞奸。
Bitcoin Classic沒有理會呛谜,于2016年2月初正式發(fā)布。礦工們嘴上說反對枪萄,但考慮到bitcoin是一個多方博弈的結(jié)果隐岛,誰也不敢保證未來會是怎樣,所以當(dāng)時一半多的算力對這項(xiàng)擴(kuò)容協(xié)議表達(dá)了“身體上的誠實(shí)”呻引。同理礼仗,很多交易所也予以了支持。
但這是一個沒有得到廣泛認(rèn)同的匆忙協(xié)議,只持續(xù)了一年多時間元践,Bitcoin Classic就被社區(qū)拋棄韭脊。2017年11月,Bitcoin Classic開發(fā)團(tuán)隊(duì)宣布放棄這個項(xiàng)目单旁,不再更新代碼沪羔。基于“幣圈一天象浑,人間一年”的時空理論蔫饰,一年多時間也算是夠長了,Bitcoin Classic被拋棄是也是在算是在經(jīng)歷達(dá)爾文的自然選擇愉豺,它并不是最后一個篓吁。
團(tuán)結(jié)的假象:香港和談
在邁阿密,礦工和core開發(fā)組為了維護(hù)比特幣及社區(qū)的統(tǒng)一站在了同一個戰(zhàn)壕里蚪拦,因?yàn)槟菚r候他們有一個共同的敵人Bitcoin Classic杖剪。隨著Bitcoin Classic義無反顧地分家出去,就剩下礦工和core開發(fā)組來決定Bitcoin究竟該如何擴(kuò)容驰贷。2016 年 2 月20日盛嘿,Core 開發(fā)組代表和礦工雙方在香港數(shù)碼港再次開會討論擴(kuò)容的方案。
會議一直從20日開到21日凌晨三點(diǎn)半括袒,雙方達(dá)成協(xié)議次兆,史稱《比特幣圓桌會議達(dá)成關(guān)于擴(kuò)容的共識》。協(xié)議最大的成果是:core同意將硬分叉到2M納入core的框架之中锹锰,作為交換芥炭,中國礦工也同意只運(yùn)行core開發(fā)的比特幣程序,堅(jiān)決和Bitcoin Classic劃清界線恃慧。
當(dāng)時的人們認(rèn)為這是一次團(tuán)結(jié)的大會蚤认、勝利的大會,沒想到這差不多是1945國共重慶談判的翻版:Core 的香港和談代表回去之后糕伐,開發(fā)組的其他成員對協(xié)議不滿,最后拒絕執(zhí)行香港共識蘸嘶。
社區(qū)一片嘩然良瞧,分裂再也不可避免。
社區(qū)分裂
2016年10月训唱,占全網(wǎng)算力10%的ViaBTC率先部署B(yǎng)itcoin Unlimited(BU)褥蚯,BU也有一個開發(fā)團(tuán)隊(duì),并和core團(tuán)隊(duì)抗衡况增。11月赞庶,Bitcoin.com,BTC.top,CANOE三家礦池部署B(yǎng)itcoin Unlimited歧强,公開與core開發(fā)組翻臉澜薄。與此同時,core開發(fā)組發(fā)布Segwit代碼摊册,并在11月19日開始投票肤京。但此時的雙方都沒有獲得社區(qū)的絕對支持。
由于 BIP141一直被礦工陣營反對茅特,為了推進(jìn)隔離見證的升級忘分,2017 年 3 月,由自稱 Shaolinfry 的匿名社區(qū)成員提出建議白修,是否進(jìn)行升級更改比特幣網(wǎng)絡(luò)的決策權(quán)由礦工決定轉(zhuǎn)向由用戶妒峦、交易所、支付處理商等來決定兵睛。該協(xié)議將原本由算力決定的鎖定信號交給由全網(wǎng)節(jié)點(diǎn)來決定肯骇。約定激活日期為8月1日,在這一天之后卤恳,激活和沒激活的節(jié)點(diǎn)將分道揚(yáng)鑣累盗。該方案被認(rèn)為是擴(kuò)容問題中最激進(jìn)和最具爭議的一個,但卻受到 core 團(tuán)隊(duì)支持的方案突琳。同月若债,這個月 AntPool 開始支持 Bitcoin Unlimited惑朦。
3月31日劲装,Rootstock 智能合約安全專家 Sergio Demian lerner 通過推特提出了“Segwit2MB”的折中解決方案,主張合并激活 Segwit 軟分叉和2MB 硬分叉疑苔。這個和稀泥的方案收到很多口水镜豹,因?yàn)榧嫒莸姆桨父鼜?fù)雜傲须,需要更長的時間審核代碼的安全性。
礦工們的單方協(xié)議:Segwit2x
經(jīng)過了香港共識事件趟脂,中國礦工對Core失去了信任泰讽,但擴(kuò)容還是需要解決的問題。于是昔期,2017年5月已卸,大家在紐約重新召開了一個擴(kuò)容大會,這次他們決定:不帶Core玩了硼一。參會方包括 Barry Silbert 旗下的數(shù)字貨幣集團(tuán)(DCG)和包括大型礦池運(yùn)營商比特大陸(Bitmian)等57家企業(yè)累澡。據(jù)說core團(tuán)隊(duì)的人試圖闖進(jìn)會場,但被安保攔在了外面般贼。參會企業(yè)簽署了紐約共識愧哟,獲得了全網(wǎng)80%以上的算力支持奥吩。
紐約共識的成果就是Segwit2x方案,也就是前文提到的Segwit2MB的翻版蕊梧,后來被blockstream的支持者James Hilliard打包成BIP91協(xié)議霞赫。這是一個BIP141(core支持,礦工反對)和BIP148(礦工支持望几,core反對)的合并捆綁方案绩脆。BIP91協(xié)議要求在8月1日之前激活隔離見證,以兼容方案BIP148橄抹,然后在3月內(nèi)實(shí)現(xiàn)區(qū)塊擴(kuò)容至2M的硬分叉靴迫。
2017年6月份,在Jeff Garzik支持下成立了Segwit2x開發(fā)小組楼誓,并發(fā)布了alpha版(然后Jeff Garzik就被踢出core團(tuán)隊(duì)了)玉锌。同時,AntPool發(fā)布了UAHF方案疟羹,目的是為了消除core開發(fā)組暗中支持的BIP148分裂比特幣的行為主守。中國礦工也在萊特幣基金會秘書長PZ的號召下再次開會,并重申對紐約共識的支持榄融,督促盡快激活Segwit2x参淫。7月21日,Segwit2x方案被正式激活愧杯。
Segwit2x漏氣了
Segwit2x作為一個兼顧了雙方利益的妥協(xié)方案涎才,在達(dá)成之后受到了萬眾期待。然而力九,促使集體分裂的或者說維護(hù)集體統(tǒng)一的根本并不在于技術(shù)耍铜,而在于人心。Segwit2x算是礦工做主跌前,滿足了core的利益和訴求的協(xié)議棕兼。但這個協(xié)議畢竟是core團(tuán)隊(duì)不在場的單方協(xié)議。core團(tuán)隊(duì)是根本反對區(qū)塊擴(kuò)容的方案抵乓,堅(jiān)持1M的原教旨主義伴挚,他們完全可能再提出另外一套協(xié)議,不承認(rèn)擴(kuò)容至2M的硬分叉灾炭。何況2M的區(qū)塊容量早晚也有用完的那一天章鲤,再過幾年還得再擴(kuò)容,再談判咆贬,再扯皮……
當(dāng)然,故事并沒有按著這個套路發(fā)展帚呼。按照Segwit2x方案掏缎,比特幣將在2017年11月17日晚達(dá)到494784區(qū)塊高度時啟動硬分叉皱蹦,產(chǎn)生比特幣分叉幣B2X。但是大量2X節(jié)點(diǎn)停留在494782高度眷蜈,第494783個區(qū)塊遲遲挖不出來沪哺。18日凌晨一點(diǎn)多,OKEx發(fā)布聲明稱Segwit2x硬分叉失敗酌儒。事后檢查發(fā)現(xiàn)辜妓,失敗的原因是2X代碼庫有幾個低級BUG。誰也沒有料到這么一個萬眾期待忌怎、多方妥協(xié)的方案會以難產(chǎn)的方式死亡籍滴,這給core團(tuán)隊(duì)送去了一個大笑柄。那句話怎么說來著榴啸,有時候努力了很久孽惰,到頭來發(fā)現(xiàn)只是一個...
新式割韭菜法
雖然Segwit2x失敗了,但社區(qū)并沒有都全部回歸到core的方案鸥印,而是放出了“分叉”這個魔鬼勋功。當(dāng)然,分叉的始作俑者是以太坊库说,但比特幣因其龍頭老大的地位極大地擴(kuò)大了分叉的影響狂鞋,或者說開啟了新式割韭菜浪潮。一些團(tuán)隊(duì)把原裝比特幣的代碼改一改潜的,就可以分叉出一條新的區(qū)塊鏈和新的虛擬幣骚揍。
前文提到的Bitcoin Unlimited(BU)團(tuán)隊(duì)跳出BIP141和BIP148方案,直接不要Segwit夏块,直接把區(qū)塊容量提升到8M疏咐,硬分叉出BCU,再改名Bitcoin Cash脐供,縮寫B(tài)CC浑塞。后來因?yàn)锽CC被另外一個山寨幣蹭了熱度,又改名BCH政己。再后來又產(chǎn)生了“比特幣鉆石/BCD”酌壕、“比特幣黃金/BitcoinGold”等一系列山寨幣。
二歇由、兩派究竟在爭什么
先來看礦工的方案:礦工的方案就是簡單明了卵牍,箱子小了就換大箱子。1M的區(qū)塊不夠大沦泌,那么就2M糊昙,還不夠就4M、8M谢谦、16M释牺。而Core認(rèn)為這是頭痛醫(yī)頭腳痛醫(yī)腳的臨時性辦法萝衩,每一次升級都要社區(qū)的大部分成員同意,每一次升級都有可能帶來新的分叉没咙。同時猩谊,區(qū)塊的增大將導(dǎo)致比特幣賬本迅速增大,個人電腦將無法保存祭刚,只有那些大礦池才能保存牌捷,這就違背了比特幣去中心化的初衷。
Core 的解決方案是隔離見證 Segregated Witness涡驮,英語字面上理解可翻譯為“隔離式的見證”暗甥,但其實(shí)翻譯為“把見證隔離了”更容易懂一點(diǎn)。大家知道遮怜,比特幣是一個可追溯的全網(wǎng)絡(luò)公開的賬本淋袖,這也就是說賬本除了顯示每個人有多少錢之外,還需要顯示這些錢是從誰那里來的锯梁,記錄這些交易的數(shù)據(jù)就是“見證”信息即碗。
用銀行匯款做做類比陌凳,假如A向B匯款100元剥懒,A需要填寫B(tài)的銀行賬戶和匯款金額,然后再簽字授權(quán)合敦。簽字授權(quán)是給銀行看的初橘,對B作為收款人而言其實(shí)毫無用處。在比特幣體系中充岛,是通過私鑰授權(quán)保檐,即見證信息,這也是給礦工記賬看的崔梗,收款方也毫不關(guān)心夜只。見證信息在交易信息中占用了不少的字節(jié),如果把這部分信息從賬本中移除的話蒜魄,1M的區(qū)塊就能容納更多的交易扔亥。
理想條件下,SegWit方案能帶來4M的擴(kuò)容效果谈为,但當(dāng)時業(yè)內(nèi)普遍估計(jì)實(shí)際只可達(dá)到1.7M左右的擴(kuò)容效果旅挤。這當(dāng)然也沒有根本解決問題,但core開發(fā)組也只是想把SegWit作為一個應(yīng)急方案伞鲫,是為終極方案“閃電網(wǎng)絡(luò)”(Lightning Network)鋪路的粘茄。
閃電網(wǎng)絡(luò)簡單的理解就是,在區(qū)塊鏈這條主鏈上開一條側(cè)鏈秕脓,用來承載那些數(shù)量大柒瓣、額度小的交易瘪菌,這些交易是不需要礦工記賬的,主鏈上只記錄那些額度較大嘹朗、數(shù)量較少的交易。
這就好比京滬高速公路是一條大干道诵肛,隨著車多起來路開始變得擁堵屹培。一種解決方式就是把道路加寬,還有一種解決方式是修一些支路怔檩,因?yàn)椴⒉皇撬腥硕夹枰獜谋本┤ド虾M市悖械目赡苤恍枰獜男熘萑?jì)南。閃電網(wǎng)絡(luò)的意思是薛训,這些在濟(jì)南和徐州之間的交通就另開一條支路就行了媒吗,主路留給跑長途的。
礦工也堅(jiān)決反對閃電網(wǎng)絡(luò)乙埃,因?yàn)楦綦x見證和閃電網(wǎng)絡(luò)是對原有比特幣系統(tǒng)的巨大改動闸英,萬一工程失敗路毀了,大家都沒辦法好好開車了介袜。其次甫何,閃電網(wǎng)絡(luò)也有中心化的趨勢,同樣違背去中心化的初衷遇伞。
內(nèi)在的利益分歧
兩派的相互 diss 可以說是發(fā)展理念的不同辙喂,但也涉及到深刻的利益分歧,其中礦工利益的損益在兩個方案中體現(xiàn)得相對明顯鸠珠。
礦工主動記賬是由于有兩部分的激勵巍耗,一是挖出新區(qū)塊時系統(tǒng)提供的獎勵,二是用戶向礦工提交的手續(xù)費(fèi)渐排。由于比特幣總量就2100萬個炬太,挖完就再沒有新的了,而且新生比特幣的數(shù)量是越來越少飞盆,記賬激勵越來越靠收取手續(xù)費(fèi)娄琉。閃電網(wǎng)絡(luò)方案讓那些小額交易不計(jì)入主鏈的區(qū)塊,礦工就直接少了一大筆財源吓歇。
Core開發(fā)組的利益就相對隱晦孽水,其成員相當(dāng)部分都加入了Block Stream公司。有陰謀論認(rèn)為城看,Block Stream死守1MB不放女气,坐等手續(xù)費(fèi)越來越高,區(qū)塊確認(rèn)時間越來越長测柠,逼迫交易頻繁的企業(yè)用戶去使用Stream公司開發(fā)的側(cè)鏈技術(shù)和服務(wù)炼鞠。這是一個講得通的推測缘滥,但并沒有實(shí)據(jù),何況比特幣的價格波動一直很大谒主,企業(yè)很難大規(guī)模采用這種不穩(wěn)定的交易媒介作為貨幣朝扼。但另一方面,Core團(tuán)隊(duì)一直死咬著1M不松口也缺乏足夠合理的解釋霎肯。
三擎颖、Core 會贏得勝利?
SegWit方案自提出一直備受爭議观游,然而在2017年8月8日突然峰回路轉(zhuǎn)搂捧,100%的礦池都表示支持這一升級提案。2017年8月9日凌晨懂缕,SegWit在被正式激活允跑。開始階段,SegWit還不夠普及搪柑,導(dǎo)致其擴(kuò)容效果不明顯聋丝,區(qū)塊大小一直維持在1.05M水平。但是拌屏,共識在時間的作用下不斷強(qiáng)化潮针,2018年1月22日開始出現(xiàn)了大量的2M左右的區(qū)塊,比預(yù)期的1.7M擴(kuò)容效果要好倚喂。隨著隔離見證的得到越來越多的普及每篷,比特幣交易的手續(xù)費(fèi)明顯下降,網(wǎng)絡(luò)擁堵也得到緩解端圈。2018年2月20日焦读,世界兩大交易所Coinbase以及Bitfinex 均發(fā)表了將采用隔離見證方案的聲明。
這似乎顯示core在贏得勝利舱权?
并不矗晃。
2018年2月25日,Core開發(fā)組成員Cobra通過推特發(fā)表了一封公開信宴倍。在這封信中张症,Cobra認(rèn)為在POW機(jī)制下,比特幣區(qū)塊鏈網(wǎng)絡(luò)的算力中心化的趨勢越來越明顯鸵贬,越來越集中到吳忌寒的比特大陸等極少數(shù)大礦池手里俗他。然后順便黑了一下中國政府,說中國缺乏和諧阔逼,萬一把吳忌寒的礦池給取締了兆衅,就會給比特幣帶來重大災(zāi)難。而這一切風(fēng)險都是POW機(jī)制產(chǎn)生的,為了擺脫以吳忌寒為首的礦工對比特幣的破壞羡亩,他提議對比特幣的算法進(jìn)行修改摩疑,將共識機(jī)制改為POW+POS的雙層模式。
吳忌寒馬上回懟畏铆,質(zhì)問Cobra是要改白皮書還是改POW(Which is your priority雷袋,rewrite the whitepaper or change POW)?要是真被你Cobra改了POW辞居,比特幣的市場份額會跌到10%以下片排。人家以太坊社區(qū)在搞ERC20改進(jìn)協(xié)議,還有很多區(qū)塊鏈項(xiàng)目在創(chuàng)新速侈,你們這樣亂搞比特幣藥丸啊。
這話感覺像是兩個皇子在爭奪大位迫卢,一個質(zhì)問另一個:你敢篡改中本先皇遺詔倚搬?!然后根本不聽對方解釋接著說乾蛤,敵國正在磨刀霍霍每界,你們這樣亂搞,大清藥丸凹衣簟眨层!……
撇開core和礦工的嘴上是非不論,如果core真地要修改POW機(jī)制上荡,比特幣社區(qū)將會面臨更大的分裂趴樱,因?yàn)檫@就猶如房子要換地基。隨后不久酪捡,core又收到一個壞消息叁征。2018年2月28日,閃電網(wǎng)絡(luò)在測試網(wǎng)絡(luò)上運(yùn)行時出現(xiàn)大量記憶體區(qū)段錯誤的新聞逛薇。Core 開發(fā)組成員 Peter Todd 稱:網(wǎng)絡(luò)未崩潰時捺疼,交易失敗率比崩潰時還高,很容易受到 DoS 攻擊永罚。
可以確定的是閃電網(wǎng)絡(luò)遠(yuǎn)未成熟啤呼,而比特幣的區(qū)塊包還是將繼續(xù)增長,如果它不能在隔離見證擴(kuò)容效果耗盡之前完成部署呢袱,擴(kuò)容大戰(zhàn)將再次上演官扣。
2018-03-24