當前位置:首頁 » 挖礦知識 » 分叉挖礦

分叉挖礦

發布時間: 2023-04-27 14:19:45

『壹』 ​ 區塊鏈入門必備108知識點

區塊鏈入門必備108知識點

(歡迎同頻者交流)

1、什麼是區塊鏈

把多筆交易的信息以及表明該區塊的信息打包放在一起,經驗證後的這個包就是區塊。

每個區塊里保存了上一個區塊的 hash值,使區塊之間產生關系,也就是說的鏈了。合起來就叫區塊鏈。

2.什麼是比特幣

比特幣概念是2009年 中本聰提出的,總量是2100萬個。比特幣鏈大約每10分鍾產生一個區塊,這個區塊是礦工挖了10分鍾挖出來的。作為給礦工獎勵,一定數量的比特幣會發給礦工們,但是這個一定數量是每四年減半一次。現在是12.5個。照這樣下去2040年全部的比特幣問世。

3.什麼是 以太坊

以太坊與比特幣最大的區別是有了智能合約。使得開發者在上邊可以開發,運行各種應用。

4.分布式賬本

它是一種在網路成員之間共享,復制和同步的資料庫。直白說,在區塊鏈上的所有用戶都有記賬功能,而且內容一致,這樣保證了數據不可篡改性。

5.什麼是准匿名性

相信大家都有錢包,發送交易都用的錢包地址(一串字元串)這就是准匿名。

6.什麼是開放透明性/可追溯

區塊鏈存儲了從 歷史 到現在的所有數據,任何人都可以查看,而且還可以查看到 歷史 上的任何數據。

7.什麼是不可篡改

歷史 數據和當前交易的數據不可篡改。數據被存在鏈上的區塊上,有一個hash值,如果修改該區塊信息,那麼它的 hash值也變了,它後邊的所有區塊的hash值也必須修改,使成為新的鏈。同時主鏈還在進行交易產生區塊。修改後鏈也必須一直和主鏈同步產生區塊,保證鏈的長度一樣。代價太大了,只為修改一條數據。

8.什麼是抗ddos攻擊

ddos:黑客通過控制許多人的電腦或者手機,讓他們同時訪問一個網站,由於伺服器的寬頻是有限的,大量流量的湧入可能會使得網站可能無法正常工作,從而遭受損失。但區塊鏈是分布式的,不存在一個中心伺服器,一個節點出現故障,其他節點不受影響。理論上是超過51%的節點遭受攻擊,會出現問題。

9.主鏈的定義

以比特幣為例,某個時間點一個區塊讓2個礦工同時挖出來,然後接下來最先產生6個區塊的鏈就是主鏈

10.單鏈/多鏈

單鏈指的是一條鏈上處理所有事物的數據結構。多鏈結構,其核心本質是公有鏈+N個子鏈構成。只有一條,子鏈理論上可以有無數條,每一個子鏈都可以運行一個或多個DAPP系統

11.公有鏈/聯盟鏈/私有鏈

公有鏈:每個人都可以參與到區塊鏈

聯盟鏈:只允許聯盟成員參與記賬和查詢

私有鏈:寫入和查看的許可權只掌握在一個組織手裡。

12.共識層數據層等

區塊鏈整體結構有六個:數據層,網路層,共識層,激勵層,合約層,應用層。數據層:記錄數據的一層,屬於底層技術; 網路層:構建區塊鏈網路的一種架構,它決定了用戶與用戶之間通過何種方式組織起來。共識層:提供了一套規則,讓大家接收和存儲的信息達成一致。激勵層:設計激勵政策,鼓勵用戶參與到區塊鏈生態中;合約層:一般指「智能合約」,它是一套可以自動執行,根據自己需求編寫的合約體系。應用層:區塊鏈上的應用程序,與手機的app類似前分布式存儲研發中心

13.時間戳

時間戳是指從1970年1月1日0時0分0秒0...到現在的當前時間的總秒數,或者總納秒數等等很大的數字。每個區塊生成時都有一個時間戳,表明生成區塊的時間。

14.區塊/區塊頭/區塊體

區塊是區塊鏈的基本單元,區塊頭和區塊體是區塊鏈的組成部分。區塊頭裡麵包含的信息有上一個區塊的hash,本區塊的hash,時間戳等等。區塊體就是區塊里的詳細數據。

15.Merkle樹

Merkle樹,也叫二叉樹,是存儲數據的一種數據結構,最底層是所有區塊包含的原始數據,上一層是每個區塊的hash值,這一層的hash兩兩組合產生新的hash值,形成新的一層,然後一層層往上,-直到產生一個hash值。這樣的結構可以用於快速比較大量的數據,不需要下載全部的數據就可以快速的查找你想要的最底層的 歷史 數據。

16什麼是擴容

比特幣的一個區塊大小大約是1M左右,可以保存4000筆交易記錄。擴容就是想把區塊變大,能保存更多的數據。

17.什麼是鏈

每個區塊都會保存上一個區塊的 hash,使區塊之間產生關系,這個關系就是鏈。通過這個鏈把區塊交易記錄以及狀態變化等的數據存儲起來。

18.區塊高度

這個不是距離上說的高度,它指是該區塊與所在鏈上第一個區塊之間相差的區塊總個數。這個高度說明了就是第幾個區塊,只是標識作用。

19.分叉

同一時間內產生了兩個區塊(區塊里的交易信息是一樣的,只是區塊的hash值不一樣),之後在這兩個區塊上分叉出來兩條鏈,這兩條鏈接下來誰先生成6個區塊,誰就是主鏈,另外的一條鏈丟棄。

20. 幽靈協議

算力高的礦池很容易比算力低的礦機產生區塊速度快,導致區塊鏈上大部分區塊由這些算力高的礦池產生的。而算力低的礦機產生的區塊因為慢,沒有存儲到鏈上,這些區塊將會作廢。

幽靈協議使得本來應該作廢的區塊,也可以短暫的留在鏈上,而且也可以作為

工作量證明的一部分。這樣一來,小算力

的礦工,對主鏈的貢獻比重就增大了,大型礦池就無法獨家壟斷對新區塊的確認。

21.孤塊

之前說過分叉,孤塊就是同一時間產生的區塊,有一個形成了鏈,另一個後邊沒有形成鏈。那麼這個沒形成鏈的塊就叫

孤塊。

22.叔塊

上邊說的孤塊,通過幽靈協議,使它成為工作量證明的一部分,那它就不會被丟棄,會保存在主鏈上。這個區塊就是下

23重放攻擊

就是黑客把已經發送給伺服器的消息,重新又發了一遍,有時候這樣可以騙取伺服器的多次響應。

24.有向無環圖

也叫數據集合DAG(有向非循環圖),DAG是一種理想的多鏈數據結構。現在說的區塊鏈大都是單鏈,也就是一個區塊連一個區塊,DAG是多個區塊相連。好處是可以同時生成好幾個區塊,於是網路可以同時處理大量交易,吞吐量肯定就上升了。但是缺點很多,目前屬於研究階段。

25.什麼是挖礦

挖礦過程就是對以上這六個欄位進行一系列的轉換、連接和哈希運算,並隨著不斷一個一個試要尋找的隨機數,最後成功找到一個隨機數滿足條件:經過哈希運算後的值,比預設難度值的 哈希值小,那麼,就挖礦成功了,節點可以向鄰近節點進行廣播該區塊,鄰近節點收到該區塊對以上六個欄位進行同樣的運算,驗證合規,再向其它結點轉播,其它結點也用同樣的演算法進行驗證,如果全網有51%的結點都驗證成功,這個區塊就算真正地「挖礦」成功了,每個結點都把這個區塊加在上一個區塊的後面,並把區塊中與自己記錄相同的列表刪除,再次復生上述過程。另外要說的是,不管挖礦成不成功每個節點都預先把獎勵的比特幣50個、所有交易的手續費(總輸入-總輸出)記在交易列表的第一項了(這是「挖礦」最根本的目的,也是保證區塊鏈能長期穩定運行的根本原因),輸出地址就是本結點的地址,但如果挖礦不成功,這筆交易就作廢了,沒有任何獎勵。而且這筆叫作「生產交易」的交易不參與「挖礦」計算。

26.礦機/礦場

礦機就是各種配置的計算機,算力是他們的最大差距。礦機集中在一個地的地方就是礦場

27.礦池

就是礦工們聯合起來一起組成一個團隊,這個團隊下的計算機群就是礦池。挖礦獎勵,是根據自己的算力貢獻度分發。

28.挖礦難度和算力

挖礦難度是為了保證產生區塊的間隔時間穩定在某個時間短內,如比特幣10分鍾出

塊1個。算力就是礦機的配置。

29.驗證

當區塊鏈里的驗證是對交易合法性的一種確認,交易消息在節點之間傳播時每個節點都會驗證一次這筆交易是否合法。比如驗證交易的語法是否正確,交易的金額是否大於0,輸入的交易金額是否合理,等等。驗證通過後打包,交給礦工挖礦。

30.交易廣播

就是該節點給其他節點通過網路發送信息。

31.礦工費

區塊鏈要像永動機一樣不停的工作,需要礦工一直維護著這個系統。所以要給礦工們好處費,才能持久。

32.交易確認

當交易發生時,記錄該筆交易的區塊將進行第一次確認,並在該區塊之後的鏈上的每一個區塊進行再次確認:當確認數達到6個及以上時,通常認為這筆交易比較安全並難以篡改。

33.雙重交易

就是我有10塊錢,我用這10塊錢買了一包煙,然後瞬間操作用這還沒到付的10塊錢又買了杯咖啡。所以驗證交易的時候,要確認這10塊錢是否已花費。

34.UTXO未花費的交易輸出

它是一個包含交易數據和執行代碼的數據結構,可以理解為存在但尚未消費的數字貨幣

35.每秒交易數量TPS

也就是吞吐量,tps指系統每秒能處理的交易數量。

36.錢包

與支付寶類似,用來存儲數字貨幣的,用區塊鏈技術更加安全。

37.冷錢包/熱錢包

冷錢包就是離線錢包,原理是儲存在本地,運用二維碼通信讓私鑰永不觸網。熱錢包就是在線錢包,原理是將私鑰加密後存儲在伺服器上,當需要使用時再從伺服器上下載下來,並在瀏覽器端進行解密。

38.軟體錢包/ 硬體錢包

軟體錢包是一種計算機程序。一般而言,軟體錢包是與區塊鏈交互的程序,可以讓用戶接收、存儲和發送數字貨幣,可以存儲多個密鑰。硬體錢包是專門處理數字貨幣的智能設備。

