banner
leaf

leaf

It is better to manage the army than to manage the people. And the enemy.

比特币的扩容与分叉

為什麼比特幣需要擴容、擴容的方案有哪些,以及為什麼會有分叉的出現。

比特幣每一個區塊大小是 1 兆,能容納 1000 條左右交易信息。

比特幣每一個區塊大小是 1 兆,大概能容納 1000 條左右交易信息。如果你上比特幣區塊鏈瀏覽器觀看的話,你就會查到,現在每個區塊大概都是 1M 左右,快達到區塊容量的上限。如果比特幣網絡的轉賬越來越多,很多交易就不會在交易發生後的第一個發生的區塊被打包和確認,可能要等好幾個區塊,甚至更久。在比特幣歷史上,曾經遭遇過幾次「粉塵攻擊」。所謂「粉塵攻擊」,就是有人製造出大量的小額轉賬,使得網絡中有大量的待確認交易,導致正常的比特幣轉賬不能被確認,確認時間被延遲,影響網絡正常運轉。所以在「粉塵攻擊」事件中,有交易者的交易等待了 2 天,甚至更久才被確認。雖然「粉塵攻擊」是極端的例子,但是看現在比特幣網絡的正常轉賬量已經遠遠超出了他們能夠承受的最大容量。每個區塊的大小都是 1M,所以擴大比特幣區塊容量,突破現有的 1 兆的大小限制,這個過程叫擴容。擴容,也被比特幣社群從 2014 年開始,就提上了議事日程。

我們知道,比特幣網絡是一個去中心化的網絡。在這個世界裡,沒有一個中心化的機構來運轉,凡事靠社區去協商,才能達成一致。在擴容這件事上,不同的團隊有不同的理念,所以推進的效率也會比較低。2015 年年底的時候,比特幣 Core 開發團隊和礦工在香港進行圓桌會議,達成了「香港共識」,不過這個共識很快流產了。在 2017 年紐約,比特幣社區進行重新協商,采用隔離見證 + 2 兆擴容的方式,再一次達成共識,得到了來自全球 21 個國家 56 家知名區塊鏈初創公司共同簽署和全網大約 83% 的算力支持。所以從 2017 年上半年開始,比特幣的系統開始進行升級和部署。

比特幣擴容的方案有很多,在歷史上也經歷了很多迭代。

總體來說,分為兩種方式。

一種是不碰比特幣本身的區塊,用閃電網絡去進行比特幣的結算,將大量的交易置於比特幣本身網絡之外;另外一種是直接擴大區塊的大小。這裡就要解釋一下什麼是閃電網絡?打個比方,我們幾個朋友一起玩牌,不會每一輪都結算,而是在結束之後進行清算,A 欠 B 10 元,B 欠 C 20 元,最後就是 A 給 C10 元,B 給 C10 元就可以了。閃電網絡也會先把小額交易進行記賬,最後進行結算。這樣比特幣網絡不會被大量小額的交易所占據。但是這個技術目前沒有發展成熟,並且閃電網絡需要在隔離見證技術之上才能進行運用。目前還沒有被大規模運用。所以,大家把目光又放到了比特幣的區塊大小擴容上。

關於比特幣本身大小的擴容,是現在在技術上相對來說比較成熟的方式。我給你介紹以下三個主要的方案。分別是 BIP141、UASF、SegWit2x。一聽這三個名詞你可能比較懵,別急我慢慢給你講。

BIP141 是比特幣 Core 團隊提出的隔離見證方案,那麼什麼是隔離見證呢?隔離見證是為了讓區塊承載更多的交易量而設計的,我們知道區塊上的信息分為交易信息和見證信息,交易信息就是區塊鏈記錄的一筆筆的轉賬,見證信息就是在每個節點在什麼時間驗證交易信息的可靠性的信息,中本聰在設計比特幣的時候,直接把這兩個信息放到了區塊裡面,所以一個區塊能承載的交易信息就沒多少。那麼如何隔離了這個見證信息從區塊裡拿出來,區塊只需要存儲它的交易信息的話,從這個角度也可以擴大了區塊能承載的交易信息。

BIP141 是當前公認的隔離見證激活方案。具體激活條件是:在 2017 年 11 月 15 日前的任意一個難度周期(約兩周)內,如果有 95% 的算力發出準備就緒信號的話,隔離見證將被激活。但是這個條件很難實現,所以有人提出其他激活方案,比如 UASF 和 SegWit2x,用這種方式幫助實現 BIP141,激活隔離見證。

UASF,意思是由用戶激活的軟分叉。UASF 采用一個叫 BIP148 的軟件來激活隔離驗證。在 8 月 1 日這天,比特幣 BIP148 軟件會拒絕不包含 bit1 信號的區塊。也就是說如果大多數礦工運行這個軟件,他們會拒絕那些少數沒有運行這個軟件的礦工挖出的區塊。因此,這些礦工會擁有最長的鏈,並在該最長鏈上激活 BIP141 的隔離見證條件。最終運行 BIP141 的節點會在鏈上看到超過 95% 的區塊包含 bit1,從而觸發隔離見證。這個方案已經實施,誕生了我們現在看到的新的區塊鏈資產比特幣現金。比特幣現金的區塊大小可以上升到 8M,可以容納的交易筆數是原來比特幣原鏈的大小的 8 倍左右。

