什麼是區塊鏈?
總之,區塊鏈是一個數據記錄列表,其功能類似於去中心化數據庫。數據被組織成塊,這些塊按時間順序排序並以加密方式保護。
區塊鏈的第一個概念誕生於 20 世紀 90 年代初,當時計算機科學家 Stuart Haber 和物理學家 W. Scott Stornetta 在區塊鏈中使用加密技術來保護數字文檔免遭數據篡改。
Haber 和 Stornetta 的工作無疑啟發了許多其他電腦科學家和密碼學愛好者,最終導致了比特幣的誕生,這是第一個去中心化電子貨幣系統(也是第一個加密貨幣)。
儘管區塊鏈技術比加密貨幣更古老,但直到 2008 年比特幣的誕生,它的潛力才開始被認識到。從那時起,人們對區塊鏈技術的興趣逐漸增加,加密貨幣現在正在更大規模地得到認可。
區塊鏈技術最常用於記錄加密貨幣交易,但它也適用於許多其他類型的數位數據,並且可以應用於廣泛的用例。最古老、最安全和最大的區塊鏈網路是比特幣,它是採用密碼學和博弈論的平衡組合設計的。
區塊鏈如何運作?
在加密貨幣的背景下,區塊鏈由一系列區塊組成,每個區塊都儲存先前確認的交易列表,由於區塊鏈網路是由分佈在世界各地的無數電腦維護的,因此它充當去中心化資料庫。這意味著參與者(或節點)每個人都維護區塊鏈資料的副本並相互溝通以確保它們位於同一頁(或區塊)上。
因此,區塊鏈交易發生在全球點對點網路內,這使得比特幣成為去中心化、無國界且抗審查的數位貨幣。此外,大多數區塊鏈系統被認為是無需信任的,因為它們不需要任何信任。沒有單一機構控制比特幣。
幾乎所有區塊鏈的核心要素是挖掘過程,它依賴於哈希演算法。比特幣使用 256 位元安全哈希演算法 (SHA-256)。它接受任意長度的輸入並產生始終具有相同長度的輸出。產生的輸出稱為“雜湊”,在本例中它始終是 64 個字元(256 位元)。
因此,無論該過程重複多少次,相同的輸入都會產生相同的輸出。但如果對輸入進行微小的改變,輸出就會完全改變。因此,哈希函數是確定性的,在加密貨幣領域,大多數雜湊函數都被設計為單向雜湊函數。
作為單向函數意味著幾乎不可能從輸出計算輸入。人們只能猜測該條目是什麼,但猜對的機會極低。這是比特幣區塊鏈安全的原因之一。
現在我們知道了演算法的作用,讓我們透過一個簡單的範例交易來展示區塊鏈如何運作。
想像一下,愛麗絲和鮑伯各自擁有比特幣餘額。假設愛麗絲欠鮑伯 2 個比特幣。
為了讓 Alice 可以向 Bob 發送這 2 個比特幣,她向網路上的所有礦工廣播一條包含她想要進行的交易的訊息。
在這筆交易中,愛麗絲將鮑伯的地址和她想要發送的比特幣數量以及數位簽章和她的公鑰提供給礦工。簽名是用愛麗絲的私鑰進行的,礦工可以驗證愛麗絲是這些比特幣的所有者。
一旦礦工確定交易有效,他們就可以將其與許多其他交易放在區塊中,並嘗試挖掘區塊。為此,該區塊需要接受 SHA-256 演算法的處理。輸出必須以一定數量的 0 開頭才能被視為有效。必要的 0 數量取決於所謂的“難度”,“難度”根據網路的計算能力而變化。
為了在開始時產生具有所需數量的 0 的輸出哈希,礦工在將其通過演算法之前將所謂的「隨機數」添加到區塊中。由於輸入的微小變化會完全改變輸出,因此礦工會嘗試隨機隨機數,直到找到有效的輸出哈希。
一旦區塊被開採,礦工就會向所有其他礦工廣播這個新開採的區塊。然後,他們驗證該區塊是否有效,以便將其添加到區塊鏈副本中,並且交易完成。但在區塊中,礦工還需要包含前一個區塊的輸出哈希,以便所有區塊連結在一起,因此稱為區塊鏈。由於信任在系統中的運作方式,這是一個重要的部分。
每個礦工在他們的電腦上都有自己的區塊鏈副本,每個人都信任在其上完成最多工作的區塊鏈,或運行時間最長的區塊鏈。如果礦工修改前一個區塊中的交易,則該區塊的輸出哈希值將發生變化,這將意味著後續區塊的所有哈希值都會被修改。礦工必須重做所有工作才能讓任何人接受他們的區塊鏈是正確的。因此,如果礦工想要作弊,他們需要超過 50% 的網路算力,這是非常不可能的。所以像這樣的網路攻擊稱為51%攻擊。
讓電腦工作來生產區塊的模型稱為工作量證明(PoW);還有其他模型,例如權益證明(PoS),它不需要太多的運算能力,並且需要更少的電力,同時能夠擴展到更多的用戶。