39.空投

項目方把數字貨幣發送給各個用戶錢包地址。

40.映射

映射跟區塊鏈貨幣的發行相關,是鏈與鏈之間的映射。比如有一些區塊鏈公司,前期沒有完成鏈的開發,它就依託於以太坊發行自己的貨幣,前期貨幣的發行、交易等都在以太坊上進行操作。隨著公司的發展,公司自己的鏈開發完成了公司想要把之前在以太坊上的信息全部對應到自己的鏈上,這個過程就是映射。

41.倉位

指投資人實有投資和實際投資資金的比例

42.全倉

全部資金買入比特幣

43.減倉

把部分比特幣賣出,但不全部賣出

44.重倉

資金和比特幣相比,比特幣份額佔多

45.輕倉

資金和比特幣相比,資金份額佔多

46.空倉

把手裡所持比特幣全部賣出,全部轉為資金

47.止盈

獲得一定收益後,將所持比特幣賣出以保住盈利

48.止損

虧損到一定程度後,將所持比特幣賣出以防止虧損進一步擴大

49.牛市

價格持續上升,前景樂觀

50.熊市

價格持續下跌,前景黯淡

51.多頭(做多)

買方,認為幣價未來會上漲,買入幣,待幣價上漲後,高價賣出獲利了結

52.空頭(做空)

賣方,認為幣價未來會下跌,將手中持有的幣(或向交易平台借幣)賣出,待幣價下跌後,低價買入獲利了結

53.建倉

買入比特幣等虛擬貨幣

54.補倉

分批買入比特幣等虛擬貨幣,如:先買入1BTC,之後再買入1BTC

55.全倉

將所有資金一次性全部買入某一種虛擬幣

56.反彈

幣價下跌時,因下跌過快而價格回升調整

57.盤整(橫盤)

價格波動幅度較小,幣價穩定

58.陰跌

幣價緩慢下滑

59.跳水(瀑布)

幣價快速下跌,幅度很大

60.割肉

買入比特幣後,幣價下跌,為避免虧損擴大而賠本賣出比特幣。或借幣做空後,幣價上漲,賠本買入比特幣

61.套牢

預期幣價上漲,不料買入後幣價卻下跌;或預期幣價下跌,不料賣出後,幣價卻上漲

62.解套

買入比特幣後幣價下跌造成暫時的賬面損失,但之後幣價回升,扭虧為盈

63.踏空

因看淡後市賣出比特幣後,幣價卻一路上漲,未能及時買入,因此未能賺得利潤

64.超買

幣價持續上升到一定高度,買方力量基本用盡,幣價即將下跌

65.超賣

幣價持續下跌到一定低點,賣方力量基本用盡,幣價即將回升

66.誘多

幣價盤整已久,下跌可能性較大,空頭大多已賣出比特幣,突然空方將幣價拉高,誘使多方以為幣價將會上漲,紛紛買入,結果空方打壓幣價,使多方套牢

67.誘空

多頭買入比特幣後,故意打壓幣價,使空頭以為幣價將會下跌,紛紛拋出,結果誤入多頭的陷阱


68.什麼是NFT

NFT全稱「Non-Fungible Tokens」 即非同質化代幣,簡單來說,即區塊鏈上一種無法分割的版權證明,主要作用數字資產確權,轉移,與數字貨幣區別在於,它獨一無二,不可分割,本質上,是一種獨特的數字資產。

69.什麼是元宇宙

元宇宙是一個虛擬時空間的集合, 由一系列的增強現實(AR), 虛擬現實(VR) 和互聯網(Internet)所組成,其中數字貨幣承載著這個世界中價值轉移的功能。

70.什麼是DeFi

DeFi,全稱為Decentralized Finance,即「去中心化金融」或者「分布式金融」。「去中心化金融」,與傳統中心化金融相對,指建立在開放的去中心化網路中的各類金融領域的應用,目標是建立一個多層面的金融系統,以區塊鏈技術和密碼貨幣為基礎,重新創造並完善已有的金融體系

71.誰是中本聰?

72.比特幣和Q幣不一樣

比特幣是一種去中心化的數字資產,沒有發行主體。Q幣是由騰訊公司發行的電子貨幣,類似於電子積分,其實不是貨幣。Q幣需要有中心化的發行機構,Q幣因為騰訊公司的信用背書,才能被認可和使用。使用范圍也局限在騰訊的 游戲 和服務中,Q幣的價值完全基於人們對騰訊公司的信任。

比特幣不通過中心化機構發行,但卻能夠得到全球的廣泛認可,是因為比特幣可以自證其信,比特幣的發行和流通由全網礦工共同記賬,不需要中心機構也能確保任何人都無法竄改賬本。

73.礦機是什麼?

以比特幣為例,比特幣礦機就是通過運行大量計算爭奪記賬權從而獲得新生比特幣獎勵的專業設備,一般由挖礦晶元、散熱片和風扇組成,只執行單一的計算程序,耗電量較大。挖礦實際是礦工之間比拼算力,擁有較多算力的礦工挖到比特幣的概率更大。隨著全網算力上漲,用傳統的設備(CPU、GPU)挖到比特的難度越來越大,人們開發出專門用來挖礦的晶元。晶元是礦機最核心的零件。晶元運轉的過程會產生大量的熱,為了散熱降溫,比特幣礦機一般配有散熱片和風扇。用戶在電腦上下載比特幣挖礦軟體,用該軟體分配好每台礦機的任務,就可以開始挖礦了。每種幣的演算法不同,所需要的礦機也各不相同。

74.量化交易是什麼?

量化交易,有時候也稱自動化交易,是指以先進的數學模型替代人為的主觀判斷,極大地減少了投資者情緒波動的影響,避免在市場極度狂熱或悲觀的情況下做出非理性的投資決策。量化交易有很多種,包括跨平台搬磚、趨勢交易、對沖等。跨平台搬磚是指,當不同目標平台價差達到一定金額,在價高的平台賣出,在價低的平台買入。

75.區塊鏈資產場外交易

場外交易也叫OTC交易。用戶需要自己尋找交易對手,不通過撮合成交,成交價格由交易雙方協商確定,交易雙方可以藉助當面協商或者電話通訊等方式充分溝通。

76.時間戳是什麼?

區塊鏈通過時間戳保證每個區塊依次順序相連。時間戳使區塊鏈上每一筆數據都具有時間標記。簡單來說,時間戳證明了區塊鏈上什麼時候發生了什麼事情,且任何人無法篡改。

77.區塊鏈分叉是什麼?

在中心化系統中升級軟體十分簡單,在應用商店點擊「升級」即可。但是在區塊鏈等去中心化系統中,「升級」並不是那麼簡單,甚至可能一言不合造成區塊鏈分叉。簡單說,分叉是指區塊鏈在進行「升級」時發生了意見分歧,從而導致區塊鏈分叉。因為沒有中心化機構,比特幣等數字資產每次代碼升級都需要獲得比特幣社區的一致認可,如果比特幣社區無法達成一致,區塊鏈很可能形成分叉。

78.軟分叉和硬分叉

硬分叉,是指當比特幣代碼發生改變後,舊節點拒絕接受由新節點創造的區塊。不符合原規則的區塊將被忽略,礦工會按照原規則,在他們最後驗證的區塊之後創建新的區塊。 軟分叉是指舊的節點並不會意識到比特幣代碼發生改變,並繼續接受由新節點創造的區塊。礦工們可能會在他們完全沒有理解,或者驗證過的區塊上進行工作。軟分叉和硬分叉都"向後兼容",這樣才能保證新節點可以從頭驗證區塊鏈。向後兼容是指新軟體接受由舊軟體所產生的數據或者代碼,比如說Windows 10可以運行Windows XP的應用。而軟分叉還可以"向前兼容"。

79.區塊鏈項目分類和應用

從目前主流的區塊鏈項目來看,區塊鏈項目主要為四類:第一類:幣類;第二類:平台類;第三類:應用類;第四類:資產代幣化。

80.對標美元的USDT

USDT是Tether公司推出的對標美元(USD)的代幣Tether USD。1USDT=1美元,用戶可以隨時使用USDT與USD進行1:1兌換。Tether公司執行1:1准備金保證制度,即每個USDT代幣,都會有1美元的准備金保障,對USDT價格的恆定形成支撐。某個數字資產單價是多少USDT,也就相當於是它的單價是多少美元(USD)。

81.山寨幣和競爭幣

山寨幣是指以比特幣代碼為模板,對其底層技術區塊鏈進行了一些修改的區塊鏈資產,其中有技術性創新或改進的又稱為競爭幣。因為比特幣代碼開源,導致比特幣的抄襲成本很低,甚至只需復制比特幣的代碼,修改一些參數,便可以生成一條全新的區塊鏈。

82.三大交易所

幣安

Okex

火幣

83.行情軟體

Mytoken

非小號

84.資訊網站

巴比特

金色 財經

幣世界快訊

85.區塊鏈瀏覽器

BTC

ETH

BCH

LTC

ETC

86.錢包

Imtoken

比特派

MetaMask(小狐狸 )

87. 去中心化交易所

uniswap


88. NFT交易所

Opensea

Super Rare

89. 梯子

自備,購買靠譜梯子

90. 平台幣

平台發行的數字貨幣,用於抵扣手續費,交易等

91. 牛市、熊市

牛市:上漲行情

熊市:下跌行情

92. 區塊鏈1.0

基於分布式賬本的貨幣交易體系,代表為比特幣

93. 區塊鏈2.0

以太坊(智能合約)為代表的合同區塊鏈技術為2.0

94. 區塊鏈3.0

智能化物聯網時代,超出金融領域,為各種行業提供去中心化解決方案

95. 智能合約

智能合約,Smart Contract,是一種旨在以信息化方式傳播、驗證或執行合同的計算機協議,簡單說,提前定好電子合約,一旦雙方確認,合同自動執行。

96. 什麼是通證?

通證經濟就是以Token為唯一參考標準的經濟體系,也就是說相當於通行證,你擁有Token ,就擁有權益,就擁有發言權。


97. 大數據 和 區塊鏈 的 區別

大數據是生產資料,AI是新的生產力,區塊鏈是新的生產關系。大數據指無法在一定時間范圍內用常規軟體工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產。簡單理解為,大數據就是長期積累的海量數據,短期無法獲取。區塊鏈可以作為大數據的獲取方式,但無法取代大數據。大數據只是作為在區塊鏈運行的介質,沒有絕對的技術性能,所以兩者不能混淆。(生產關系簡單理解就是勞動交換和消費關系,核心在於生產力,生產力核心在於生產工具)

