在昨天我們提到,要在資源受限的環境下建構區塊鏈,必須捨棄沉重的現成框架從零開始。但無論架構再怎麼輕量,區塊鏈之所以被稱為「信任的機器」,完全是建立在幾項核心的密碼學技術之上。
今天我們就來複習三個建構區塊鏈最關鍵的密碼學基礎:Hash、非對稱加密與數位簽章。
在區塊鏈中的應用:
在我們規劃的物聯網架構中,感測器收集到的每一筆資料都可以視為一筆「交易」。區塊鏈會將這些交易打包成區塊,並計算出這個區塊的 Hash 值。最重要的是,每一個新區塊都會包含「前一個區塊的 Hash 值」。這樣一來,只要有惡意節點試圖竄改歷史資料,該區塊的 Hash 值就會改變,進而導致後續所有區塊的 Hash 值全部失效,輕易就能被網路中的其他節點識破。
非對稱加密:公鑰與私鑰的華爾滋
傳統的對稱加密是雙方共用同一把鑰匙來加解密,這在去中心化的網路中要安全地交換鑰匙幾乎是不可能的任務。而非對稱加密則給了每個人一對鑰匙:公鑰與私鑰。
公鑰:可以公開給所有人看,在區塊鏈中,它通常會被轉換成你的「錢包地址」或是「節點身分」。
私鑰:絕對不能外洩的最高機密,代表著你對這個地址或資料的絕對控制權。
規則很簡單:用公鑰加密的資料,只有對應的私鑰解得開;反之亦然。在多數區塊鏈中,最常使用的是橢圓曲線密碼學,因為它能以較短的金鑰長度提供極高的安全性,這點對於我們之後要實作輕量級架構來說非常有利。
數位簽章:證明「這真的是我發送的」
有了 Hash 和非對稱加密,我們就能組合成區塊鏈交易中最核心的防護機制——數位簽章。
想像一下,當一個水下感測節點要廣播一筆資料到網路上時,其他節點怎麼知道這筆資料真的是由該節點發出的,而不是駭客偽造的?
運作流程如下:
簽章產生:發送節點先將要傳送的「交易資料」透過 Hash 函數算出一組 Hash 值。接著,發送節點用自己的「私鑰」將這組 Hash 值加密,這個加密後的結果就是「數位簽章」。
廣播:發送節點將「原始交易資料」加上「數位簽章」一起廣播到網路上。
驗證:接收節點收到後,會做兩件事來進行比對:
第一步:用發送節點公開的「公鑰」來解密數位簽章,還原出 Hash 值 A。
第二步:自己把收到的「原始交易資料」丟進 Hash 函數,算出 Hash 值 B。
如果 Hash A 等於 Hash B,就完美證明了這筆交易確實是由擁有該私鑰的節點所發出,且資料在傳輸過程中完全沒有被竄改。
小結
Hash 確保了資料的完整性與區塊的鏈接;非對稱加密確立了帳戶的控制權;數位簽章則保障了交易的真實性與不可否認性。把這三個武器組合在一起,我們就能在沒有中心化伺服器的環境下,建立起堅不可摧的信任網路。