SegWit2x 是由一些比特幣公司和 80% 算力以上的礦工在 Consensusn 那次大會上,簽署的紐約共識,協議,通過 BIP91 來激活隔離驗證。BIP91 做法是:當連續兩天內有 80% 的算力發出支持 BIP91 的信號的話,所有的 BIP91 節點將拒絕所有不含 BIP141 準備信號的區塊,因此,這些礦工會擁有最長的鏈,并在該最長鏈上激活隔離見證。在激活隔離見證之後,2017 年年底或者 2018 年年初,SegWit2x 將通過硬分叉把區塊大小上限從當前的 1MB 增加至 2MB,屆時也可能導致新的分叉。

剛才提到了硬分叉和軟分叉,那麼什麼是硬分叉,什麼是軟分叉呢?

硬分叉是當比特幣協議規則發生改變,如果發生舊節點拒絕接受由新節點創造的區塊的情況時,區塊鏈將分成 2 條獨立的鏈。礦工需要在 2 條區塊鏈中選擇一條進行挖礦。

軟分叉是當比特幣協議規則發生改變,舊的節點並不會意識到規則是不同的,它們將遵循改變後的規則,並且接受由新節點創造的區塊。因此軟分叉不會產生 2 條區塊鏈,而是在原區塊鏈上同時新、舊並存。類似於軟件升級後,當你保存了一份 Word 2013 文檔的同時,你仍然可以用 Word 2011 來打開原來的 Word 2013 文檔,這就是向前兼容。

對於普通人來說,如果比特幣真的分叉,最大的風險就是「重放攻擊」。

什麼是「重放攻擊」呢?這個事情在 2016 年 7 月以太坊進行硬分叉的過程中發生的事情,當時交易平台和用戶因為基本都是第一次遇到這樣的事情,經驗和準備都不足,因而受損失不少。舉個例子,如果比特幣分裂為一種或多種比特幣,我們姑且先把它叫比特幣 1 / 比特幣 2 / 比特幣 3 等,用戶賬戶內同時存在這 3 種對應數量的所有分裂的比特幣,每條鏈上的地址和私鑰生產算法相同,交易格式也完全相同,導致在其中一條鏈上的交易在另一條鏈上很可能是完全合法的。所以使用者在其中一條鏈上發起的交易,就可以到另一條鏈上去重新廣播,也可能得到確認。這就是「重放攻擊」。簡單來說,在你轉賬比特幣 1 的時候,你的比特幣 2 / 比特幣 3 也可能同時被轉走,如果你轉出的地址不是自己的,那些比特幣 2 / 比特幣 3 可能就再也拿不回來了。

對於用戶來說,要防止重放攻擊,其實也很簡單。你該怎麼做呢?

方法一:在分叉塵埃落定之前,不要轉賬比特幣。在分叉落定之後,可以將比特幣分別轉到屬於自己的兩個不同的地址,直到兩個資產徹底分離完成為止,之後再進行比特幣轉賬。這個方法可能需要消耗大量的時間和手續費。

方法二:將自己的比特幣放進靠譜的錢包或交易平台。這些有技術實力的平台會自發的運營去幫你處理好分叉過程中的可能會遇到的各種問題。如果將自己的比特幣存在僅支持分叉後部分比特幣的錢包裡,將可能面臨分叉後產生的其他部分比特幣無法使用的損失。

好了,總結一下,這節課我們講了比特幣的擴容以及分叉。為什麼比特幣需要擴容?因為比特幣的每個區塊在設計上只有 1 兆大小的限制,為了修改這個缺陷,就有了閃電網絡以及 3 種比特幣擴容方案。

我還向你講解了比特幣「分叉」的知識,「分叉」分為硬分叉和軟分叉:

硬分叉是當比特幣協議規則發生改變的時候,發生變化的舊節點拒絕接受新節點創造的區塊,區塊鏈會因此分成 2 條獨立的鏈;

軟分叉是指當比特幣協議規則發生改變的時候,舊的節點不會意識到規則不同,它們將遵循改變後的規則,並且接受由新節點創造的區塊。因此軟分叉不會產生 2 條區塊鏈,而是在原區塊鏈上同時新、舊並存。類似於軟件升級後,當你保存了一份 Word 2013 文檔的同時,你仍然可以用 Word 2011 來打開原來的 Word 2013 文檔,這就是向前兼容。

還有,我們還提到為了防止比特幣分叉帶來的「重放攻擊」的風險,你可以做兩件事:第一、在分叉塵埃落定之前,不要轉賬比特幣;第二、將比特幣放在一個你信賴的能幫你處理好分叉問題的錢包或交易平台裡。這兩點,請大家一定要記牢。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。