什麼是區塊鏈?
區塊鏈是作爲去中心化數位分類帳運行的資料記錄清單。資料按時間順序儲存在區塊中,並使用加密技術進行保護。
第一個區塊鏈模型創建於 20 世紀 90 年代初,當時電腦科學家 Stuart Haber 和物理學家 W. Scott Stornetta 決定在區塊鏈上使用密碼學來保護數位文件免遭篡改。
他們的工作啓發了許多程序員和密碼學愛好者,最終導致比特幣成爲第一個去中心化電子貨幣系統(或者簡稱爲第一個加密貨幣)。
儘管區塊鏈技術比加密貨幣要古老得多,但其潛力直到 2008 年比特幣出現後才被意識到。從那時起,人們對它的興趣與日俱增,加密貨幣也越來越被接受。
區塊鏈技術主要用於記錄加密貨幣交易,但它也適用於不同類型的數字數據,並且可以執行多種任務。最古老、最安全和流行的區塊鏈網絡是比特幣,它結合了密碼學和博弈論。
區塊鏈如何運作?
在加密貨幣的背景下,區塊鏈由穩定的區塊鏈組成,每個區塊都包含先前確認的交易列表。 由於區塊鏈網絡由世界各地的許多計算機維護,因此它充當去中心化數據庫或分類帳。這意味着每個參與者(節點)存儲區塊鏈數據的副本,並與其他節點交互以確認塊中的信息匹配。
因此,區塊鏈交易發生在全球點對點網絡上,這使得比特幣成爲一種不受限制且抗審查的去中心化數字貨幣。此外,大多數區塊鏈系統不需要信任,也不受單一管理機構的控制。
幾乎每個區塊鏈的核心都是基於哈希算法的挖掘過程。比特幣使用 SHA-256 算法(256 位安全哈希算法)。它接受任意長度的輸入並生成固定長度的輸出。輸出稱爲散列,在本例中,始終爲 64 個字符(256 位)。
無論該過程重複多少次,相同的輸入都會導致相同的輸出。但是,如果稍微改變輸入數據,輸出就會完全不同。因此,在加密貨幣世界中,大多數哈希函數都是確定性和單向的。
單向性意味着幾乎不可能從輸出數據計算出輸入數據。人們只能猜測輸入的內容,但猜測該信息的機會極低。這保證了比特幣區塊鏈的安全。
讓我們以一個簡單的交易爲例來看看區塊鏈是如何工作的。
讓我們想象一下,愛麗絲和鮑勃的資產負債表上有幾個比特幣。 Alice 欠 Bob 2 個比特幣。
爲了發送它們,Alice 將包含交易的消息發送給網絡中的所有礦工。
在這筆交易中,愛麗絲告訴礦工鮑勃的地址和她想要發送的比特幣數量,以及數字簽名和她的公鑰。簽名是使用愛麗絲的私鑰進行的,並確認她是這些硬幣的所有者。
礦工必須驗證交易的有效性,然後將其與其他交易結合起來,並嘗試使用 SHA-256 算法創建區塊。輸出必須從一定數量的0開始,這取決於所謂的“難度”和網絡的計算能力。
爲了獲得開頭具有正確數量的 0 的輸出哈希,礦工在運行算法之前將所謂的隨機數添加到塊中。由於輸入的微小變化會完全改變輸出,因此礦工會嘗試不同的組合,直到找到所需的哈希值。
創建區塊後,礦工將其廣播給其他礦工。然後,他們檢查該塊的有效性,以便將其添加到區塊鏈副本中並完成交易。礦工還將前一個塊的輸出哈希值包含在塊中,以便將所有塊鏈接在一起形成一種鏈,即區塊鏈。區塊鏈信任系統就是建立在這個機制之上的。
每個礦工在自己的計算機上存儲一份區塊鏈的副本,對區塊鏈的信任程度取決於投入的算力及其長度。如果礦工更改了前一個區塊中的交易,則該區塊的輸出哈希值也會發生變化,從而導致其之後的所有哈希值發生變化。然後礦工將不得不重做所有工作才能使他的區塊鏈被接受爲有效。爲了欺騙系統,攻擊者需要接管網絡50%以上的算力,這幾乎是不可能的。此類網絡攻擊稱爲 51% 攻擊。
通過計算機的工作來生產區塊的模型稱爲工作量證明(PoW)。還有其他模型,例如權益證明(PoS),不需要太多的計算能力並且消耗更少的電力,爲許多用戶提供可擴展性。
