區塊鏈如何運作?

B鎖鏈技術可能是互聯網本身以來的最佳發明。它允許在不需要信任或中央權限的情況下進行價值交換。想象一下你和我在明天的舊金山天氣下注50美元。我打賭它會晴天,你會下雨。今天我們有三個選項來管理這個交易:

  1. 我們可以相互信任。多雨或晴天,失敗者將給勝利者50美元。如果我們是朋友,這可能是管理它的好方法。但是,朋友或陌生人,一個人很容易不付錢給對方。
  2. 我們可以將賭注變成合約。合同到位後,雙方都更容易支付。但是,如果兩人中的任何一方決定不付款,勝訴者將不得不支付額外的錢來支付法律費用,而法庭案件可能需要很長時間。特別是對於少量現金,這似乎不是管理交易的最佳方式。
  3. 我們可以讓中立的第三方參與進來。我們每個人都給第三方50美元,他們將把總金額給予勝利者。但是,嘿,她還可以用我們所有的錢逃跑。因此,我們最終選擇了前兩個選項之一:信任合同

信任和合同都不是最佳解決方案:我們不能相信陌生人,執行合同需要時間和金錢。區塊鏈技術很有意思,因為它為我們提供了安全,快速和便宜的第三種選擇。

Blockchain允許我們編寫幾行代碼,一個在區塊鏈上運行的程序,我們兩人都發送50美元。該程序將保證100美元的安全,並在幾個數據源上自動檢查明天的天氣。晴天或下雨,它會自動將全部金額轉移給獲勝者。每一方都可以檢查合同邏輯,一旦它在區塊鏈上運行,就無法更改或停止。對於50美元的賭注來說,這可能是太多的努力,但想象一下賣房子或公司。

這篇文章解釋了區塊鏈如何在不深入討論技術細節的情況下工作,而是通過挖掘足以讓您對基礎邏輯和機制有一個大概的瞭解。


比特幣的基礎知識

區塊鏈技術最著名和最常見的應用是比特幣,一種可用於交換產品和服務的數字貨幣,就像美元,歐元,人民幣和其他國家貨幣一樣。讓我們使用區塊鏈技術的第一個應用來了解它的工作原理。

“比特幣第一次為我們提供了一種方式,讓一個互聯網用戶將一個獨特的數字資產轉移給另一個互聯網用戶,這樣就確保轉移安全可靠,每個人都知道轉移已經發生,任何人都無法挑戰轉移的合法性。這一突破的後果難以誇大。“

- 馬克安德森


一個比特幣是比特幣(BTC)數字貨幣的單個單位。就像一美元一樣,比特幣本身沒有任何價值; 它的價值只是因為我們同意交易商品和服務以使我們能夠控制更多的貨幣,我們相信其他人也會這樣做。

為了跟蹤我們每個人擁有的比特幣數量,區塊鏈使用分類賬,一個跟蹤所有比特幣交易的數字文件。

區塊鏈如何運作?

圖1 - 簡化了比特幣分類帳數字文件

分類帳文件不存儲在中央實體服務器(如銀行)或單個數據中心中。它通過私人計算機網絡分佈在世界各地,這些計算機既存儲數據又執行計算。這些計算機中的每一個都代表區塊鏈網絡的“ 節點 ”,並具有分類帳文件的副本。

如果大衛想要將比特幣發送給桑德拉,他會向網絡廣播一條消息,稱他的帳戶中的比特幣金額應該下降5比特幣,而桑德拉帳戶中的金額應該增加相同數量。網絡中的每個節點都將接收消息並將請求的事務應用於其分類帳副本,從而更新帳戶餘額。

區塊鏈如何運作?

圖2 - 簡化了交易請求消息

分類賬由一組連接的計算機而不是像銀行這樣的集中式實體維護的事實有幾個含義:

  • 在我們的銀行系統中,我們只知道自己的交易和賬戶餘額; 在區塊鏈上,每個人都可以看到其他人的交易。
  • 雖然您通常可以信任您的銀行,但比特幣網絡是分發的,如果出現問題,則無需致電服務檯或任何人起訴。
  • 區塊鏈系統的設計使得不需要信任; 通過特殊的數學函數和代碼獲得安全性和可靠性。

我們可以將區塊鏈定義為允許一組連接的計算機維護單個更新且安全的分類帳的系統。為了在區塊鏈上執行交易,您需要一個錢包,一個允許您存儲和交換比特幣的程序。由於只有您能夠使用比特幣,每個錢包都受到特殊加密方法的保護,該方法使用一對獨特但連接的密鑰:私鑰和公鑰。

