共用方式為



2018 年 3 月

第 33 卷,第 3 期

本文章是由機器翻譯。

區塊鍊 - 區塊鏈基本法則

Jonathan Waldman |2018 年 3 月

上一步中 1999,檔案共用的網路 Napster 容易混合對等網路上的共用 (通常包含音樂) 音訊檔案 (「 混合 」 因為中央目錄伺服器使用它)。該檔案共用的網路不只是未共用音樂檔案:它允許保留這些共用檔案的副本,使得單一的數位資產產生的無限制的數字的完整複本全球網路上的所有使用者。與技術已經運用與電腦的任何人都不會隨便被容易攔截到它已強制關閉所有其 89 美國為基礎的存放區 2006年這類意外容易受到攻擊塔記錄。

在 2008 中,subprime debacle,期間發生的長時間建立功能強大的美國金融機構和保險公司宣告或 teetered 了破產。這些情況下呼叫立即美國聯邦政府介入的情況下,為了避免本國及可能是全域的財務溶解。此重要事件留奪 leery 集中式銀行的並且公開擁有公用的監督以關閉的財務分類帳的危險。在 2008 年 3 月心臟付款系統資料缺口會公開超過 130 百萬個信用卡號碼,其中有許多稍後用來進行詐騙購買。

這些事件說明住在數位、 相互連結的世界,取決於交易費用產生 middlemen 並讓人遭受數位漏洞,充滿貪欲及 crime 的危險。學術挑戰變成如何建立的可用性、 disintermediated 數位基礎結構的數位資產可公開且可靠地傳輸 (而不是複製與共用) 擁有者擁有,跟沒有秩序或 fallible 中央授權單位,是安全的而且可以信任。

輸入 Bitcoin Blockchain

一種新的基礎結構探索 50 數位錢幣和錄製複寫的非集中式的對等網路的防篡改公用總帳看似在回應中會發生什麼情況,在 2009 年 1 月 3 日的歷程記錄內容網際網路連線的電腦。這些 50 cryptocurrency 單元,稱為 bitcoins,記錄為發生區塊 — 功能會有所謂 Bitcoin blockchain 中的第一個連結。

此 blockchain 供電 cryptocurrency 值得注意的一點是它缺少任何類型的信任授權單位或控管 (例如銀行或政府),來驗證每一筆交易。此外,它 disintermediates 交易,讓您可以傳送數位貨幣國際使用沒有 middleman 介入,例如 broker 或代理商與全域網路。它可以依賴現代的密碼編譯,因為 blockchain 中包含的資料是防竄改和 pseudonymous。而且因為給定的 blockchain 會複寫每個節點組成其對等網路上,沒有任何單一失敗點,使可用且可靠的技術。

Bitcoin 的啟動後繼續快速成人 blockchain 技術。進行研究的 blockchains 動態、 vast 和複雜它們的實作詳細資料會大幅不同。事實上,詞彙"blockchain"不再只適用於 Bitcoin 特別或 cryptocurrencies 一般。Blockchains 正在調整並建立他們可以更快速且更聰明。事實上,某些 blockchain 技術可讓指令碼來支援智慧合約,可允許自訂規則以套用至交易。如此一來,blockchains 已更改成使用新種類的可程式化,駭客證明的儲存體技術,這是為什麼要求 IT 專業人員、 企業、 金融機構中,與其他人來管理他們,則為 true 可能的原因之一。

如果您已被坐在 blockchain sidelines,就跟上。簡介本文中未涵蓋的任何特定 blockchain 技術進行更細微的技術詳細資料,各有自己的規則、 功能和自訂,但我此討論將想法協助引導您了核心技術 underpinnings其中許多現代 blockchain 技術為基礎。

Blockchains 的運作方式

