什麼是區塊鏈?

簡而言之,區塊鏈是作爲去中心化數字分類賬的數據記錄列表。數據被組織成塊,這些塊按時間順序排列並通過密碼學保護。

區塊鏈的最早模型是在 20 世紀 90 年代初創建的,當時計算機科學家 Stuart Haber 和物理學家 W. Scott Stornetta 在區塊鏈中採用了加密技術,作爲保護數字文檔免遭數據篡改的方法。

Haber 和 Stornetta 的工作無疑啓發了許多其他計算機科學家和密碼學愛好者的工作 - 最終導致比特幣作爲第一個去中心化電子現金系統(或簡稱爲第一個加密貨幣)的誕生。

儘管區塊鏈技術比加密貨幣更古老,但直到 2008 年比特幣誕生後,它的潛力纔開始被認識到。從那時起,人們對區塊鏈技術的興趣逐漸增長,加密貨幣現在得到了更大規模的認可。

區塊鏈技術主要用於記錄加密貨幣交易,但它適用於許多其他類型的數字數據,並且可以應用於廣泛的用例。最古老、最安全、最大的區塊鏈網絡是比特幣,它的設計巧妙地將密碼學和博弈論結合在一起。


區塊鏈如何運作?

在加密貨幣的背景下,區塊鏈由穩定的區塊鏈組成,每個區塊都存儲先前確認的交易列表。由於區塊鏈網絡是由分佈在世界各地的無數計算機維護的,因此它充當去中心化數據庫(或分類帳)。這意味着每個參與者(節點)都維護區塊鏈數據的副本,並且它們相互通信以確保它們都位於同一頁面(或塊)上。

因此,區塊鏈交易發生在點對點全球網絡內,這使得比特幣成爲無國界且抗審查的去中心化數字貨幣。此外,大多數區塊鏈系統被認爲是無需信任的,因爲它們不需要任何類型的信任。沒有單一的權威機構來控制比特幣。

幾乎每個區塊鏈的核心部分都是依賴於哈希算法的挖掘過程。比特幣使用 SHA-256 算法(安全哈希算法 256 位)。它接受任意長度的輸入並生成始終具有相同長度的輸出。生成的輸出稱爲“哈希”,在這種情況下,始終由 64 個字符(256 位)組成。

因此,無論該過程重複多少次,相同的輸入都會產生相同的輸出。但如果對輸入進行微小的改變,輸出就會完全改變。因此,哈希函數是確定性的,在加密貨幣世界中,大多數哈希函數都被設計爲單向哈希函數。

作爲單向函數意味着幾乎不可能從輸出計算出輸入是什麼。人們只能猜測輸入是什麼,但猜對的機率極低。這就是比特幣區塊鏈安全的原因之一。

現在我們知道了該算法的作用,讓我們通過一個簡單的交易示例來演示區塊鏈如何工作。

想象一下,我們有愛麗絲和鮑勃以及他們的比特幣餘額。假設愛麗絲欠鮑勃 2 個比特幣。

爲了讓 Alice 向 Bob 發送 2 個比特幣,Alice 向網絡中的所有礦工廣播一條包含她想要進行的交易的消息。

在該交易中,愛麗絲向礦工鮑勃提供了地址和她想要發送的比特幣數量,以及數字簽名和她的公鑰。簽名是用愛麗絲的私鑰進行的,礦工可以驗證愛麗絲實際上是這些代幣的所有者。

一旦礦工確定交易有效,他們就可以將其與許多其他交易一起放入一個區塊中,並嘗試挖掘該區塊。這是通過將塊通過 SHA-256 算法來完成的。輸出需要以一定數量的 0 開頭才能被視爲有效。所需的 0 數量取決於所謂的“難度”,“難度”根據網絡上的計算能力而變化。

爲了在開始時生成具有所需數量的 0 的輸出哈希,礦工在運行算法之前將所謂的“隨機數”添加到塊中。由於輸入的微小變化會完全改變輸出,因此礦工會嘗試隨機隨機數,直到找到有效的輸出哈希。

一旦區塊被開採,礦工就會將新開採的區塊廣播給所有其他礦工。然後,他們檢查以確保該塊有效,以便他們可以將其添加到區塊鏈副本中,並且交易完成。但在區塊中,礦工還需要包含前一個區塊的輸出哈希,以便所有區塊都捆綁在一起,因此稱爲區塊鏈。由於信任在系統中的運作方式,這是一個重要的部分。

每個礦工的計算機上都有自己的區塊鏈副本,每個人都信任投入最多計算工作的區塊鏈,即最長的區塊鏈。如果礦工更改了前一個塊中的交易,則該塊的輸出哈希值將發生變化,這會導致該塊之後的所有哈希值也發生變化,因爲這些塊與哈希值相似。礦工必須重做所有工作,才能讓任何人接受他的區塊鏈是正確的。所以如果一個礦工想要作弊,他需要超過50%的網絡算力,這是非常不可能的。像這樣的網絡攻擊因此被稱爲 51% 攻擊。

讓計算機工作以生成區塊的模型稱爲工作量證明(PoW),還有其他模型,例如權益證明(PoS),它們不需要太多的計算能力,並且需要更少的電力同時能夠擴展到更多用戶。