如果使用特定公鑰加密消息,則只有配對私鑰的所有者才能解密並讀取該消息。反之亦然:如果使用私鑰加密郵件,則只有配對的公鑰才能解密。當David想要發送比特幣時,他需要廣播用他錢包的私鑰加密的消息。由於大衛是唯一一個知道解鎖錢包所需的私鑰的人,所以他是唯一可以花費他的比特幣的人。網絡中的每個節點都可以通過使用其錢包的公鑰解密消息來交叉檢查交易請求是否來自David。

使用錢包的私鑰加密事務請求時,您將生成一個數字簽名,區塊鏈計算機使用該簽名來驗證事務的來源和真實性。數字簽名是由您的交易請求和您的私鑰產生的一串文本; 因此它不能用於其他交易。如果您更改了交易請求消息中的單個字符,則數字簽名將會更改,因此任何潛在的攻擊者都無法更改您的交易請求或更改您發送的比特幣數量。

區塊鏈如何運作?

圖3 - 簡化了數字簽名事務加密

要發送比特幣,您需要證明您擁有特定錢包的私鑰,因為您需要密鑰來加密您的交易請求消息。由於您僅在加密後廣播郵件,因此您永遠不必洩露您的私鑰。

跟蹤您的電子錢包餘額

區塊鏈中的每個節點都保留了分類帳的副本那麼,節點如何知道您的帳戶餘額?區塊鏈系統根本不跟蹤賬戶餘額; 它僅記錄經過驗證和批准的每個事務。實際上,分類賬不跟蹤餘額,它只跟蹤比特幣網絡內廣播的每筆交易(圖4)。要確定您的錢包餘額,您需要分析並驗證連接到錢包的整個網絡上發生的所有交易。

區塊鏈如何運作?

圖4 - 區塊鏈分類帳

此“餘額”驗證基於先前交易的鏈接執行。為了向John發送10個比特幣,Mary必須生成一個交易請求,其中包含指向至少10個比特幣的先前傳入交易的鏈接。這些鏈接稱為“輸入”。網絡中的節點驗證數量並確保尚未使用這些輸入。事實上,每次您在交易中引用輸入時,它們都被視為對任何未來交易無效。這全部在Mary的錢包中自動執行,並由比特幣網絡節點進行雙重檢查; 她只使用他的公鑰向John的錢包發送10 BTC交易。

圖5 - 區塊鏈交易請求結構

那麼,系統如何信任輸入事務是否有效?它會檢查與您用於通過輸入引用發送比特幣的錢包相關的所有先前交易。為了加速驗證過程,網絡節點保留未花費的事務的特殊記錄。由於這種安全檢查,不可能再花費比特幣。

擁有比特幣意味著在分類帳中寫入的交易指向您的錢包地址,但尚未用作輸入。在比特幣網絡上執行交易的所有代碼都是開源的; 這意味著任何擁有筆記本電腦和互聯網連接的人都可以進行交易。但是,如果用於廣播事務請求消息的代碼中存在錯誤,則相關的比特幣將永久丟失。

請記住,由於網絡是分佈式的,因此沒有客戶支持電話,也沒有任何人可以幫助您恢復丟失的交易或忘記錢包密碼。因此,如果您有興趣在比特幣網絡上進行交易,最好使用比特幣錢包軟件的開源和官方版本(比如比特幣核心),並將錢包的密碼或私鑰存儲在一個非常好的位置。安全存儲庫。

但它真的安全嗎?為什麼稱它為區塊鏈?

任何人都可以通過匿名連接(例如,TOR網絡或VPN網絡)訪問比特幣網絡,並提交或接收僅顯示其公鑰的交易。但是,如果有人反覆使用相同的公鑰,則可以將所有事務連接到同一所有者。比特幣網絡允許您生成任意數量的錢包,每個錢包都有自己的私鑰和公鑰。這允許您接收不同錢包的付款,並且除非您將所有收到的比特幣發送到單個錢包,否則任何人都無法知道您擁有所有這些錢包的私鑰。

可能的比特幣地址總數是2 15或1461501637330902918203684832716283019655932542976。

這個龐大的數字可以保護網絡免受可能的攻擊,同時允許任何人擁有錢包。