Bitcoin blockchain 是世界上第一個實用的範例 blockchain 技術。和該區別,因為"blockchain 」 誤解為 Bitcoin 的同義詞。不過,現代 blockchain 技術供應項目追蹤數位貨幣以外的數位資產,而這些 blockchains 運作方式則相當不同的方式 Bitcoin blockchain 適用於從。此外,Bitcoin blockchain popularized blockchain 是藉由追蹤信用額度,銀行分類帳會虛擬化和價款之外,有效地長條圖中雙-消費的創意,密碼編譯方案的資料結構的概念cryptocurrency 單位。基於這個理由,詞彙"數位分類帳"及"double"變成 cryptocurrency blockchains 相關聯。尚未這些條款,分別廣泛適用於追蹤擁有權,以及強制執行數位資產的單一傳輸。當您看到這些條款時,請勿假設它們只是要 cryptocurrency 導向 blockchain 技術參考。

其本質上,在 blockchain 是追蹤的值或感興趣的項目擁有者擁有經過竄改資料結構。「 內容 」 可以是任何類型的數位資產,例如數位參考、 Word 文件或 Microsoft Surface 平板電腦的序號。事實上,可以是唯一的數位指紋相關聯的任何項目可以追蹤 blockchain 上。Blockchains 解決所謂的 「 雙花 」 問題需要的數位資產的擁有權會傳輸,而非複製或共用。但 blockchain 技術有趣的是它會建立一種通訊協定,會強制執行交易的規則,並可以讓節點在其分散式網路的電腦上的自我監視整個作業。與,會完成這值得注意的項不含中央伺服器或信任授權,能快速和全域 (也就是,國際)。這項承諾 excites 人看到它,以便消除 middlemen 和減少或撤回交易費用,使商務更有效率企業與取用者相同,差別。

Blockchain 核心元件

Bitcoin blockchain 網路是公開-任何人都可以參與任何位置的世界。尚未更新 blockchain 供應項目,例如 Microsoft Azure 託管 blockchain 可以設定為公用、 私用或授與權限的網路。Blockchains 會視為分散,但該詞彙需要釐清資訊:如 Vitalik Buterin 說明 (bit.ly/2tEUYyT),「 分散式 blockchains"表示他們正在"政治分散式 (沒有人控制它們) 在架構上分散 (沒有實際上中央失敗點) 和但以邏輯方式集中式 (沒有一個通常同意的狀態和行為類似在單一電腦的系統)。 」 分散提供容錯、 攻擊的防禦功能和共謀抵抗 (的意義會清除當我將討論證明工作的更新版本)。

了解如何設計公用 blockchain 需要的密碼編譯雜湊、 公開金鑰密碼編譯 (PKC)、 二進位雜湊鏈結 (特別是 Merkle 樹) 和共識演算法的知識。我將簡短回顧這些概念,並接著我們將示範 blockchain 是包含交易的雜湊鏈結的雜湊鏈結。一旦掌握此巢狀雜湊鏈結概念,您將了解 blockchain 技術的基本設計。

密碼編譯雜湊雖然有很多單向加密編譯雜湊演算法的變異,是使用 sha-256 的熱門選擇 (bit.ly/29kkpft),可接受的訊息最多為 (2 的單程雜湊函式64-1) / 8 個位元組,並傳回 32 位元組雜湊值 (64 個十六進位字元) 在小數範圍內,為 0 時可大致 1.16 x 1077。若要將該數字範圍檢視方塊中,上限則卸除具有約 5 x 1012 原子;可觀察的 universe 被評估為 10 的範圍中78 to 1082 原子。調整訊息中的任何字元,並重新計算的 sha-256 雜湊值會產生全新的雜湊值。(若要進行實驗,請造訪onlinemd5.com並將檔案或文字的密碼總和類型設定為 sha-256。)

