分叉有區別為普通的升級,普通的升級在升級前後是沒有影響協議共識的,也一般不需要社區共識或算力共識的參與。而分叉根據對協議的修改情況分為軟分叉和硬分叉。
現有的定義:
【閃電定義】硬分叉是指比特幣區塊格式或交易格式(這就是廣泛流傳的「共識」(應該是部分協議共識))發生改變時,未升級的節點拒絕驗證已經升級的節點生產出的區塊,不過已經升級的節點可以驗證未升級節點生產出的區塊,然後大家各自延續自己認為正確的鏈,所以分成兩條鏈。
A permanent divergence in the the block chain, commonly occurs when non-upgraded nodes can』t validate blocks created by upgraded nodes that follow newer consensus rules.
【閃電定義】軟分叉是指比特幣交易的數據結構(這就是被廣泛流傳的「共識」(應該是部分協議共識))發生改變時,未升級的節點可以驗證已經升級的節點生產出的區塊,而且已經升級的節點也可以驗證未升級的節點生產出的區塊。
A temporary fork in the block chain which commonly occurs when miners using non-upgraded nodes violate a new consensus rule their nodes don』t know about.
我覺得不能說哪個定義正確還是錯誤,具體的定義可以根據已經較大社區共識的兩者的區別來自己總結,不需要權威來指定。
硬分叉:沒有向前兼容性,之前的版本將不可再用,需要強制升級。
軟分叉:有較好的兼容性,之前版本至少部分功能可用,可不升級。
硬分叉:在區塊鏈層面會有分叉的兩條鏈,一條原舊鏈,一條分叉新鏈。
軟分叉:在區塊鏈層面沒有分叉的鏈,只是組成鏈的區塊,有新區塊和舊區塊。
硬分叉:需要在某個時間點全部同意分叉升級,不同意的將會進入原舊鏈。
軟分叉:相當長的時間里,可允許不進行升級,繼續使用原版本生成舊區塊,與新區塊並存
❷ 區塊鏈為什麼有分叉分叉會發生什麼情況
區塊鏈的分叉(fork)的形成原因可能有多種。
當兩個結點幾乎在同一個時間挖到了礦並同時發布區塊,此時就出現臨時性的的分叉(state fork),
本質上是對比特幣這個區塊鏈當前的狀態產生了意見分歧,
當人為的發起分叉攻擊(forking attack),也就是故意造成這類分叉(deliberate fork)還有一類分叉是,當比特幣的協議發生了改變的時候,軟體需要升級。而在分布式系統中不能保證所有節點同時升級軟體,假設存在部分節點未升級,會導致協議分叉(protocol fork)。對協議修改的內容的不同,又可以將分叉分為硬分叉(hard fork)和軟分叉(soft fork);
比特幣協議增加新協議,擴展新功能,未升級軟體的舊節點會不認可這些修改,會認為這些特性是非法的。這也就是對比特幣協議內容產生分歧,從而導致的分叉叫 硬分叉 。此時,就出現了新節點永遠沿著新節點產生的鏈挖礦,舊節點永遠沿著舊節點鏈挖礦,由於新節點算力足夠強,所以形成兩條永遠都在延伸且平行的鏈。只要這部分舊節點永遠不更新,則舊鏈將一直延續,可見這種分叉是持久性的。
出現hard fork後,便變成了兩條平行的鏈,也就造成了社區分裂。社區中有一部分人,會認為下面的鏈才是根正苗紅,各個鏈上的貨幣獨立。以太坊歷史上的一件大事就是硬分叉事件。以太坊稱為ETH,但目前看到的ETH已經不是最初的ETH了,以太坊在歷史上發生過硬分叉,另一個鏈稱為ETC。實際上,ETC才是以太坊設計原本的協議,而ETH是黑客攻擊ETH上一個智能合約THE DAO後,進行回滾的協議鏈(將黑客攻擊偷取的以太幣採用硬分叉方式回滾回到另一智能合約,然後退還給真正擁有者)。
分叉之初,由於兩個鏈分叉造成了互相影響,產生了很多麻煩。比如:在ETH鏈上有一筆轉賬B->C,有人便在ETC鏈上回放,將ETC鏈上的貨幣頁轉給了C(C收到兩筆錢)。後來,對兩條鏈各添加了一個chainID,將兩個鏈區分開,才使得這兩條鏈真正分開。
如果對BTC協議添加限制,使得原本合法交易在新交易中不合法,便會形成軟分叉。
當大多數節點已經更新完畢之後,舊節點認可新節點挖出的區塊,因此發布自己挖出的區塊,但新節點不認可舊結點挖出的區塊,便沿著上一個新節點發布的區塊繼續挖礦,當新節點擁有大部分算力的時候,新鏈會越來越長,從而舊節點挖出並發布的區塊一直被拋棄,無法獲得出塊獎勵,最終倒逼舊節點升級軟體,實現所有節點認可新協議並進行升級。可見,只要系統中擁有半數以上算力節點更新軟體,此類分叉不會出現永久性分叉。比特幣腳本中的P2SH就是通過軟分叉方法加進去的。
這一部分我並沒有查到太多的資料,但是在絕大多數共識協議之中我們都假設需要過半算力;
在理論上,如果掌握了50%以上的算力,就擁有了獲得記賬權的絕對優勢,可以更快地生成區塊,也擁有了篡改區塊鏈數據的權利。因此,當具有過半的算力,也就是51%都是誠實可靠的,能保證整一個區塊鏈在合法有序的進行運行。
但是為什麼選擇過半的算力,而不是過半的用戶?比特幣系統,任何人都可以加入,且創建賬戶及其簡單,只需要本地產生公私鑰對即可。只有轉賬(交易)時候,比特幣系統才能知道該賬戶的存在。這樣,黑客可以使用計算機專門生成大量公私鑰對,當其產生大量公私鑰對超過系統中一半數目,就可以獲得支配地位(女巫攻擊)。因此,比特幣系統中很巧妙的使用算力作為投票的依據。
❸ 區塊鏈中的軟分叉和硬分叉是什麼
根據分叉後的區塊鏈是否能兼容舊區塊鏈,分叉又分為「硬分叉」和「軟分叉」。軟分叉和硬分叉是什麼?
硬分叉,是指當比特幣代碼發生改變後,舊節點拒絕接受由新節點創造的區塊。不符合原規則的區塊將被忽略,礦工會按照原規則,在他們最後驗證的區塊之後創建新的區塊。
而軟分叉是指舊的節點並不會意識到比特幣代碼發生改變,並繼續接受由新節點創造的區塊。礦工們可能會在他們完全沒有理解,或者驗證過的區塊上進行工作。
軟分叉和硬分叉都"向後兼容",這樣才能保證新節點可以從頭驗證區塊鏈。向後兼容是指新軟體接受由舊軟體所產生的數據或者代碼,比如說Windows 10可以運行Windows XP的應用。而軟分叉還可以"向前兼容"。向前兼容是指舊軟體可以接受由新軟體所產生的數據以及代碼,比如你用Word 2013保存的文檔,假如仍然可以用Word 2011打開,就是一種「向前兼容」。
❹ 【區塊鏈知識】當我們遇到分叉問題時,該怎麼辦
遇到分叉問題,羨拿該聽誰的?
假想這樣一個場景,在區塊鏈中,一定會遇到這樣的情況,區塊甲和區塊乙同時把一條信息記錄下來,並且做好編碼和時間戳。
他們兩個區塊同時發布信息,說這個編碼為4495662的信息是我記賬的,它的報酬應該歸我!
然後,大家就有的認為報酬應該歸區塊甲,有的則認為歸區塊乙,而報酬只有一份,只能給一個區塊。這下好了,出現不同意見了,該怎麼辦?
更嚴重的是,有的區塊會認為這件事是區塊甲做的,也記下來,順著編碼繼續往後記賬;另外一些區塊則認為這件事是區塊乙做的,跟著在區塊乙後邊繼續記賬。
這樣事情就大條了!原本嚴謹的唯一的一條信息鏈,到區塊甲和區塊乙這里,硬生生給分開了,它們各自後邊分別跟著常常的鏈條。
這種情況持續下去,就導致每個人都無法辨別自己掌握的信息鏈,是否正確了!
為了解決這個問題,區塊鏈技術又出台了一個新的規則:每條記錄都要頂格寫,同時要保證激灶中心離田字格上邊緣要保持0.897 57毫米的位置上。
為了符合要求,每個人都得拿著尺子去量好位置,然後才能開始記錄。這樣記兄鉛搭錄每條信息時,增加了難度,延長了操作時間。
只要一個人做好了記錄,大喊一聲,我記錄好了!
其他人就停筆不再記錄這條信息,反而開始記錄這條信息是某某記錄的接著那個編碼繼續往下記錄。
遇到分叉問題,就是這樣解決的。
❺ 什麼是分叉幣
分叉幣,顧名思義,來源於區塊鏈中「分叉」的概念。早期對於比特幣的分叉,是針對比特幣的區塊擴容問題產生的妥協方案。
分叉意味著對比特幣的一次不完全升級,升級後,部分未升級的節點拒絕驗證已經升級的節點生產出的區塊,不過已經升級的節點可以驗證未升級節點生產出的區塊,從而分出了兩條鏈。
現在市場上山寨幣泛濫,實際上就是一些分叉幣。
典型的分叉幣操作是:通過宣布分叉幣,為每個用戶按1:1的比例贈送特殊的新「分叉幣」「糖果」。
在用戶普遍獲得分叉後的新幣之後,自然會產生交易需求,這時可以引導輿論,以龐大的用戶數量和交易需求倒逼交易所上幣。
而在交易所上幣之後,分叉幣持有者先用一定的資本拉高分叉幣,營造出追捧假象,再將自己「預挖」的分叉幣賣出套利。
但是玩家也可以認為某些分叉幣有價值,從而進行跟進,因此分叉幣交易所也是有價值的,現在還開展這類活動的還很多,比如bitfinx、幣升、幣安等。
❻ 區塊鏈鼻祖比特幣之8:分叉帶來的雙花支付、51%攻擊與解決辦法
分叉
前面講到了比特幣通過區塊鏈+工作量證明的獨特設計來解決了時間順序,但是不能保證在同一時刻有兩個節點算出了正確的解,雖然這種可能性很低很低。這就帶來了區塊的分叉。
雖然說幾乎同時有兩個節點計算出這一數學問題的可能性微乎其微,但是仍然存在這樣的可能性,所以分叉就以為著同一個區塊的後面可能會跟上兩個不同的區塊。
規則的打破一直要到下一個區塊被人解開。則會立即轉向最長的區塊,而那些短的區塊則會被拋棄。數學問題使得區塊很難被同時拆解。要連續發生多次更是困難。最終區塊鏈會穩定下來。也就是說所有人對最後幾個區塊順序達成共識。分叉意味著,譬如,若你的交易出現在較短的支鏈,它就會失去進入區塊鏈的位置。一般而言,只代表他會回到未確認交易池。然後被納入到下一個區塊。
比特幣網路如何解決分叉帶來的雙花支付
可惜,交易失去區塊位置的潛在可能,給了本來定序系統防範的重復支付攻擊機會。考慮下面的一個攻擊者A,其首先用自己的比特幣交換B節點的貨物,其立即又支付給自己。然後其通過努力的製造更長的鏈條來讓自己的支付替代掉B節點的支付,從而實現了雙重支付,B節點既得不到錢,還失去了貨物。
這時交易會退回到未確認池中,因為A節點已經利用參照同樣的input交易取而代之。節點就會認為Bob的交易無效。因為已使用掉。
你可能會猜測A節點會預先的計算出一支區塊鏈,然後抓住時機發布到網路。但是每個區塊的數學謎題阻擋了這個可能性。如前面所訴,解開區塊是猜測出一個隨機數的過程。一旦得出答案,解出的哈希值就會成為指紋一樣的區塊識別。只要區塊內容有一丁點變化,下一個區塊的參考值就會完全不同。此機制的結果就是無法在區塊鏈中置換區塊。在得到前一個區塊之前,下位區塊無法被解開。前一個區塊的指紋也是雜湊函數的引數之一。
同時,該工作量證明機制還解決了在集體投票表決時,誰是大多數的問題。如果決定大多數的方式是基於IP地址的,一IP地址一票,那麼如果有人擁有分配大量IP地址的權力,則該機制就被破壞了。而工作量證明機制的本質則是一CPU一票。「大多數」的決定表達為最長的鏈,因為最長的鏈包含了最大的工作量。如果大多數的CPU為誠實的節點控制,那麼誠實的鏈條將以最快的速度延長,並超越其他的競爭鏈條。如果想要對業已出現的區塊進行修改,攻擊者必須重新完成該區塊的工作量外加該區塊之後所有區塊的工作量,並最終趕上和超越誠實節點的工作量。我們將證明,設想一個較慢的攻擊者試圖趕上隨後的區塊,那麼其成功概率將呈指數化遞減。另一個問題是,硬體的運算速度在高速增長,而節點參與網路的程度則會有所起伏。為了解決這個問題,工作量證明的難度(the proof-of-work difficulty)將採用移動平均目標的方法來確定,即令難度指向令每小時生成區塊的速度為某一個預定的平均數。如果區塊生成的速度過快,那麼難度就會提高。
如果有一台超級電腦,能夠在區塊解題中獲勝?
即便是一台超級電腦,或者時幾百上千台電腦也很難贏得解一個區塊的勝利,因為競爭對手不是任一台電腦,而是整個比特幣網路。你可以用買彩票來比擬。操作千百台電腦,如同買了千百張彩票一樣。
51%攻擊是指的什麼
根據前面的例子,我們知道,要想有50%的概率領先其他人解題得到勝利,就需要掌握全網50%以上的算力。要連續領先他人解出區塊,掌握的運算能力還需要高得多。所以區塊鏈中的交易是受到數學競賽所保護。惡意用戶必須和整個網路較量。區塊連接建立的結果,使得在支鏈越前方的交易越安全。惡意的用戶必須在更長的時間贏過全網路,來達成重復支付,替換前面的區塊鏈。所以,系統只有支端末尾易受到重復支付攻擊。這也是為什麼系統建議多等幾個區塊,才能確認收款成功。
個人博客:https://dreamerjonson.com/
❼ 區塊鏈為什麼會分叉
區塊鏈分叉其實是區塊鏈系統升級導致的,每次升級可能會伴隨著區塊鏈的共識規則改變,這會導致整個網路中升級了系統的節點與未升級系統的節點在不同的規則下運行,於是分叉就產生了。例如我們使用的App,當有新版本出現,有的人升級了,有的人沒有升級,兩個版本同時可以用。
❽ 比特幣為什麼要進行分叉
在區塊鏈和比特幣等數字貨幣的討論中,我們經常聽到 「分叉」 這個詞,那麼到底什麼是分叉呢?分叉又會有什麼影響呢?
區塊鏈
在說分叉之前,先普及一點區塊鏈的小知識,這樣更容易幫助我們理解分叉是什麼(如果你對區塊鏈一點概念也沒有,歡迎翻閱我以前的文章,都是些通俗的話語幫你了解什麼是區塊鏈)。
區塊鏈,顧名思義,就是由區塊組成的鏈條,當然這種鏈條只是一個形象比喻,說白了就是數據區塊有序地連接起來。在比特幣中,區塊中存放的是比特幣的交易記錄,區塊的大小和交易記錄所佔用的空間決定了一個區塊能存放多少交易記錄。這些交易記錄被打包到區塊中,然後區塊一個個相連就構成了區塊鏈。
為什麼要分叉
我們知道,比特幣軟體像其他軟體一樣,需要定期更新和修改,以便讓他更好。所以新的版本就會出現,但是由於不是所有人都即使下載了新版本,所以有個礦工就運行了舊版本,有的則運行了新版本,那麼一旦新舊版本不兼容的話,區塊鏈就會分叉。因為因版本的區塊和舊版本的區塊可能存在差異,所以他們不能被連接到同一個區塊鏈上,所以就會出現兩條鏈,甚至多條鏈,這就是分叉。
軟分叉
軟分叉指的是,當新共識規則發布後,沒有升級的節點會因為不知道新共識規則下,而生產不合法的區塊,就會產生臨時性分叉。這種分叉會隨著節點的升級而逐漸修復。
硬分叉
硬分叉指的是,區塊鏈發生永久性分歧,在新共識規則發布後,部分沒有升級的節點無法驗證已經升級的節點生產的區塊,通常硬叉就會發生。所以,在數字貨幣領域,硬分叉往往導致新的幣種出現。例如以太坊的硬分叉就導致了 ETH的出現。
原文:什麼是分叉?什麼是比特幣分叉?
❾ 以太坊硬分叉是什麼
硬分叉是一種不支持向後兼容的軟體升級方式。通常,這些情況發生在節點以與舊節點的規則沖突的方式添加新規則時。新節點只能與運行新版本的軟體節點進行交互。結果,區塊鏈發生了分裂,生產出兩個單獨的網路:一個按照舊規則運行,一個則按照新規則運行。節點在升級後變為藍色。之前的黃色節點拒絕藍色節點的連入,而藍色的節點之間可以相互連接。因此,現在有兩個網路並行運行。他們將繼續產生區塊和交易,但不再在同一區塊鏈上工作。在區塊鏈網路達到分叉區塊之前,所有節點都具有相同的區塊鏈(並且歷史記錄仍然存在),但是這之後它們將具有不同的區塊和交易。由於存在相同的歷史記錄,因此如果您在分叉之前持有代幣,那麼您將在這兩個網路上同時獲得代幣。假設在600,000區塊高度發生分叉時,您手裡有5 BTC。您可以選擇在區塊高度到達600,001時,在原始區塊鏈上將這5個代幣花費掉,但是在新產生的區塊鏈上並不會記錄這筆在600,001區塊高度的消費。假設加密方式沒有發生變化,那麼在新的分叉網路上您的私鑰中仍然會存在這5個代幣。 以太坊硬分叉的一個案例是2016 年 6 月 17 日,the DAO 合約上出現漏洞並被攻擊者乘虛而入,導致約三百六十萬 ETH 被盜取。根據該合約的設計,這些資金需要被凍結 28 天才能成功被轉移。如果沒有採取任何措施的話,黑客會擁有 ETH 總額的 4.4%。為解決這個問題,備受爭議的 EIP 779 被提出來,其目的在於修改攻擊者的鎖定合約。如此一來,ETH 持有者便可以從 the DAO 合約上提出其 ETH。7 月 20 日,以太坊大部分成員支持實行硬分叉,然而少數社區成員持反對意見,並決定實行硬分叉,分叉後的原鏈改名為以太坊經典 (Ethereum Classic)。
❿ 到底啥是區塊鏈分叉
分叉,是區塊鏈世界中一個神奇的名詞。區塊鏈網路從此一分為二,不同共識的人們從此分道揚鑣。這究竟是一次動盪的分裂,還是一次新的共識的形成?
區塊鏈的分叉,可以說是區塊鏈網路中獨有的一種版本升級方式,就像我們生活中使用的互聯網軟體一樣,使用了一段時間以後,自然而然就需要進行優化升級,從而去解決一些用戶的使用問題。區塊鏈也是這樣,只不過它的升級比較特別,升級的時候會由參與的礦工共同來決定,甚至還能產生多種版本,不像互聯網一樣一家獨裁、沒有選擇的餘地。
它的原理是這樣的,由於區塊鏈是一個由數據塊組成的鏈式結構。所以,當他要升級的時候,實際上會從某一個數據塊開始,連到兩個不同的數據塊上,從而分成了兩條鏈;就好像樹枝一樣,大家共用同一個樹干,共享會分開前的數據,但是又有很多條樹枝屬於多條鏈,而這個過程就叫做分叉。
之前我們也說了,區塊鏈的升級是由礦工們一起來決定,既然參與的人多了,就會有不同的意見,當大家能達成共識的時候,分叉出來的兩條鏈相當於一個是老的版本,一個是新的版本,兩者兼容;老鏈上的礦工升級後,逐漸向新鏈過渡,最終大家升級完成只剩新鏈,這叫做軟分叉。具體來說軟分叉屬於系統內的短暫現象,並不會分叉出一個新的區塊鏈。區塊鏈系統升級,一部分節點並哪怕沒有及時升級,也仍舊可以工作。比特幣軟分叉之後不會像硬分叉一樣產生兩條鏈,而是還會保持在一條鏈上,軟分叉會進行一些升級,但是不會影響整個系統的穩定性和有效性,舊節點會兼容新節點,只是新節點不兼容舊節點而已,二者依然可以共存在一條鏈上。
當礦工們不能達成共識的時候,大家雖然共用之前的數據,但是形成了兩條新的鏈,就好比物種進化一樣,一部分猴子進化成了人類,另一部分進化成了猩猩,兩種物種都發生了改變,互不兼容,這叫做硬分叉。也就是說區塊鏈發生永久性分歧,在新共識規則發布後,部分沒有升級的節點無法驗證已經升級的節點生產的區塊,通常硬分叉就會發生。代碼出現一個硬分叉,會改變演算法的難度級別。
實質意義上的分叉之所以產生,是因為項目在動態發展過程中原社區內部理念產生了不可調和的分歧。區塊鏈背後的社區作為去中心化組織,主張非暴力自由人的自由聯合,這意味著在向未知的將來邁進的過程中,當遇到的新問題超出了原有既定 游戲 規則之時,分歧一旦產生將很難達成一致,這是由區塊鏈基因里去中心化的屬性決定的。
區塊鏈技術的發展還處於很初期的狀態,分叉對於區塊鏈來說,就相當於一個技術迭代的過程,隨著人們不斷發現區塊鏈技術現有的限制,只有不斷升級和擴展這項技術,才能讓區塊鏈技術走向成熟。當然,這種分叉跟區塊鏈不可篡改的特性正在背道而馳,但沒有天生完美的技術,區塊鏈也不例外,技術的發展如果在發生錯誤時都不可控,那這種技術就無法做到普世,人們對它的信任度也無法提升。且分叉的結果是由社區成員投票決定的,某種程度上來說依舊遵守著去中心化的原則。
人們對區塊鏈分叉各執己見,但在區塊鏈發展的 歷史 進程里,分叉無疑讓區塊鏈變得更有故事性和可能性了。總的來說,分叉這種升級方式雖然麻煩很多。但是,他卻給了每個人更多選擇的權利。也許,區塊鏈就在這樣的求同存異之中孕更多的可能性。