通過這種設置,仍然存在一個主要的安全漏洞,可以在花費它們之後用它來調用比特幣。事務在網絡中從節點傳遞到節點,因此兩個事務到達每個節點的順序可以不同。攻擊者可以發送交易,等待對方運送產品,然後將反向交易發送回自己的帳戶。在這種情況下,一些節點可以在第一個事務之前接收第二個事務,因此認為初始支付事務無效,因為事務輸入將被標記為已經花費。您如何知道首先要求的交易?按時間戳訂購交易是不安全的因為它很容易被偽造。因此,沒有辦法判斷交易是否發生在另一個交易之前,這就開闢了欺詐的可能性。

如果發生這種情況,網絡節點之間就每個接收的交易順序存在分歧。因此,區塊鏈系統被設計為使用節點協議來訂購交易並防止上述欺詐。

比特幣網絡通過將交易分組為塊來對交易進行排序; 每個塊包含一定數量的事務和前一個塊的鏈接。這就是將一個塊一個接一個地放在一起的原因。因此,塊被組織成一個與時間相關的鏈(圖6),它給出了整個系統的名稱:區塊鏈

圖6-簡化了鏈鏈序列結構

同一塊中的事務被認為是同時發生的,並且尚未在塊中的事務被認為是未經證實的。每個節點都可以將事務分組到一個塊中,並將其廣播到網絡,作為下一個塊的建議。由於任何節點都可以建議一個新的塊,系統如何確定下一個塊應該是哪個塊?

要添加到區塊鏈,每個塊 必須包含使用不可逆加密哈希函數創建的複雜數學問題的答案。解決這種數學問題的唯一方法是猜測隨機數,結合先前的塊內容,生成定義的結果。一臺典型的計算機可能需要大約一年的時間來猜測正確的數字並解決數學問題。但是,由於網絡中有大量計算機正在猜測數字,因此平均每10分鐘就會解決一個塊。解決數學問題的節點獲得將下一個塊放置在鏈上並將其廣播到網絡的權利。

如果兩個節點同時解決問題並同時將其塊發送到網絡怎麼辦?在這種情況下,兩個塊都是廣播的,每個節點都建立在它首先接收的塊上。但是,區塊鏈系統要求每個節點立即構建可用的最長區塊鏈。因此,如果關於哪個是最後一個塊存在歧義,則一旦解決了下一個塊,每個節點將採用最長鏈作為唯一選項。

圖7 - 鏈模糊度邏輯的結束

由於同時解決塊的概率很低,幾乎不可能一次又一次地解決多個塊,構建不同的“尾部”,因此整個區塊鏈可以快速穩定到每個節點同意的一個塊的塊。 。

關於哪個區塊代表鏈尾的結束的分歧再次開啟了欺詐的可能性。如果事務恰好位於屬於較短尾部的塊中(如圖7中的塊B),則一旦解決了下一個塊,此事務以及其塊中的所有其他事務將返回到未確認的事務。

比特幣區塊鏈系統中的交易受到數學競賽的保護:任何攻擊者都在與整個網絡競爭。

讓我們看看瑪麗如何利用這種鏈終點模糊來執行雙重支出攻擊。瑪麗向約翰匯款,約翰將產品寄給瑪麗。由於節點總是採用較長的尾部作為已確認的事務,如果Mary可以生成包含具有相同輸入引用的反向事務的較長尾部,那麼John將不再是他的錢和他的產品。

圖8 - 瑪麗的雙重支出攻擊

系統如何防止這種欺詐?每個塊包含對前一個塊的引用 (參見圖6)。該引用是需要解決的數學問題的一部分,以便將以下塊擴展到網絡。因此,由於解決塊所需的大量隨機猜測並將其放置在區塊鏈上,因此預先計算一系列塊非常困難。Mary正在與網絡的其他部分進行競爭,以解決數學問題,使她能夠將下一個塊放在鏈上。即使她在其他人之前解決了這個問題,她也不可能連續解決兩個,三個或更多的障礙,因為每次她都在與整個網絡競爭。

Mary可以使用超高速計算機生成足夠的隨機猜測,以便在解決塊時與整個網絡競爭嗎?是的,但即使使用非常非常快的計算機,由於網絡中的成員數量眾多,瑪麗極不可能在執行雙重支出攻擊所需的確切時間內連續解決幾個塊。

她需要控制整個網絡50%的計算能力才能有50%的機會在某個其他節點之前解決一個塊 - 即使在這種情況下,她只有25%的幾率解決了兩個塊連續。連續解決的障礙越多,她成功的概率就越低。比特幣區塊鏈系統中的交易受到數學競賽的保護:任何攻擊者都在與整個網絡競爭。