98. 什麼是ICO?

ICO,Initial Coin Offering, 首次公開代幣發行,就是區塊鏈數字貨幣行業中的眾籌。是2017最為熱門的話題和投資趨勢,國家9.4出台監管方案。說到ICO,人們會想到IPO,兩者有著本質不同。

99. 數字貨幣五個特徵

第一個特徵:去中心化

第二個特徵:有開源代碼

第三個特徵:有獨立的電子錢包

第四個特徵:恆量發行的

第五個特徵:可以全球流通

100.什麼叫去中心化?

沒有發行方,不屬於任何機構或國家,由互聯網網路專家設計、開發並存放於互聯網上,公開發行的幣種。

101. 什麼叫衡量(稀缺性)?

發行總量一旦設定,永久固定,不能更改,不能隨意超發,可接受全球互聯網監督。因挖掘和開釆難度雖時間數量變化,時間越長,開采難度越大,所開釆的幣就越少,因此具有稀缺性。

102. 什麼叫開源代碼?

用字母數字組成的存放在互聯網上,任何人都可以查出其設計的源代碼,所有人都可以參與,可以挖掘,全球公開化。

103. 什麼叫匿名交易? 專有錢包私密?

每個人都可以在網上注冊下載錢包,無需實名認證,完全由加密數字代碼組成,全球即時點對點發送、交易,無需藉助銀行和任何機構,非本人授權任何人都無法追蹤、查詢。


104.什麼是合約交易?

合約交易是指買賣雙方對約定未來某個時間按指定價格接收一定數量的某種資產的協議進行交易。合約交易的買賣對象是由交易所統一制定的標准化合約,交易所規定了其商品種類,交易時間,數量等標准化信息。合約代表了買賣雙方所擁有的權利和義務。


105.數字貨幣產業鏈

晶元廠家 礦機廠商 礦機代理 挖礦 出礦到交易所 散戶炒幣


106.北 楓 是誰?

北 楓 :數字貨幣價值投資者

投資風格:穩健

建立社區 :北斗 社區 (高質量價投社區 )


107.北斗 投資策略

長短結合,價投為主,不碰合約,不玩短線

合理布局,科學操作,穩健保守,掙周期錢


108.北 楓 ?

歡迎幣友,共謀發展

『貳』 比特幣挖礦什麼意思

比特幣挖礦,是一種利用電腦硬體計算出比特幣的位置並獲取的過程。

挖礦是在比特幣系統中進行記錄數據的一個激勵過程,在比特幣系統個人用戶通過利用CPU或者GPU進行哈希運算,當計算出特定的哈希值之後便擁有了打包區塊的權利。

而為了獎勵這個用戶進行打包區塊,系統就給予一定的比特幣作為報酬。因為這個過程很像現實生活中「挖礦」所以大多數人就把這個過程叫做挖礦。除了比特幣外,其他的電子虛擬貨幣也可以通過挖礦獎勵獲取,如以太坊、門羅幣等等。

(2)分叉挖礦擴展閱讀:

挖礦風險:

1,貨幣安全

比特幣的支取需要多達數百位的密鑰,而多數人會將這一長串的數字記錄於電腦上,但經常發生的如硬碟損壞等問題,會讓密鑰永久丟失,這也導致了比特幣的丟失。

2,系統風險

系統風險在比特幣這個裡面非常常見,最常見的當屬於分叉。分叉會導致幣價下跌,挖礦收益銳減。不過很多情況表明,分叉反而讓礦工收益,分叉出來的競爭幣也需要礦工的算力來完成鑄幣和交易的過程,為了爭取更多的礦工,競爭幣會提供更多的區塊獎勵及手續費來吸引礦工。風險反而成就了礦工。

『叄』 比特幣分叉往事補遺

互聯網是有記憶的。

最近比特幣屢創新高,華爾街機構紛紛入場囤幣,連馬斯克都忍不住公開喊單,得到了主流媒體和金融機構的認可,大家都對比特幣系統的安全性沒有任何質疑。


不過,很多人可能想像不到,就在三年前,比特幣還面臨過誕生以來最大的一次危機——差點被 BCH 集團奪權篡位,甚至連「比特幣」這個名字都差點不保。


比特幣分叉都是上一個牛市的陳年舊事了,本來不想多說,但是最近又有一些無聊的人,抹黑中傷幣信,我們不說話,讓一些不明真相的朋友還真以為幣信十惡不赦,成了反派的代名詞,還是簡單說一說當年的幣信為保護比特幣網路做的一些事情吧。


這些事情都已經過去好多年,這些年來一直沒對外提,也不求什麼名利,只求大家知曉真相,去偽存真,同時也在茶餘飯後,多一些談資。


BCH 分叉黨為什麼仇視幣信?


很多人覺得當年「比特幣分叉」這件事並沒什麼大不了的,畢竟這種現象現在在加密數字貨幣社區很常見,可能一個程序員用不了幾天就能成功將一個幣種分叉。


但是在當年,分叉是一件非常嚴重的事情,牽扯到方方面面的人和事,牽扯到諸多信仰和利益,簡直和「佛道之爭」不遑多讓,簡直已經達到你死我活,兵戎相見的地步。


這並不誇張說辭,而是事實。


現實中很多關系非常好的朋友,合作夥伴,因為比特幣分叉這件事而反目成仇,老死不相往來。


很多人無法理解,為什麼 BCH 分叉集團對比特幣支持者、對幣信恨之入骨?天天懟天懟地各種造謠?而且有時候為了讓自己的謠言看上去邏輯完備,往往不惜花大量時間去搜集各種資料,然後移花接木,張冠李戴,讓眾多不明群眾看了覺得「資料詳實」,大呼過癮。


原因就在於,幣信斷了 BCH 分叉集團的財路。


正所謂「斷人財路,如殺人父母」,幣信在瓦解 BCH 集團分叉s行動的過程中,做了許多工作,甚至在關鍵時期守護了比特幣兩周時間,成功瓦解了BCH(之前叫 BCC ) 篡權奪位的陰謀。


不得不說,BCH 集團真的是知行合一,他們也有信仰,他們真的相信 BCH 肯定會成功,能夠打敗比特幣,所以他們把手頭的比特幣基本上都換成了 BCH ,要是被他們篡權成功,其回報之豐厚絕對難以想像。


結果這一切都被幣信在關鍵時刻給毀了,你說他們恨不恨?


幣信和比特大陸的恩怨


有關比特幣分叉的文章有很多,我這里就不再多說,感興趣的朋友看一下虎撲的文章《比特幣分叉往事》或者搜索其他文章了解。


這里主要說說在分叉大戰整個過程中,幣信扮演了一個什麼樣的角色,因為這個事情遭受了怎樣的損失。


可能很多朋友在 2018 年的時候,看到過比特大陸因專利的事情狀告幣信礦業公司的新聞,其中的被告還有深圳比特微(神馬礦機)和新特能源股份有限公司(礦場方)。


當時很多人看到這個新聞其實挺震驚的,因為幣信星空和比特大陸吳忌寒兩人的關系其實一向都非常好,私底下經常一起約飯。


他們怎麼突然就對簿公堂了?到底發生了什麼事情?


在那個官司中,涉及到的專利叫做串聯供電技術。


說起串聯供電技術,就不得不提到一個技術宅男——瓦西里。


瓦西里早年是俄羅斯的 Bitfury 公司(2013 年就已經開始做比特幣礦機公司)的工程師。從 Bitfury 出來之後,2014 年,瓦西里被一個名叫 Yuri 的俄羅斯人忽悠到了中國,因為 Yuri 跟他說他聯繫到了中國的烤貓,能夠拿到他們的晶元做礦機,可以發大財。


那個時候,烤貓公司剛剛宣布,他們不再自己做礦機,而是直接轉型成為晶元提供商,歡迎大家采購晶元。

Yuri 是個典型的商人,由於當時烤貓最新晶元礦機方案不成熟,在嘗試幾次做礦機方案不成功之後,他轉而向烤貓兜售他的「串聯供電」技術。


這項技術早就存在,但是瓦西里受其啟發,第一次成果將其用在礦機主板上。


有了這項技術,礦機可以不用昂貴的電源控制晶元,直接對挖礦晶元供電,這樣不但可以節省大量成本,還可以不受電源晶元貨源的制約。(當時比特大陸將市場上的電源晶元一掃而空,不但沒貨還抬升了價格)


這項技術說起來簡單,實現也簡單,但研發卻非常困難,因為沒有電源晶元控制,電流無法穩定輸出,很容易造成電流均衡而燒毀晶元。


烤貓對這項技術非常感興趣,於是和 Yuri 談了很多次,但是 Yuri 的條件太苛刻,後來烤貓得知這項技術的實際擁有者並不是 Yuri 而是瓦西里,於是直接找到瓦西里,購買了他的技術,並且還將瓦西里招到了公司當硬體開發工程師。


後來,楊作興從 RockMiner 離開,加入了烤貓礦機( ASICMiner )研發團隊,和瓦西里成為同事,一起研發礦機和晶元。


2015 年,烤貓突然人間蒸發,烤貓公司也原地解散,所有技術封存。後來道楊作興在比特大陸兼職了一段時間,順便將串聯電源技術帶到了比特大陸。


到了 2016 年 ,楊作興有了創業的想法,首先是找吳忌寒聊,得到了吳忌寒的單方面的支持,然後吳讓他去找詹聊一下,卻遭到了詹克團的當面否決,甚至詹還當面將楊作興的商業計劃書直接用碎紙機碎成碎片。


於是,楊作興創辦了神馬礦機,從此和比特大陸打擂台。


自然,神馬礦機也順理成章地用上了串聯電源技術。


值得說一下的是,楊作興創業之前曾多次找到星空聊創業的事情,在詹之後,楊再次找到星空,確認楊下決心要做礦機晶元後,星空聯合其他幾位朋友一起投了,成為了神馬礦機的大股東之一。


星空投資神馬礦機的邏輯很簡單——由於烤貓失蹤,烤貓礦機徹底退出 歷史 舞台,當時比特大陸的螞蟻礦機一家獨大,基本處於壟斷地位,這對比特幣網路並不好,很容易出大問題。(事實證明這個判斷是非常正確的)


當時一起投資神馬礦機的,還有魚池的神魚和王純,大家的想法都非常一致,不能讓比特大陸再這樣搞下去。


要知道,為了能夠成功分叉比特幣,比特大陸很早就開始布局,他們在那段時間,將大量礦機優先賣給支持分叉的人,支持比特幣的人反而很難拿到貨。


並且,大區塊的支持者甚至只需要支付 10% 的貨款,這相當於是給他們做了一個五倍杠桿,只需要支付一份算力的錢,就能獲得五份算力。


很多人因此而發家致富,因此也對比特大陸更加忠心耿耿,在支持分叉的岐途上一路走到黑。


幸運地是,神馬礦機研發順利,並且迅速成長成為能夠和比特大陸一較高下的礦機廠商。


幣信礦業當時是比特大陸的超級客戶,為了支持神馬礦機的發展,也采購了大量的神馬礦機。


在分叉大戰期間,當 BCH 集團意識到是幣信在暗中保護比特幣網路的時候,他們採用了圍魏救趙的方式,將神馬公司和幣信礦業公司,以侵犯專利為由,一起告上了法庭。


雖然最終這個官司比特大陸輸了,但是他們卻達到了預期目的——礦場場地方為了避免風險,要求幣信的礦機限時從礦場中搬離,幣信算力因此暫時消失,這場較量才告一段落。


經此一戰,幣信損失慘重。


一方面,幣信用自有算力去阻止 BCH 算力暴擊(後文有解釋),每天就有將近 100 個比特幣的損失(持續了一個難度周期,即 14 日)。


另外一方面,因為礦場被迫搬離,這其中又耽誤了很長時間無法挖礦,中間也有不小的損耗,幣信也遭受了巨大虧損。


不過,這個時候,BCH 集團針對比特幣精心策劃地採用的緊急難度調整演算法(EDA)已經失去了最佳作用時間,他們原本想用這個方式來偷襲比特幣網路的陰謀也徹底破產。


如果當時沒有幣信算力的狙擊,BCH 真的有可能已經成功篡位,不但算力超過比特幣,可能連比特幣這個名字都被其搶走,比特幣可能成長到今天的規模和地位。


因為這件事情,星空和吳忌寒這兩個原來的好兄弟,也因此反目成仇,斷了往來。幣信從此也成為了 BCH 利益相關者的肉中刺,眼中釘,欲處之而後快。


幣信為什麼不支持 BCH ?


眾所周知,其實無論是幣信也好,還是魚池也好,當年和比特大陸的關系其實都不錯,包括香港共識和紐約共識大會,大家都坐在一起談,一起討論。


目的當然是共贏,希望比特幣發展得更好。


但是,這一切在 2017 年之後事情開始有了變化,吳忌寒逐漸有了要分叉的想法,並且他在 2017 年 8 月將這個想法付諸實踐。


在這個過程中,BCH 陣營的做法一直相當具有攻擊性,一副我就要乾死你的架勢。其實分叉就分叉吧,各自好好做自己的事情就好,但是 BCH 從一開始就打算好了,要踩比特幣上位。


其實說來很諷刺,原來的比特幣佈道者,卻搖身一變成為了比特幣最堅定的反對力量,攻訐比特幣也最賣力。

他們說「BCH 才是真正的比特幣」,號召大家把比特幣賣了買 BCH。不知道多少人信了他們的謊言,將自己幸苦囤的比特幣換成了 BCH,因此而損失慘重,最終不得不徹底離開了這個行業。請問,這種行為和詐騙有什麼區別?


他們說比特幣區塊小,無法處理太多交易,鏈上非常堵。結果大家發現比特幣沒他們說的那麼堵,於是他們就發起「粉塵攻擊」,短時間內發送大量的小額垃圾交易,造成比特幣網路擁堵的假象。然後他們鼓吹大區塊,造謠說比特幣最終會因擁堵而消亡。(事實上,比特幣至今還活得很好,並且越來越健壯。)


記得當年殺毒軟體是如何作惡的嗎?為了賣出他們的軟體,有些無良公司會自己炮製病毒,等用戶中毒之後,再去兜售產品。他們的行為簡直如出一轍。


當時澳本聰站出來支持分叉,於是他們與其一拍即合,請來了澳本聰為 BCH 站台,寫文章,開發布會,一頓騷操作猛如虎,風光得不可一世。


當時他們萬萬沒想到,出來混總是要還的,澳本聰這個詐騙犯可不是易與之輩。僅僅是三個月之後,澳本聰就反手給了 BCH 致命 一刀,掀起了差點將 BCH 徹底毀滅的分叉大戰。


沒錯,BCH 分叉比特幣,澳本聰又來分叉 BCH,另外分出個 BSV,真是一出好戲!


幣信一直都是比特幣的信徒,或許 BCH 的初衷是好的,但是在後續的推進過程中,幣信自然非常不認可他們所採取的各種作惡手段。


也許這些手段在政治斗爭中非常常見,摸黑陷害競爭對手都是常用伎倆,但這是比特幣社區,寄託了無數人的期望和信仰,最初的信仰者就是一小撮理想主義者,變成這個樣子,肯定是大家所不願看到的。


並且,BCH 背後主要推手是比特大陸,無論是開發人員,還是社區中的意見領袖,大部分都是比特大陸資助的,BCH 儼然就是一個公司幣,過於中心化,想要取比特幣而代之,顯然是不合適的。


並不是說公司幣不行,例如 BNB 這樣的平台幣就做得非常好,但是如果這個公司幣想要干翻比特幣自己上位,那就有點定位不清了。


總之,BCH 集團的很多行為都透露出他們的極其不靠譜,要是將比特幣的未來寄希望在這樣一群人身上,那比特幣遲早玩完,這是所有比特幣社區的人不願看到的。


於是,在關鍵時刻,幣信決定出手干預。


幣信是如何保護比特幣網路的?


不得不承認,BCH 為了贏得這場分叉之戰,的確做了大量的工作和准備,在很久之前就開始聘請社區內的一些意見領袖開始造勢,不停地寫文章,有些文章寫得還挺有深度,看上去有理有據,邏輯完備。(後來澳本聰也採用了同樣的套路,忽悠了一大批死忠粉)


除了輿論戰,在技術和未來願景方面,BCH 集團也畫了很多大餅,看上去讓人神往,由於大區塊的特性,的確有很多比特幣無法實現的功能,這讓很多人對其充滿了期待。


如果這些還只是常規操作,那麼有一點不得不讓人驚艷,那就是—— BCH 的緊急難度調整機制(EDA)。

因為 BCH 使用和比特幣同樣的演算法,按正常的思路,BCH 要想分叉成功,並且持續保持出塊,就必須擁有龐大的算力支撐,因為分叉的時候,比特幣網路的難度已經非常大了,小算力根本爆不出塊。


所以,他們想出了一個緊急難度調整機制:如果當前區塊的前6個區塊出塊時間大於12小時,則難度自動下調20%,如果當前區塊的 MTP 時間和從當前塊往前數第6個塊的 MTP 時間相差大於12個小時,就應急降低20%難度。


簡單來說,就是如果一定時間內不出塊,就會自動下調20%難度,再不出塊就繼續下調 20%,直到出塊為止。這樣就算只有很小的算力,也能保證能夠出塊。


這個機制乍一看像是防守機制,純粹是為了自保,為了自己能夠生存下去而已,但是各位別被其表象所迷惑了,這實際上是一個極具有攻擊性的機制,因為難度只有下調,沒有上調。


設計這套機制的人,深諳人性之道,他們懂得,礦工其實是趨利的,只要哪裡有錢賺,就會用腳投票,直接把算力切到哪裡。


當 BCH 的難度降低了,擁有同樣的算力,那礦工就能夠挖到更多的幣,只要所得到的利潤大於比特幣,那麼礦工的算力就會被吸引過來。


這樣,就算 BCH 的價格比比特幣低,只要難度夠低,礦工就能賺更多錢,算力就會過來。


而 BCH 的算力和比特幣的算力是互斥的,挖 BCH 就不能挖 BTC,是一種此消彼長的關系,一旦比特幣算力都遷移到 BCH 網路,再配合拉漲幣價,在當時的環境下,還真有可能會被 BCH 篡位成功。


要知道,當時很多中立方都表示過,哪個網路的算力大就支持哪個幣是真正的比特幣。


不得不承認,緊急難度調整機制的設計的確非常天才,所以,這種機制也被人稱為針對比特幣的「算力暴擊」。


BCH 集團醞釀多時,花費了大量的人力物力籌備分叉,他們准備在分叉之後,立刻對比特幣展開「算力暴擊」,即分叉完成之後,就把自己的算力從 BCH 網路撤出,讓難度大幅下降,同時大幅度拉漲幣價,這樣就可以吸引大部分的礦工算力過來,比特幣網路的算力就會暴降,讓比特幣網路因擁堵不出塊而無法運轉,最終一舉奠定勝局。


這個計劃近乎完美。


這簡直就是針對比特幣的陽謀,大家都知道怎麼回事,但是就是沒辦法去破解,因為當時 BCH 集團控制了一半以上的比特幣算力,只要吸引 10%左右的算力過來,比特幣網路就可能運轉不了了。


當時除了 BCH 集團控制的算力和礦池,就只有三個礦池佔比比較大,分別是魚池魚池、國池(比特幣中國礦池)、和幣信礦池。


礦池就算想要支持比特幣,那也得礦工答應,礦池是無法控制用戶的算力的,不然礦工肯定會用腳投票直接走人。


所以,BCH 集團當時覺得勝券在握了,估計他們連慶祝酒會都已經准備好了。


但是,讓他們萬萬沒有想到的是,等分叉完畢,BCH 出了幾個塊,當他們將自有算力從 BCH 網路撤出,靜靜等待不出塊而難度自動下降之時,意外卻出現了——有神秘算力突然接入了 BCH 網路,爆塊繼續。


由於有持續爆塊,BCH 的緊急難度調整機制就無法生效,因為這樣難度一直降不下來(出塊間隔時間小於 12 小時)。


並且,為了防止神秘算力針對 BCH 網路發動 51%攻擊,他們又不得不很尷尬地重新將自己的算力切回來,持續挖著。


這些神秘算力隱藏了 Coinbase 和地址,一時間所有人都搞不清其來路。


突然出現的神秘算力打亂了「算力暴擊計劃」的節奏,本來等難度降低後,他們准備了大量的資金要配合拉盤,一時間拉盤計劃也無法繼續推進,生生卡住了。


這種情形,就彷彿一個刺客,針對刺殺目標發動了致命一擊,然後突然出現了一股神秘力量,將這致命一擊給擋住了,並且持續守護著目標,導致刺客後續的一系列攻擊都無法實施。


BCH集團非常費解:這股神秘力量到底從哪裡來的?


前面說過,除了 BCH 集團自己控制的算力,另外擁有比較大的算力的,就只剩下魚池、國池和幣信礦池這三方。


魚池和國池都是散戶的算力,他們根本無法動用,只有幣信礦池基本都是自己的算力,也就是說只有幣信有這個條件做這件事。


答案呼之欲出:幣信!


是的,這股神秘算力就是幣信的自有算力。


幣信在 BCH 集團准備針對比特幣發動第一次也是最強的一次算力暴擊的時候,出手了。


其他人沒辦法做這件事情,只有幣信有這個條件,只有幣信能做,那就由幣信來做!


為了比特幣的未來,舍我其誰?


要知道,當時難度沒降下來,礦工挖 BCH 肯定是不劃算的,幣信礦業頂著每天幾十甚至上百比特幣的巨額虧損,硬生生守護了比特幣一個難度周期!(即兩周時間)


BCH 集團也很快反應過來,知道這肯定是幣信乾的好事,但是沒辦法,在技術上他們是無法拒絕幣信的算力的,只能乾瞪眼。



通過這個方式,他們終於將幣信算力趕出了 BCH 網路,這才得以對比特幣實施算力暴擊。


幣信礦場剛停機,他們就迫不及待開始拉盤了,BCH 開始大漲,但那個時候已經他們無力回天了,因為最佳狙擊時機已過,他們已經失去了「天時」,效果大打折扣。


盡管後面 BCH 針對比特幣多次算力暴擊,導致比特幣網路算力經常不穩定,但勝負已定,已經無關緊要,不影響大局。


經此一役,幣信損失慘重,不但損失了十幾天的比特幣挖礦收益,礦場也不得不搬離,損失的比特幣在現在看來,簡直是個天文數字。


但是,這一切都是值得的,幣信為守護了比特幣貢獻了自己的力量,幫比特幣擋住了致命一擊,做了比特幣信仰者該做的事情。


雖然幣信因為這件事幾乎將以前所有挖礦賺到的利潤都一次性虧了出去,但長期來看,幣信肯是受益的。


後記


這些往事封存已久,很多人其實並不清楚其中的細節,也不知道幣信當年做的事情,這其實也沒什麼,幣信一直都活得很好。


但是這么多年來,幣信一直被一些別有用心者抹黑造謠,實在心累,想想還是寫點文字,將事實公布,免得無辜吃瓜群眾被其誤導。


分叉風波已經過去多年,比特幣依然還是那個比特幣,比特幣社區也比以前更加健壯,這是我們這些比特幣信仰者最大的幸福。


Long Bitcoin, Short the world!

#歐易OKEx# #比特幣[超話]# #數字貨幣#

『肆』 區塊鏈為什麼有分叉分叉會發生什麼情況

    區塊鏈的分叉(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%都是誠實可靠的,能保證整一個區塊鏈在合法有序的進行運行。

    但是為什麼選擇過半的算力,而不是過半的用戶?比特幣系統,任何人都可以加入,且創建賬戶及其簡單,只需要本地產生公私鑰對即可。只有轉賬(交易)時候,比特幣系統才能知道該賬戶的存在。這樣,黑客可以使用計算機專門生成大量公私鑰對,當其產生大量公私鑰對超過系統中一半數目,就可以獲得支配地位(女巫攻擊)。因此,比特幣系統中很巧妙的使用算力作為投票的依據。

『伍』 最長區塊鏈才是正確的區塊鏈

什麼是最長鏈?為什麼是正確的區塊鏈?
比特幣白皮書規定,節點永遠認為最長鏈是正確的區塊鏈,並將持續在它上面延長。所有礦工都在最長鏈上挖礦,有利於區塊鏈賬本的唯一性。如果給你轉賬的比特幣交易不記錄在最長鏈上,你將有可能面臨財產損失。
怎樣算是「最長的區塊鏈」呢?因為全世界的礦工同時在挖礦,有可能同時有2個礦工算出了正確的答案,那麼區塊鏈就會形成分叉,剩下的礦工有可能在其中任意一條分叉上繼續挖礦,延長區塊鏈。
所以我們通常要求在比特幣轉賬被打包之後,還需要經歷6個區塊的確認,確保礦工不會再回到另一條分叉上挖礦時,才算真正的轉賬成功。

『陸』 詳解比特幣挖礦原理

可以將區塊鏈看作一本記錄所有交易的公開總帳簿(列表),比特幣網路中的每個參與者都把它看作一本所有權的權威記錄。

比特幣沒有中心機構,幾乎所有的完整節點都有一份公共總帳的備份,這份總帳可以被視為認證過的記錄。

至今為止,在主幹區塊鏈上,沒有發生一起成功的攻擊,一次都沒有。

通過創造出新區塊,比特幣以一個確定的但不斷減慢的速率被鑄造出來。大約每十分鍾產生一個新區塊,每一個新區塊都伴隨著一定數量從無到有的全新比特幣。每開采210,000個塊,大約耗時4年,貨幣發行速率降低50%。

在2016年的某個時刻,在第420,000個區塊被「挖掘」出來之後降低到12.5比特幣/區塊。在第13,230,000個區塊(大概在2137年被挖出)之前,新幣的發行速度會以指數形式進行64次「二等分」。到那時每區塊發行比特幣數量變為比特幣的最小貨幣單位——1聰。最終,在經過1,344萬個區塊之後,所有的共20,999,999.9769億聰比特幣將全部發行完畢。換句話說, 到2140年左右,會存在接近2,100萬比特幣。在那之後,新的區塊不再包含比特幣獎勵,礦工的收益全部來自交易費。

在收到交易後,每一個節點都會在全網廣播前對這些交易進行校驗,並以接收時的相應順序,為有效的新交易建立一個池(交易池)。

每一個節點在校驗每一筆交易時,都需要對照一個長長的標准列表:

交易的語法和數據結構必須正確。

輸入與輸出列表都不能為空。

交易的位元組大小是小於MAX_BLOCK_SIZE的。

每一個輸出值,以及總量,必須在規定值的范圍內 (小於2,100萬個幣,大於0)。

沒有哈希等於0,N等於-1的輸入(coinbase交易不應當被中繼)。

nLockTime是小於或等於INT_MAX的。

交易的位元組大小是大於或等於100的。

交易中的簽名數量應小於簽名操作數量上限。

解鎖腳本(Sig)只能夠將數字壓入棧中,並且鎖定腳本(Pubkey)必須要符合isStandard的格式 (該格式將會拒絕非標准交易)。

池中或位於主分支區塊中的一個匹配交易必須是存在的。

對於每一個輸入,如果引用的輸出存在於池中任何的交易,該交易將被拒絕。

對於每一個輸入,在主分支和交易池中尋找引用的輸出交易。如果輸出交易缺少任何一個輸入,該交易將成為一個孤立的交易。如果與其匹配的交易還沒有出現在池中,那麼將被加入到孤立交易池中。

對於每一個輸入,如果引用的輸出交易是一個coinbase輸出,該輸入必須至少獲得COINBASE_MATURITY (100)個確認。

對於每一個輸入,引用的輸出是必須存在的,並且沒有被花費。

使用引用的輸出交易獲得輸入值,並檢查每一個輸入值和總值是否在規定值的范圍內 (小於2100萬個幣,大於0)。

如果輸入值的總和小於輸出值的總和,交易將被中止。

如果交易費用太低以至於無法進入一個空的區塊,交易將被拒絕。

每一個輸入的解鎖腳本必須依據相應輸出的鎖定腳本來驗證。

以下挖礦節點取名為 A挖礦節點

挖礦節點時刻監聽著傳播到比特幣網路的新區塊。而這些新加入的區塊對挖礦節點有著特殊的意義。礦工間的競爭以新區塊的傳播而結束,如同宣布誰是最後的贏家。對於礦工們來說,獲得一個新區塊意味著某個參與者贏了,而他們則輸了這場競爭。然而,一輪競爭的結束也代表著下一輪競爭的開始。

驗證交易後,比特幣節點會將這些交易添加到自己的內存池中。內存池也稱作交易池,用來暫存尚未被加入到區塊的交易記錄。

A節點需要為內存池中的每筆交易分配一個優先順序,並選擇較高優先順序的交易記錄來構建候選區塊。

一個交易想要成為「較高優先順序」,需滿足的條件:優先值大於57,600,000,這個值的生成依賴於3個參數:一個比特幣(即1億聰),年齡為一天(144個區塊),交易的大小為250個位元組:

High Priority > 100,000,000 satoshis * 144 blocks / 250 bytes = 57,600,000

區塊中用來存儲交易的前50K位元組是保留給較高優先順序交易的。 節點在填充這50K位元組的時候,會優先考慮這些最高優先順序的交易,不管它們是否包含了礦工費。這種機制使得高優先順序交易即便是零礦工費,也可以優先被處理。

然後,A挖礦節點會選出那些包含最小礦工費的交易,並按照「每千位元組礦工費」進行排序,優先選擇礦工費高的交易來填充剩下的區塊。

如區塊中仍有剩餘空間,A挖礦節點可以選擇那些不含礦工費的交易。有些礦工會竭盡全力將那些不含礦工費的交易整合到區塊中,而其他礦工也許會選擇忽略這些交易。

在區塊被填滿後,內存池中的剩餘交易會成為下一個區塊的候選交易。因為這些交易還留在內存池中,所以隨著新的區塊被加到鏈上,這些交易輸入時所引用UTXO的深度(即交易「塊齡」)也會隨著變大。由於交易的優先值取決於它交易輸入的「塊齡」,所以這個交易的優先值也就隨之增長了。最後,一個零礦工費交易的優先值就有可能會滿足高優先順序的門檻,被免費地打包進區塊。

UTXO(Unspent Transaction Output) : 每筆交易都有若干交易輸入,也就是資金來源,也都有若干筆交易輸出,也就是資金去向。一般來說,每一筆交易都要花費(spend)一筆輸入,產生一筆輸出,而其所產生的輸出,就是「未花費過的交易輸出」,也就是 UTXO。

塊齡:UTXO的「塊齡」是自該UTXO被記錄到區塊鏈為止所經歷過的區塊數,即這個UTXO在區塊鏈中的深度。

區塊中的第一筆交易是筆特殊交易,稱為創幣交易或者coinbase交易。這個交易是由挖礦節點構造並用來獎勵礦工們所做的貢獻的。假設此時一個區塊的獎勵是25比特幣,A挖礦的節點會創建「向A的地址支付25.1個比特幣(包含礦工費0.1個比特幣)」這樣一個交易,把生成交易的獎勵發送到自己的錢包。A挖出區塊獲得的獎勵金額是coinbase獎勵(25個全新的比特幣)和區塊中全部交易礦工費的總和。

A節點已經構建了一個候選區塊,那麼就輪到A的礦機對這個新區塊進行「挖掘」,求解工作量證明演算法以使這個區塊有效。比特幣挖礦過程使用的是SHA256哈希函數。

用最簡單的術語來說, 挖礦節點不斷重復進行嘗試,直到它找到的隨機調整數使得產生的哈希值低於某個特定的目標。 哈希函數的結果無法提前得知,也沒有能得到一個特定哈希值的模式。舉個例子,你一個人在屋裡打檯球,白球從A點到達B點,但是一個人推門進來看到白球在B點,卻無論如何是不知道如何從A到B的。哈希函數的這個特性意味著:得到哈希值的唯一方法是不斷的嘗試,每次隨機修改輸入,直到出現適當的哈希值。

需要以下參數

• block的版本 version

• 上一個block的hash值: prev_hash

• 需要寫入的交易記錄的hash樹的值: merkle_root

• 更新時間: ntime

• 當前難度: nbits

挖礦的過程就是找到x使得

SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + x )) < TARGET

上式的x的范圍是0~2^32, TARGET可以根據當前難度求出的。

簡單打個比方,想像人們不斷扔一對色子以得到小於一個特定點數的游戲。第一局,目標是12。只要你不扔出兩個6,你就會贏。然後下一局目標為11。玩家只能扔10或更小的點數才能贏,不過也很簡單。假如幾局之後目標降低為了5。現在有一半機率以上扔出來的色子加起來點數會超過5,因此無效。隨著目標越來越小,要想贏的話,扔色子的次數會指數級的上升。最終當目標為2時(最小可能點數),只有一個人平均扔36次或2%扔的次數中,他才能贏。

如前所述,目標決定了難度,進而影響求解工作量證明演算法所需要的時間。那麼問題來了:為什麼這個難度值是可調整的?由誰來調整?如何調整?

比特幣的區塊平均每10分鍾生成一個。這就是比特幣的心跳,是貨幣發行速率和交易達成速度的基礎。不僅是在短期內,而是在幾十年內它都必須要保持恆定。在此期間,計算機性能將飛速提升。此外,參與挖礦的人和計算機也會不斷變化。為了能讓新區塊的保持10分鍾一個的產生速率,挖礦的難度必須根據這些變化進行調整。事實上,難度是一個動態的參數,會定期調整以達到每10分鍾一個新區塊的目標。簡單地說,難度被設定在,無論挖礦能力如何,新區塊產生速率都保持在10分鍾一個。

那麼,在一個完全去中心化的網路中,這樣的調整是如何做到的呢?難度的調整是在每個完整節點中獨立自動發生的。每2,016個區塊(2周產生的區塊)中的所有節點都會調整難度。難度的調整公式是由最新2,016個區塊的花費時長與20,160分鍾(兩周,即這些區塊以10分鍾一個速率所期望花費的時長)比較得出的。難度是根據實際時長與期望時長的比值進行相應調整的(或變難或變易)。簡單來說,如果網路發現區塊產生速率比10分鍾要快時會增加難度。如果發現比10分鍾慢時則降低難度。

為了防止難度的變化過快,每個周期的調整幅度必須小於一個因子(值為4)。如果要調整的幅度大於4倍,則按4倍調整。由於在下一個2,016區塊的周期不平衡的情況會繼續存在,所以進一步的難度調整會在下一周期進行。因此平衡哈希計算能力和難度的巨大差異有可能需要花費幾個2,016區塊周期才會完成。

舉個例子,當前A節點在挖277,316個區塊,A挖礦節點一旦完成計算,立刻將這個區塊發給它的所有相鄰節點。這些節點在接收並驗證這個新區塊後,也會繼續傳播此區塊。當這個新區塊在網路中擴散時,每個節點都會將它作為第277,316個區塊(父區塊為277,315)加到自身節點的區塊鏈副本中。當挖礦節點收到並驗證了這個新區塊後,它們會放棄之前對構建這個相同高度區塊的計算,並立即開始計算區塊鏈中下一個區塊的工作。

比特幣共識機制的第三步是通過網路中的每個節點獨立校驗每個新區塊。當新區塊在網路中傳播時,每一個節點在將它轉發到其節點之前,會進行一系列的測試去驗證它。這確保了只有有效的區塊會在網路中傳播。

每一個節點對每一個新區塊的獨立校驗,確保了礦工無法欺詐。在前面的章節中,我們看到了礦工們如何去記錄一筆交易,以獲得在此區塊中創造的新比特幣和交易費。為什麼礦工不為他們自己記錄一筆交易去獲得數以千計的比特幣?這是因為每一個節點根據相同的規則對區塊進行校驗。一個無效的coinbase交易將使整個區塊無效,這將導致該區塊被拒絕,因此,該交易就不會成為總賬的一部分。

比特幣去中心化的共識機制的最後一步是將區塊集合至有最大工作量證明的鏈中。一旦一個節點驗證了一個新的區塊,它將嘗試將新的區塊連接到到現存的區塊鏈,將它們組裝起來。

節點維護三種區塊:

· 第一種是連接到主鏈上的,

· 第二種是從主鏈上產生分支的(備用鏈),

· 第三種是在已知鏈中沒有找到已知父區塊的。

有時候,新區塊所延長的區塊鏈並不是主鏈,這一點我們將在下面「 區塊鏈分叉」中看到。

如果節點收到了一個有效的區塊,而在現有的區塊鏈中卻未找到它的父區塊,那麼這個區塊被認為是「孤塊」。孤塊會被保存在孤塊池中,直到它們的父區塊被節點收到。一旦收到了父區塊並且將其連接到現有區塊鏈上,節點就會將孤塊從孤塊池中取出,並且連接到它的父區塊,讓它作為區塊鏈的一部分。當兩個區塊在很短的時間間隔內被挖出來,節點有可能會以相反的順序接收到它們,這個時候孤塊現象就會出現。

選擇了最大難度的區塊鏈後,所有的節點最終在全網范圍內達成共識。隨著更多的工作量證明被添加到鏈中,鏈的暫時性差異最終會得到解決。挖礦節點通過「投票」來選擇它們想要延長的區塊鏈,當它們挖出一個新塊並且延長了一個鏈,新塊本身就代表它們的投票。

因為區塊鏈是去中心化的數據結構,所以不同副本之間不能總是保持一致。區塊有可能在不同時間到達不同節點,導致節點有不同的區塊鏈視角。解決的辦法是, 每一個節點總是選擇並嘗試延長代表累計了最大工作量證明的區塊鏈,也就是最長的或最大累計難度的鏈。

當有兩個候選區塊同時想要延長最長區塊鏈時,分叉事件就會發生。正常情況下,分叉發生在兩名礦工在較短的時間內,各自都算得了工作量證明解的時候。兩個礦工在各自的候選區塊一發現解,便立即傳播自己的「獲勝」區塊到網路中,先是傳播給鄰近的節點而後傳播到整個網路。每個收到有效區塊的節點都會將其並入並延長區塊鏈。如果該節點在隨後又收到了另一個候選區塊,而這個區塊又擁有同樣父區塊,那麼節點會將這個區塊連接到候選鏈上。其結果是,一些節點收到了一個候選區塊,而另一些節點收到了另一個候選區塊,這時兩個不同版本的區塊鏈就出現了。

分叉之前

分叉開始

我們看到兩個礦工幾乎同時挖到了兩個不同的區塊。為了便於跟蹤這個分叉事件,我們設定有一個被標記為紅色的、來自加拿大的區塊,還有一個被標記為綠色的、來自澳大利亞的區塊。

假設有這樣一種情況,一個在加拿大的礦工發現了「紅色」區塊的工作量證明解,在「藍色」的父區塊上延長了塊鏈。幾乎同一時刻,一個澳大利亞的礦工找到了「綠色」區塊的解,也延長了「藍色」區塊。那麼現在我們就有了兩個區塊:一個是源於加拿大的「紅色」區塊;另一個是源於澳大利亞的「綠色」。這兩個區塊都是有效的,均包含有效的工作量證明解並延長同一個父區塊。這個兩個區塊可能包含了幾乎相同的交易,只是在交易的排序上有些許不同。

比特幣網路中鄰近(網路拓撲上的鄰近,而非地理上的)加拿大的節點會首先收到「紅色」區塊,並建立一個最大累計難度的區塊,「紅色」區塊為這個鏈的最後一個區塊(藍色-紅色),同時忽略晚一些到達的「綠色」區塊。相比之下,離澳大利亞更近的節點會判定「綠色」區塊勝出,並以它為最後一個區塊來延長區塊鏈(藍色-綠色),忽略晚幾秒到達的「紅色」區塊。那些首先收到「紅色」區塊的節點,會即刻以這個區塊為父區塊來產生新的候選區塊,並嘗試尋找這個候選區塊的工作量證明解。同樣地,接受「綠色」區塊的節點會以這個區塊為鏈的頂點開始生成新塊,延長這個鏈。

分叉問題幾乎總是在一個區塊內就被解決了。網路中的一部分算力專注於「紅色」區塊為父區塊,在其之上建立新的區塊;另一部分算力則專注在「綠色」區塊上。即便算力在這兩個陣營中平均分配,也總有一個陣營搶在另一個陣營前發現工作量證明解並將其傳播出去。在這個例子中我們可以打個比方,假如工作在「綠色」區塊上的礦工找到了一個「粉色」區塊延長了區塊鏈(藍色-綠色-粉色),他們會立刻傳播這個新區塊,整個網路會都會認為這個區塊是有效的,如上圖所示。

所有在上一輪選擇「綠色」區塊為勝出者的節點會直接將這條鏈延長一個區塊。然而,那些選擇「紅色」區塊為勝出者的節點現在會看到兩個鏈: 「藍色-綠色-粉色」和「藍色-紅色」。 如上圖所示,這些節點會根據結果將 「藍色-綠色-粉色」 這條鏈設置為主鏈,將 「藍色-紅色」 這條鏈設置為備用鏈。 這些節點接納了新的更長的鏈,被迫改變了原有對區塊鏈的觀點,這就叫做鏈的重新共識 。因為「紅」區塊做為父區塊已經不在最長鏈上,導致了他們的候選區塊已經成為了「孤塊」,所以現在任何原本想要在「藍色-紅色」鏈上延長區塊鏈的礦工都會停下來。全網將 「藍色-綠色-粉色」 這條鏈識別為主鏈,「粉色」區塊為這條鏈的最後一個區塊。全部礦工立刻將他們產生的候選區塊的父區塊切換為「粉色」,來延長「藍色-綠色-粉色」這條鏈。

從理論上來說,兩個區塊的分叉是有可能的,這種情況發生在因先前分叉而相互對立起來的礦工,又幾乎同時發現了兩個不同區塊的解。然而,這種情況發生的幾率是很低的。單區塊分叉每周都會發生,而雙塊分叉則非常罕見。

比特幣將區塊間隔設計為10分鍾,是在更快速的交易確認和更低的分叉概率間作出的妥協。更短的區塊產生間隔會讓交易清算更快地完成,也會導致更加頻繁地區塊鏈分叉。與之相對地,更長的間隔會減少分叉數量,卻會導致更長的清算時間。

『柒』 關於分叉你想要知道的事情

一、分叉指什麼?

分叉,從字面意義可以理解為將區塊鏈分裂成兩個路徑。通常是在規則重新修正的過程中,參與礦工需要在兩個路徑中二選一。

二、分叉是怎麼形成的?

我們前面講到過挖礦本身,是指網路上的礦工誰最早發現新的區塊,並將他加入到最長的鏈上,但如果有兩個礦工幾乎同時發現區塊呢,都添加到前一個區塊上,這時區塊就會分叉稱兩條路,但是,當新的下一個區塊被發現,並添加到其中一條上時,這種不確定性就會消失,最長的鏈仍然會一直持續下去,那另一條鏈就會被網路「孤立」「拋棄」。

當開發者想修改決定交易是否成立的軟體規則,也可以自願對網路進行分叉。

當一個區塊包含無效交易時,該區塊將被網路忽略,發現這個區塊的礦工就會失去區塊獎勵。因此通常礦工只想挖到有效區塊,並加入最長的鏈。

三、為什麼要分叉?

我們都知道區塊鏈的特性,尤其比如說比特幣的特性,挖礦的邏輯,發放獎勵的標准,以及是否為有效交易的規則都是預先就設定好的,所有參與挖礦的礦工們都是在遵循既有的游戲規則。

同時,我們也可以想得到,一切預先設定好的既有規則,很難保證能夠一直適用於後續的運作中,一旦出現小的問題,或者需要修復修正的地方怎麼辦,網路維護者們通常會採用網路升級並且向下兼容的方式進行,這就是軟分叉。

而另一種情況是,軟體升級並且互不兼容,或者社區對於規則有歧義,並且雙方無法達成一致時,可能會分割網路算力,如果非常大算力比重的礦工挖礦時,遵循的是兩條不同的規則,則會在網路上形成兩條不同的,互相完全不兼容的鏈,並且都會一直延續下去,有不同的擁躉。我們都說加密數字貨幣的價值是靠共識決定的,所以有共識在,兩個鏈都會有價值,這是常規意義上說的硬分叉。

四、什麼是軟分叉和硬分叉?

硬分叉 是軟體升級,將不兼容舊軟體的新規則引入網路。你可以將它看作規則的延伸(使區塊大小為2MB,而不是1MB的新規則將需要硬分叉)。

分叉後,繼續運行舊版軟體的節點將發現新交易是無效的。因此為了切換到新鏈繼續挖有效區塊,所有網路節點必須升級為新規則。

當出現某種政治僵局,社區部分人堅持舊規則,就會出現問題。舊鏈的哈希率、網路算力將變得不合時宜。重要的是,舊鏈的數據和規則仍被看作具備價值,礦工當然希望繼續挖礦,開發者也希望繼續支持它。

軟分叉 是強化一些規則,並且向後兼容。

沒升級的節點會繼續將新交易視為有效的。然而未升級節點繼續挖出的區塊將被升級節點拒絕。因此軟分叉需要網路的大部分算力。

軟分叉是升級比特幣的常用方法,因為它使網路分裂的風險被認為是較低的。過去成功的軟分叉包括BIP 66軟體升級(涉及簽名驗證)、P2SH(修改比特幣地址格式)。

五、分叉是無限制的嗎?

是,根據上面的描述你應該可以看得到,分叉並沒有數量時間的限制,如果需要軟體升級,或者社區分歧無法達成一致,分叉是隨時都可以進行的,但考慮到社群所有人的利益,並不會非常頻繁的發生。

六、分叉會帶來什麼?

最簡單的,硬分叉會產生分叉幣,如果社區無法達成一致,則原有的共識會割裂成兩個陣營,分別維護不同的規則和網路,比如前段時間很火的 BCH 算力之爭,最後分叉造成 BCHABC 和 BCHSV 兩種代幣,原有的價值會被割裂成兩部分。之前持有 BCH的人,在分叉結束後會1:1根據快照收到同樣數量的另一種分叉幣。

『捌』 GHOST,DAG,SPECTRE,PHANTOM和CONFLUX技術原理

  DAG概念,當做繼比特幣,以太坊後新的一代區塊鏈技術(區塊鏈3.0),那麼DAG區塊鏈是什麼?DAG的由來是什麼?它的技術理念是怎麼樣的?運行在DAG區塊鏈上的協議有哪些?

  要想解釋DAG,離不開Yonatan Sompolinsky 和 Aviv Zohar兩位以色列人,他們是DAG區塊鏈這一概念的提出者。在DAG之前,Aviv Zohar提出了一個GHOST協議(以太坊初期就採用了GHOST協議),該協議解決的是鏈分叉帶來的安全性問題,而分叉的區塊鏈 在GHOST協議下數據結構就從一條鏈變成了一個樹(Tree),而之後Aviv Zohar進一步提出了一個inclusive協議,在inclusive協議規則下,區塊的結構就變成了有向無環圖(DAG)。

接下來本文將:

  1.介紹 GHOST協議,DAG由來 背後的 設計原理
  2.介紹三種針對DAG型區塊鏈設計的協議,SPECTRE、PHANTOM和CONFLUX。

  GHOST協議是為了解決 分叉 導致 鏈安全性降低 的一個協議。
  下邊將通過解釋什麼是 分叉 ,為什麼 分叉會降低鏈的安全性 鏈上擴容 為什麼會導致更多分叉來詳細介紹GHOST協議。

一筆比特幣交易為什麼要等6個區塊的交易時長呢?
  等待不是為了 防範51%攻擊 的。落後6個區塊,如果擁有超過51%的算力,只要足夠長的時間,一定能夠產生更長的鏈完成攻擊。它是為了防止 分叉 帶來的風險。
  比特幣在 理想情況 下,不同節點之間有相同的一條區塊鏈,全部節點都是基於 同一個區塊 進行挖礦,但當兩個挖礦節點 幾乎同時 挖到一個新的區塊,當它們接收到對方產生的區塊時,不同的節點將選擇基於 其中一個 區塊挖礦, 分叉 產生了。之後節點會根據哪條 分叉更長 ,選擇哪條是主鏈進行挖礦,而不是主鏈的分叉區塊全部被 拋棄
  比特幣每天都會發生 二分叉 ,但出現連續的 六次分叉 幾乎不可能,於是要等待6個區塊的確認時間。(這種分叉不是來自惡意攻擊,是 偶然性以及網路延遲 導致的。

分叉將『攻擊不超過51%算力,比特幣就是安全的』這一理論推翻。
  在比特幣中,當鏈有 分叉 時,將選擇分叉 最長 的鏈作為主鏈,惡意攻擊就是產生一條比主鏈更長的鏈 代替主鏈。
  下圖中藍色區塊代表誠實區塊,紅色代表攻擊區塊。2號、3號藍色區塊產生 分叉 ,此時攻擊節點產生5個攻擊區塊(紅色)就能產生一條 更長 的鏈完成攻擊。雖然藍色區塊總數更多(有6個), 但分叉的區塊沒有增加鏈的長度 ,這種情況下,紅色攻擊方在算力(假設每個區塊代表算力相同)沒有超過51%的情況下攻擊成功。
  比特幣當前安全的原因在於10分鍾的區塊時間降低了分叉可能性,但其實際安全算力仍低於51%,也就是說,不需要51%的算力也能攻擊成功。

  採用 大區塊 以及 小的產出時間 將導致鏈有 很多分叉。   
  比特幣當前處理交易量很低,改進這個缺陷一個可行方法就是 增大區塊的大小和減小區塊的產出時間 。大區塊需要更多的網路傳輸時間、單位時間更多的區塊數都會導致 更多的分叉 。   
   鏈上擴容的方案對比特幣處理交易能力提升是巨大的 ,假如每個區塊大小變為原來的八倍(8M),出塊時間縮短為原來的五分之一(2分鍾),理想情況下,比特幣的處理交易量將變為原來的 40倍 ,實際情況會產生分叉,交易量不會有這么高。

   主鏈選擇中,採用計算最大子樹來代替比特幣中的最長鏈規則。   
  比特幣的最長鏈規則在有分叉情況下,將降低鏈的安全性,分叉越多,安全性越低。鏈上擴容將導致更多分叉,導致鏈不安全。
  Yonatan Sompolinsky提出GHOST規則, 當有分叉時,通過計算最大子樹,也就是每條分叉擁有的所有區塊數來決定哪條鏈是主鏈 。圖0中,鏈在區塊0後分叉了,上邊分叉總計有6個藍色區塊,下邊分叉有5個紅色區塊,藍色區塊1是主鏈,所以 紅色攻擊失敗 。   
   在有大量分叉的情況下,GHOST規則將鏈安全性直接提到了51%,分叉對採用GHOST協議的鏈安全性沒有影響。

  根據GHOST規則,上圖中雖然誠實節點產生了12個區塊,但加入主鏈的只有4個區塊,大量區塊 被丟棄 ,假定比特幣每個區塊大小變為原來的八倍(8M),出塊時間縮短為原來的十分之一(1分鍾),分叉率為0.33(產生的區塊加入主鏈的概率),比特幣的處理交易能力將變為原來的 26.6倍
GHOST協議解決了鏈上擴容導致分叉帶來的安全性問題。
區塊的結構類型就從一條鏈變為樹

  在GHOST的提出後,Yonatan Sompolinsky提出一種新的設想,新產生的區塊指向所有已知的分叉末端區塊,即一個區塊有多個父親,此時 區塊鏈就從一條鏈變為多條分叉鏈共同組成的的結構,這樣的鏈結構就被叫做DAG(有向無環圖)

Yonatan Sompolinsky進而提出了在DAG上運行的 inclusive協議 ,原理如下:

遺憾的是, Yonatan Sompolinsky之後並沒有詳細介紹補充該協議 ,而是提出了一種新思路的DAG協議——SPECTRE。

  看完上邊內容之後,你會發現, 最長鏈規則下,分叉的區塊對比特幣安全性和交易量沒有任何貢獻 ,白白的浪費了算力,而 GHOST通過計算分叉區塊個數來提升鏈的安全性 ,但分叉區塊除了納入區塊計數外,區塊內包含的交易信息卻全部 被丟棄
  這種新的區塊結構帶來了新的特性,當然,比特幣的 最長鏈規則 也可以在DAG上實施,只不過安全性和處理交易能力不佳,而GHOST協議可以提高安全性和處理交易能力,為了 最大化 利用DAG區塊鏈特性,社區提出了不同的協議,接下來介紹Yonatan Sompolinsky 提出的 SPECTRE協議 ,以及 PHANTOM協議 ,以及國內某社區提出的 CONFLUX協議

丟棄主鏈概念,所有產生的區塊共同構成賬本,不丟棄任何一個區塊
  只要是產生的區塊就不會被丟棄,所有的區塊都是有效的,所有區塊共同組成賬本,這樣進一步提高了區塊鏈的處理交易能力, 該設計的關鍵在於設計演算法來保證區塊鏈不會被惡意攻擊成功。   
  SPECTRE協議較為復雜,下邊將從其如何產生區塊、如何處理沖突交易以及產生可信交易集三個方面進行描述。

SPECTRE協議中,當產生區塊時,要指向之前所有分叉的末端區塊。
  
下圖中,左邊為比特幣產生區塊時,當有分叉出現,新區塊將選擇基於其中一個產生新的區塊,而SPECTRE中,將基於所有分叉末端區塊產生新的區塊。同時,當有新區塊產生時,節點要立刻將新區塊(包含基於哪些區塊產生這一信息)發送給與自己相連接的節點。

  仔細觀察,GHOST協議中雖然有分叉,但每個區塊都只基於前邊某一個區塊產生,而SPECTRE協議中要基於當前節點知道的所有末端區塊產生下一個區塊。

SPECTRE協議將礦工維持交易不沖突的要求剝除   
  比特幣就像一本 權威 的賬本,只要是里邊記錄的,就一定是真的(不考慮分叉和惡意攻擊),而SPECTRE產生的DAG就像一本 不權威 賬本,里邊的交易信息可能沖突(上邊圖1中兩個1區塊中可能包含沖突交易信息)。   
  該協議下,挖礦節點只 負責迅速挖區塊 (能夠達到1秒一個區塊),而對分叉中可能包含的沖突交易在挖礦階段並 不做任何處理 ,將記錄交易速度最大化,讓DAG這種區塊鏈有著恐怖的處理交易能力。

  是時候解決挖礦不解決的 沖突交易 問題了,SPECTRE的思路是設計一個計算投票的演算法,讓誠實區塊會投票給誠實的區塊,後邊的誠實區塊會給前邊的 堆疊算力 ,從而讓惡意攻擊失敗,其安全算力也是 51% 。   
  拿雙花舉例,下圖中,X和Y區塊中包含著兩條沖突交易會導致雙花,此時DAG中的區塊會對X和Y進行投票, 決定哪一個交易有效。

投票規則如下,投X的標藍,投Y的標紅,X<Y代表X先於Y:

  根據投票結果,X中的那條交易信息 有效 ,Y中對應的那條交易信息 無效 。   Yonatan Sompolinsky也對 不指向前邊區塊 以及 產生區塊不發給鄰居節點的惡意攻擊 有進行分析,在投票規則中,低於50%算力的攻擊者會失敗。   
   投票聽起來像是一個主動地中心化行為,實際上不是,程序根據當前DAG區塊所處的狀態自發完成這一區塊投票計算過程,就相當於,給定一個DAG數據,輸入為兩條沖突信息,運行該規則演算法,將得出一對沖突交易的哪一個為有效。

SPECTRE可信交易集就相當於超過當前6個區塊的比特幣鏈里組成的交易集合。   區塊鏈從數字加密貨幣的角度來說,就是一個 賬本 ,從賬本上的交易信息中得出每個 賬戶 所擁有的貨幣,所以,得出 確定的、不可能更改 的交易信息就至關重要,SPECTRE可信交易集產生過程如下:

SPECTRE並不會對所有區塊進行排序,所有區塊沒有一個完整的線形順序,有的只是決定沖突信息先後的區塊順序對。   
  比特幣中的高度代表的就是 線形順序 ,高度低的區塊中交易信息先於高度高的區塊里的信息,高度高的區塊就不能 包含和高度低的區塊沖突的交易 ,而SPECTRE有大量的分叉,區塊高度不能代表線形順序,前邊的區塊交易信息不一定先於後邊的分叉區塊交易信息,交易信息的有效性要由投票演算法來決定,區塊投票演算法很快,再加上它將 所有分叉區塊 都包含進來,也就沒有了比特幣所面臨的 分叉風險 (等待6個區塊),交易確認時間可以達到10秒。
至此,和比特幣相比,SPECTRE對應的DAG區塊鏈有三個特點:

  SPECTRE協議非常 適合DAG型數字加密貨幣 ,但當它用於智能合約時,它的缺陷就出來了,智能合約需要一個 嚴格的線性順序 ,對此Yonatan Sompolinsky新設計了 PHANTOM 協議來對DAG區塊形成一個 線性順序 ,下邊將詳細介紹PHANTOM協議。
SPECTRE和PHANTOM是兩個完整的獨立的協議,不是一個對另一個的補充。

  PHANTOM的挖礦機制和SPECTRE一樣,會產生同樣類型的DAG,不同的是PHANTOM通過對 區塊連通度分析 ,判定區塊誠實還是惡意,按照分類對區塊排序,對DAG區塊產生一個嚴格的 線性順序 ,通過線性順序來判斷 沖突交易有效性

DAG中,攻擊者有兩種攻擊手段, 一產生的區塊不基於已知的末端區塊,二不立即發布自己產生的區塊 ,前者會讓自己區塊指向的區塊變少,後者讓其他節點產生的區塊不會指向自己的區塊,這兩種情況都會導致這些惡意區塊的與其它區塊的 連接度低
   誠實區塊在考慮網路最大延遲下,經過一定時間一定會傳遍整個網路,一定會被後邊的區塊所指向,誠實節點在產生新區塊時也一定會指向自己所知道的末端區塊。
  通過對 區塊指出去的邊和指向該區塊的邊 進行分析,也就是區塊的 連通度 ,當考慮最大的網路延遲,連通度會有一個 極限值K ,低於該值的區塊可以被認定為惡意區塊,在排序中要處於 劣勢

接下來,進行區塊 誠實和惡意 判定,判定分兩步,第一步最重要, 實現復雜也耗費時間 ,主要為通過對區塊連通度的判定,將強連通度的區塊標為藍色視為誠實區塊,弱的標為紅色視為惡意區塊。

  第二步 先對藍色區塊集排序 ,拓撲排序,然後對 紅色區塊集排序 。紅色區塊的順序要處於弱勢,例如上圖中C,它處於A和I之間,那麼它的順序會排在I的前一個區塊,而D、H都會排在C前。 注意通過考慮最大延遲時間設定連通度的值,幾乎所有正常誠實節點產生的區塊都會被標記為藍色
  至此,PHANTOM協議實現了對DAG的 線性排序 ,通過線性順序就可以提取 無沖突交易集 ,進而提取 可信交易集 ,雖然耗時較長,滿足智能合約的要求。

  Yonatan Sompolinsky在PHANTOM協議論文結尾,提出一種將PHANTOM + SPECTRE結合起來的可能協議,沒有詳細展開介紹。下圖是幾種協議的對比:

  至此,介紹了Yonatan Sompolinsky一開始從分叉導致不安全提出的GHOST,到後來將DAG引入區塊鏈,設計了SPECTRE協議,以及為智能合約考慮的PHANTOM協議。接下來,介紹國內某社區提出的CONFLUX協議。

  GHOST有 主鏈但丟棄分叉區塊 ;SPECTRE 沒有主鏈,包含所有分叉,但沒有線性順序 ;PHANTOM 沒有主鏈,包含分叉且有線性順序 ,而CONFLUX 即有主鏈,又是DAG,利用主鏈讓DAG產生線性排序 ,下面將從挖礦機制和區塊排序兩方面來說明CONFLUX協議。

  CONFLUX協議定義了根源邊和參考邊。 新區塊是基於前一個主鏈區塊產生的,新區塊用根源邊(實線)指向前一區塊,用參考邊(虛線)指向分叉的其他區塊末端 ,如下圖最後一個新區塊實線指向H,虛線指向分叉末端區塊K。 根源邊用於代表區塊基於哪個區塊產生,給哪個區塊堆疊算力,參考邊用於表示分叉的其它區塊產生在該區塊之前。

挖礦過程如下:

根源邊只能有一條,參考邊可多條(視情況而定)

以主鏈區塊為分割點,將DAG分段,段間段內設計簡單排序演算法
  CONFLUX協議下產生的區塊鏈如上(圖2),接下來對其進行線性排序,排序演算法如下:

  通過上述排序,DAG有了一個 線性順序 ,上圖DAG區塊順序為 Genesis, A, B, C, D, F, E, G, J, I, H, and K 。接下來對該線性順序的區塊里的交易信息進行交易排序, 單一區塊 里可能包含的沖突交易將直接按照該區塊內交易信息排列 先後順序 決定。
  至此,CONFLUX對DAG所有區塊產生一個 線性順序 ,進而可以對區塊內交易信息排序,產生 無沖突交易集 ,超過一定時間的無沖突交易組成 可信交易集 主鏈只是排序的標尺,作為分割時段的標准,CONFLUX包含所有分叉區塊。

GHOST論文
Inclusive論文
SPECTRE論文
PHANTOM論文
CONFLUX論文
DAGlabs 相關講解視頻合集

熱點內容
區塊鏈幣圈今天的話題 發布:2025-07-05 15:22:06 瀏覽:796
玩區塊鏈的人群 發布:2025-07-05 15:06:06 瀏覽:123
VP幣是傳銷還是真正區塊鏈 發布:2025-07-05 15:01:21 瀏覽:453
個人還能挖比特幣嗎 發布:2025-07-05 14:46:43 瀏覽:680
幣圈財富自由論壇 發布:2025-07-05 14:12:52 瀏覽:844
挖比特幣有沒有風險 發布:2025-07-05 14:02:51 瀏覽:82
BE區塊鏈生態算網路傳銷嗎 發布:2025-07-05 13:34:31 瀏覽:657
幣圈是什麼控制漲跌 發布:2025-07-05 12:51:01 瀏覽:385
以太坊的運作過程 發布:2025-07-05 12:34:09 瀏覽:207
如何銷售區塊鏈會議 發布:2025-07-05 11:34:12 瀏覽:219