假設有相同的輸入,sha-256 演算法一定會產生相同的固定長度輸出。相對於 blockchain 技術的使用 sha-256 密碼編譯雜湊值會是它們的唯一不足,無法做為一種數位指紋,也做為總和檢查碼時。此外,單程雜湊函式 (做為練習的緣故) 無法解碼。請考慮我名稱的 SHA 256 值:8F12D83BA54AC0EA7687AD4AFDE5E258BBFF970AA8D60C6588381784C502CA8E.指定該雜湊值,沒有任何可行的方式以演算法反轉它回我的名稱。(駭客的其中一種技術會使用彩虹資料表列出常見的字串,例如 「 密碼 」 的已計算的雜湊值 — 但,不以演算法反轉雜湊。若要防止這類攻擊,它是慣用美化它們要由其隨機字串,又稱為 「 salt"的值上進行雜湊的字串)。

如果您還沒有實用的 SHA 256 產生器,請考慮在資料表圖 1,其中顯示方式的各種長度的字串一律產生 64 位數十六進位雜湊值,接著將該小幅變更至任何特定的字串會產生完全不同的結果。

圖 1 雜湊使用 sha-256 演算法的各種長度的字串

輸入的字串 Sha-256 雜湊值
分鐘 62C66A7A5DD70C3146618063C344E531E6D4B59E379808443CE962B3ABD63C5A
M 08F271887CE94707DA822D5263BAE19D5519CB3614E0DAEDC4C7CE5DAB7473F1
M1 2D214CA69B86C255BE416D42CCA977A59B34A7492873105522C35015FAB806F0
M2 0892A10ECE1F933EE98F5D554601B28F8437801D1AA1B77799E4035DDCB6950C
3 月 9D95A2CF0D7180B5089691163B188A7203B0CDE179346B8CFAA8AB6C2C3E6414
2018 年 3 月 1 日 767328E7367048FA9DB37354CFA43DBB1691E8330DB54D54F52C1A444CA2E680
2018 年 3 月 2 日 CCF33BF1C08B74EDE6A7C15C56EEC16269D83967670032ACDA6EE395361B7595

有時雜湊值是雙-雜湊,這表示,第一個雜湊進行雜湊再次套用 sha-256 演算法的第二個往返。如果我雙雜湊中的值圖 1,最後將結果與圖 2

圖 2 雙-雜湊圖 1 中的值

輸入的字串 Double sha-256 雜湊值
分鐘 A5FCE7E78734EC317F83F9019C80FFAF2508689B06EFA02191495A7D21FECE9A
M 6F6DCF58526B0D29EE664A708A939B7CDAC124A6A8569FCACE46FEAD38868E2E
M1 6C5D08BE9FFBBABD24B5F19AFFE6590FD402D347A50B519A59D40E15DCC0A6CB
M2 B2307311CC5877D5A581EDC821F3BFD5F99EB4E3B1D1B4009D9545BCF07E2E1A
3 月 B5410E155022AE6EB22CA21FADEDE65F0F7296DE14CA1D7A720A4937BD23AA5D
2018 年 3 月 1 日 345DD725FEE80F8C5953A66C1495605E4ED01C4CE5AEF6C0A6D238999266A1A6
2018 年 3 月 2 日 3E85B3D910BA77F88ECD5E24D1396457C532C73B89C032DED9AD0CBB4D4D9794

公開金鑰加密請記住,一個 blockchain 的主要功能是追蹤的數位資產的擁有權。有問題的數位資產可能是 nothing 或數百萬美元,值得,所以擁有權測試必須確定擁有者不會遭到詐騙。若要執行這類數位領域中的測試,blockchains 利用 PKC,可讓以數位方式簽署才能證明擁有權,並為其傳送授權其資產擁有者。對稱金鑰加密,其中單一私密金鑰 (機密) 用來加密,然後解密訊息,不同 PKC 會使用非對稱金鑰加密。

因為數位資產的擁有權的正確的驗證演算法很重要的 blockchains,它們會採用依賴橢圓曲線數位簽章演算法或 ECDSA 的高強度公用/私用金鑰組產生策略。ECDSA 的好處是,它會建立較短的長度,但與相同長度索引鍵是由一般的演算法產生密碼編譯較強的索引鍵:數位簽章授權 (DSA)。每當有需求,使用者會存取軟體應用程式用來產生密碼編譯金鑰組的 ECDSA。使用者必須保留私用金鑰的備份,因為該索引鍵,才能傳輸或利用 blockchain 儲存的數位資產中保存的值。如果您將只能存取私用金鑰在私密/公開金鑰組,因為兩個索引鍵之間的數學關聯性可以重新產生的公開金鑰。但無法從公開金鑰 (這表示如果您將備份只能有一個索引鍵,請確定它是私用金鑰 !) 產生的私密金鑰。

這些金鑰通常會以兩種方式之一。第一個使用案例 (請參閱圖 3) 時,想要其他人傳送給您,而且只有您可以開啟加密的訊息。若要這樣做,請授與其他人公開金鑰,並要求他們使用它來加密文件使用軟體,適用於加密演算法,並會產生的加密文字,其訊息的加密的版本。他們再傳送加密文字。因為它們會使用您的公開金鑰來加密文件,您必須使用正確配對的私密金鑰來進行解密。

當您想要讓人傳送加密的文件/郵件,而且只有您可以開啟使用 PKC
圖 3 時想要其他人傳送加密的文件/郵件,而且只有您可以開啟使用 PKC

第二個使用案例 (請參閱圖 4) 時,您想要加密訊息,並示範它確實是來自您。若要這樣做,請中,您可以使用您的私密金鑰來建立文件的加密文字。然後,您會傳送該加密文字給其他人。他們會使用您的公開金鑰解密。因為只有您的公用金鑰可以解密該文件,收件者可以假設文件先前由您的私密金鑰加密,而且除非您的私密金鑰具有已遭竊時資料曝光,文件來自您。

當您想要加密以確保它們確實來自您的文件/訊息傳送給其他人使用 PKC
當您想要加密以確保它們確實來自您的文件/訊息傳送給其他人使用 PKC 圖 4

第三個使用案例會利用 PKC,證明透過數位簽章的程序的數位資產的擁有權。在此使用案例 (請參閱圖 5),假設帳單已撰寫的合法的繫結的 Word 文件他只需要電子郵件給 Susan 的文件。Susan 想要確定她收到帳單文件的複本實際上是來自帳單,而且沒有遭到竄改路由。帳單首先建立 Word 文件的 sha-256 雜湊,並記錄 H(W) 形式的值。他接下來使用他私用金鑰來加密文件的雜湊,導致 Enc(H(W)),並再將 Word 文件 (選擇性地加密) 和 Enc(H(W)) 值 (這是文件 W 帳單的數位簽章) 傳送給 Susan。

使用數位簽章文件/訊息 PKC 以及加密編譯雜湊
圖 5 使用 PKC 以及加密編譯雜湊來數位簽署文件/訊息

Susan 重新計算的 H(W) 值從她收到,則會使用帳單的公開金鑰來解密 Enc(H(W)) 值的 Word 文件複本 (請參閱圖 6)。Susan 計算雜湊值等於解密 H(W) 值,如果 Susan 得到帳單文件簽署,而的複本她收到完全相同為一個帳單已簽署。

若要確認文件/訊息由預期的合作對象簽署的加密編譯雜湊搭配使用 PKC 沿著
圖 6 使用 PKC 沿著與密碼編譯雜湊來驗證文件/訊息由預期的合作對象簽署

使用雜湊和 PKC,blockchain 維護一份記錄的數位資產的擁有權使用的交易。交易資料的物件會連結到彼此,形成稱為雜湊鏈結的資料結構。這樣的運作的方式是每個交易記錄構成使用函式 (H) 雜湊的訊息 (m),然後使用擁有者的私密金鑰 (s) 簽署。(它是可使用"s"的 「 密碼 」,表示要為未混淆"p"公開金鑰與私密金鑰)。 這會產生的簽章 (簽章):

sig = signature(H(m), s)

從一位擁有者的數位資產傳送到另一個,其數位簽章時是檢查、 驗證,和數位簽章新擁有者,而且再註冊為新的節點上的雜湊鏈結。雖然的實作詳細資料會大幅異 blockchain 技術與版本,基本的概念也適用於所有。例如,如中所示圖 7,帳單數位資產的擁有者,並使用其私密金鑰來起始該數位資產的傳輸給 Susan。Susan 的交易記錄會使用帳單的公開金鑰來驗證其簽章。在此之後,按照公開金鑰用來簽署數位資產,讓 Susan 成為新的擁有者。這會建立新的交易記錄,交易雜湊鏈結上的新連結。

交易雜湊鏈結會使用數位簽章傳送的數位資產; 的擁有權每個交易記錄維護的雜湊鏈結先前交易的密碼編譯返回連結
圖 7 交易雜湊鏈結會使用數位簽章傳送的數位資產; 的擁有權每個交易記錄維護的雜湊鏈結先前交易的密碼編譯返回連結

這個雜湊鏈結的交易是密碼編譯安全、 防篡改。導致 Sig 交易 0 的任何變更。0 若要變更,以及會要求在交易 1 和雜湊鏈結上的每個後續交易中儲存的雜湊值的更新。

顯示資料的交易物件。每一筆交易所包含的資料各不相同每個 blockchain 實作,因此我已基於我們的目的抽象化基礎資料,因為主要的點,以了解雜湊鏈結是以密碼編譯方式連結的交易鏈結,以連結先前的擁有者的交易記錄的雜湊值。(cryptocurrency blockchains 中每個交易物件包含一份數位貨幣輸入和輸出,以及中繼資料,例如時間戳記和選擇性交易費用。這些 cryptocurrency 輸入和輸出提供準確地模型財務分類帳所需的交易詳細資料)。

Merkle 樹某些 blockchains 配套總使用雜湊鏈結的另一種交易: 的二進位雜湊鏈結或 Merkle 樹狀結構。完整的 Merkle 樹狀結構指二進位樹狀目錄結構中所示分支兩次每個層級開始於根,因為圖 8

Merkle 樹狀結構是一種產生 Merkle 根雜湊; 的二進位雜湊樹狀目錄這個資料結構可以有效地加入分葉節點,並計算新 Merkle 根目錄,而不需要完整的重新計算
圖 8 Merkle 樹狀結構是一種產生 Merkle 根雜湊; 的二進位雜湊樹狀目錄這個資料結構可以有效地加入分葉節點,並計算新 Merkle 根目錄,而不需要完整的重新計算

在設定 Merkle 樹狀目錄中的工作是計算每個交易物件中包含資料的 sha-256 雜湊建立一系列的分葉節點 (Bitcoin blockchain 雙-雜湊的每個 Merkle 節點; 雙雜湊,可協助增強的密碼編譯的值雜湊結果中應該有弱點要探索的 sha-256 演算法)。Merkle 樹狀結構需要分葉節點為偶數,它是可複製的最後一個分葉節點,如果開頭為奇數。然後每一對分葉節點會雜湊在一起,產生新的雜湊值。在圖 8,交易 A H 為分葉 A 顯示雜湊A;分葉 B 交易 b 顯示雜湊成 HB 等等。此模式會持續進行每個樹狀層級,直到您到達最後一個根節點。根節點的雜湊值是所有其他雜湊加總在樹狀目錄中的加密編譯雜湊總和。任何分葉節點中的資料的任何變更會導致重新計算的 Merkle 樹狀目錄根雜湊值,以變更。

Merkle 二進位雜湊樹狀結構會提供一些優點。例如,它可輕鬆更新在交易內的資料,並計算新的 Merkle 根雜湊而不必建立全新的整個 Merkle 樹狀結構。例如,如果交易 E 變更 (它以反白顯示圖 8),您只需要為 Merkle 根部,計算一次針對每個層級的新雜湊,有效率地查核樹狀結構。因此,您先計算新的分葉雜湊 H;然後計算 HEF 從 H 和 HF;然後計算 HEFGH 從 HEF和 HGH;然後計算新的 Merkle 根雜湊,從 HABCD 和 HEFGH。更新 Merkle 根雜湊需要與建置從頭 Merkle 樹狀結構所需的 15 只能有四個計算 !

建置 Blockchain

若要建置 blockchain (請參閱圖 9),二進位雜湊鏈結資料物件包含的交易必須以某種方式進行認可每個人都可以使用防篡改資料存放區 (請記住,這是公用的 blockchain — 任何節點上的網路可讀取或寫入其中)。Merkle 樹狀結構包含的交易,且會防篡改,因此它無法做為 blockchain 相提並論。但是,有幾個問題。為了讓傳送給 Susan 他數位資產的帳單,帳單必須信任服務或網站,可做為處理其數位資產傳輸的要求,代理程式,他必須信任持續發生雜湊結構的伺服器。處理新的交易,或是要委派其進行處理的中央授權單位的中央節點,沒有任何節點無法處理帳單的暫止的交易。惡意使用者或主控項的節點有更好的處理能力可能會允許無效或詐騙交易發生,這些無法傳播到誠實節點。若要解決的問題,網路無法嘗試隨機指派的節點,以處理帳單的交易,但是一次可以集中控制,而且需要亂數產生器確實強制執行隨機性的信任。若要排除這個問題,blockchains 會使用共識演算法下, 一步所述。

Blockchain 組成區塊,接著,包括交易雜湊樹狀結構。上 Blockchain 區塊是上一步] 連結到前一個區塊,並使用證明工作的演算法會進行驗證
圖 9 Blockchain 組成區塊,接著,包括交易雜湊樹狀結構。上 Blockchain 區塊是上一步] 連結到前一個區塊,並使用證明工作的演算法會進行驗證

共識演算法Blockchain 技術集中的資料存放區和信任授權單位避免問題發生接受規定區塊加入與維護的通訊協定。他們這麼做,方法是強制 blockchain 共識演算法。有許多種共識演算法,我將討論證明工作 (PoW) 演算法的運作方式。

PoW 基礎概念網路上的節點必須證明其誠實目的產生成本,並使用解決運算資源的困難問題所需的時間。為了誘使這類系統中加入,播放其規則的節點,網路會提供 incentive — 通常 money — 也就是節點運算子收款將區塊加入至 blockchain 時。該賺錢,節點必須驗證所有的交易 (以確保它們符合 blockchain 特定規則),然後解決密碼編譯拼圖。

稍早所述的中央授權單位無法隨機指派的節點,來處理新交易的批次。該方法會需要中央的亂數產生器,可能有缺陷、 竊取或已停用。不過,提供節點困難的謎題,解決產生所需的效果:將第一次拼圖的節點無法判斷事先讓網路上的節點透的排序。沒有中央授權單位所需,而這就是其中一個索引鍵的創新的 blockchain 技術。我也會提及 blockchains 會分散,並因此提供 「 共謀抵抗。 」 PoW 花的時間和成本的運算能力更佳,因為它是任何單一節點或群組的節點舞弊網路上,並讓其他對等節點 blockchain 進行優勢幾乎不可能。(沒有建議共謀"51%攻擊"風險可能在一組節點最後會有 51%的運算能力,但採用 PoW 共識演算法可讓這類攻擊的可能性不可行)。

若要建構區塊的交易,節點 grabs 示範的未處理儲存在網路上的交易,並建置 Merkle 樹狀結構,才能計算 Merkle 根雜湊。因此,候選區塊包含交易,以及包括 Merkle 根雜湊值、 目前時間戳記和 PoW 難度等級 (以及有時其他標頭資料) 的區塊標頭的清單。然後,它必須解決 PoW 拼圖,這牽涉到計算整個 256 位元區塊雜湊值的兩個雜湊則尋找 32 位元數字,呼叫的 nonce,可以串連給它,以便產生 288 位元數字的雜湊產生的結果,具有 certain 前置的零數目。32 位元 nonce 有 0 到 2 的範圍32 (4,294,967,295),而不只嘗試猜測 nonce,通常會使用 nonce 0 來啟動,因此產生 sha-256 雜湊,並判定其是否有前置零的目標數目 (亦即,產生的雜湊是低於目標值)。如果沒有,節點就會遞增 nonce 值,並再次嘗試。如果節點嘗試所有的 nonce 值而不解決謎題,其重新計算的區塊雜湊值。這可確保不同的區塊雜湊值的實際執行,因為區塊雜湊計算中包含的區塊標頭中有時間戳記。在任何時候,節點可以選取新的區塊中的擱置中的交易包含不同的批次 (或加入新暫止的異動自上次檢查可能會出現),而這會變更 Merkle 根雜湊值,以及時間戳記變更新計算的區塊雜湊值。區塊雜湊會重新計算,每次節點逐一查看所有 4 billion-plus nonce 一次。

時間,網路上的某些節點即可解決其密碼編譯拼圖。這樣做,當加入新區塊的結尾 (每個節點都會維護一份 blockchain) blockchain 其副本然後再廣播網路上的每個節點到新的區塊,以便他們可以更新其 blockchain 複本。當節點廣播新區塊時,其他節點不只是信任的新區塊無效,它們,證明它自己的驗證區塊。若要驗證,節點只會驗證的 PoW 拼圖解決方案,藉由計算該區塊的 sha-256 雜湊與 nonce 值串連並驗證回應會產生具有該區塊 PoW 難度值所指定的前置零的數字的雜湊。

順帶一提,在某些 blockchains,PoW 難度值會持續調整通訊協定如此 blockchain 中加入新的區塊以指定的時間間隔。這項持續調整是必要的因為節點會不斷出現消失從網路及因此平均的計算能力的節點會一直改變。請記住,PoW 中,將區塊新增至 blockchain,讓節點的系統管理員通常加強其硬體才能競爭深獲肯定的動機。上 Bitcoin blockchain,難度值被強制每 2016年區塊,以便區塊繼續將加入的每個區塊的 10 分鐘的平均速率。

有時在發生分支。這是因為在大型網路中,新區塊的傳播花的時間。有可能,期間傳播,另一個節點可以解決其 PoW 謎題,加入新區塊 blockchain,其副本然後廣播網路上的該 blockchain。接收節點一律將無效的區塊加入 blockchain 其複本,而每個區塊密碼編譯方面有行動網卡上一個區塊,因為兩個不同節點所發行的兩個新區塊會連結至相同的區塊結尾的分支鏈結。不過,這是 [確定]。經過一段時間,節點會加入新的區塊結尾的通訊協定認為是 「 最長鏈 」。 例如,給定分支,最長的鏈結無法定義為具有最新的區塊的時間戳記。經過一段時間,單一的分支將會在長度戰勝和區塊已放棄 (短) 的分支將會移除,它們的交易傳回至集區的未處理的交易。

總結

在本文中,我已示範如何建構公用 blockchain 所組成的密碼編譯連結的區塊,其中每一個都包含它自己的雜湊鏈結的密碼編譯連結交易 — 非集中式的對等網路的節點上。我在未嘗試焦點放在任何單一實作,但改為專注於某些較為典型的技術功能,它們會共用涵蓋 blockchain 技術的基本概念。如果您想要瀏覽主題,則建議您選擇特定 blockchain 技術,例如 Bitcoin、 Ethereum 或 Ripple,並嘗試主要其特定的實作詳細資料。如果您想要試驗 blockchains 自己,看看 Azure 託管 blockchain 供應項目在bit.ly/2Gj2zaC


Jonathan Waldman是 Microsoft 認證的人員誰曾與 Microsoft 技術自其開始和人員在軟體 ergonomics 特製化。Waldman Pluralsight 技術團隊的成員,而且他目前領導機構和私用磁區軟體開發專案。他可以在達到jonathan.waldman@live.com

 非常感謝下列 Microsoft 技術專家檢閱這篇文章:James McCaffrey


MSDN Magazine 論壇中的這篇文章的討論