因此,隨著時間的推移,交易越來越安全 例如,在一小時前確認的區塊中包含的區域比在過去10分鐘內確認的區塊中的區域更安全由於塊平均每10分鐘被添加到鏈中,因此一小時前第一次包含在塊中的事務很可能已被處理並且現在是不可逆轉的。

圖9 - 區塊鏈交易安全性

挖掘比特幣

要發送比特幣,您需要將傳入的交易引用到您自己的錢包中。這適用於整個網絡中的每個單一事務。那麼,比特幣首先來自哪裡?

作為平衡由於軟件錯誤和錢包密碼丟失而導致比特幣的通縮性質的一種方式,對於解決每個塊的數學問題的人給予獎勵。運行比特幣區塊鏈軟件以獲得這些比特幣獎勵的活動被稱為“採礦” - 它非常像採礦黃金。

獎勵是私人操作節點的主要動機,從而為處理交易和穩定區塊鏈網絡提供必要的計算能力。

因為典型的計算機需要很長時間才能解決一個塊

(平均大約一年),所以節點組合在一起,分組猜測次數以解決下一個塊。作為一個小組工作,加快了猜測正確數字和獲得獎勵的過程,然後在小組成員之間共享。這些組稱為挖掘池。

其中一些採礦池非常龐大,佔整個網絡計算能力的20%以上。這對網絡安全有明顯的影響,如上面的雙花費攻擊示例所示。即使這些池中的一個可能獲得50%的網絡計算能力,一個塊進一步沿著鏈路返回,其中的事務變得越安全。

然而,其中一些具有強大計算能力的採礦池決定限制其成員以保護整體網絡安全。

由於技術創新和節點數量的增加,整體網絡計算能力可能會隨著時間的推移而增加,因此區塊鏈系統重新校準解決下一個塊的數學難度,使整個網絡的平均目標定為10分鐘。這確保了網絡的穩定性和整體安全性。

此外,每四年一次,塊獎勵減少一半,因此隨著時間的推移,挖掘比特幣(運行網絡)變得不那麼有趣了。為了鼓勵節點繼續運營,每筆交易都可以附加小額獎勵; 這些獎勵由成功包含塊中的此類事務的節點收集並解決其數學問題。由於這種機制,與較高獎勵相關聯的交易通常比與較低獎勵相關聯的交易處理得更快。這意味著,在發送交易時,您可以決定是否要更快(更昂貴)或更便宜(需要更多時間)處理它。與銀行收費相比,比特幣網絡中的交易費用目前非常小,而且與交易金額無關。

區塊鏈的好處和挑戰

既然您對區塊鏈的工作方式有了一般性的瞭解,那麼讓我們快速瞭解一下它為何如此有趣。

使用區塊鏈技術具有顯著的優勢:

  • 您可以完全控制自己擁有的價值; 沒有第三方持有您的價值或限制您訪問它。
  • 在地球上任何地方執行價值交易的成本非常低。這允許小額支付。
  • 價值可以在幾分鐘內轉移,交易可以在幾小時後被認為是安全的,而不是幾天或幾周。
  • 任何人都可以隨時驗證區塊鏈上的每筆交易,從而實現完全透明。
  • 利用區塊鏈技術構建分散的應用程序是可能的,這些應用程序能夠快速,安全地管理信息和傳輸價值。

但是,有一些挑戰需要解決:

  • 可以匿名發送和接收交易。這樣可以保護用戶隱私,但也允許在網絡上進行非法活動。
  • 儘管許多交易平臺正在興起,數字貨幣越來越受歡迎,但用比特幣換取商品和服務仍然不容易。
  • 與許多其他加密貨幣一樣,比特幣非常不穩定:市場上可用的比特幣不多,而且需求正在快速變化。比特幣價格不穩定,根據加密貨幣行業的大型活動或公告而變化。

總體而言,區塊鏈技術有可能徹底改變從廣告到能源分配的多個行業。它的主要力量在於其分散性和消除信任需求的能力。

新的用例一直在出現 - 就像創建一個完全分散的平臺,運行像以太坊這樣的智能合約的可能性。但重要的是要記住,該技術仍處於起步階段。每天都在開發新工具以提高區塊鏈安全性,同時提供更廣泛的功能,工具和服務。


有用的鏈接

  • 獲得自己的比特幣錢包
  • 購買你的第一個比特幣
  • 開始挖掘比特幣作為初學者或專業人士
  • 瞭解有關分散應用程序的更多信息
  • 使用Ledger錢包確保您的比特幣安全,遠離黑客


分享到:


相關文章: