加密貨幣如何使用密碼學?

密碼學初學者指南
當 Bitcoin 協議於 2009 年上線時,世界迎來了一種新型貨幣系統,其安全性和發行方式與傳統貨幣完全不同。
美元或日圓等法定貨幣的安全由對傳統銀行系統的信任所保障,並由各國的中央銀行發行。任何新貨幣的流通都基於各國政府決定的靈活貨幣政策。從某種意義上說,法定貨幣的背後是人們對個別國家的金融實力以及保護這種實力的軍隊的信任。
另一方面,Bitcoin 以及隨後在 Bitcoin 推出後創建的所有加密貨幣,都是使用「密碼學」的科學實踐來保障和發行的。
最終,Bitcoin 按照預設的、由電腦控制的貨幣政策運作,任何個人、公司或政府都無法改變。Bitcoin 用戶不信任政府或機構,而是信任密碼學和協議的透明規則集,這些規則使其無論市場價格或市場情緒如何,都能可靠地運作。

什麼是密碼學?
密碼學是研究資訊加密和解密的學問。簡而言之,它是一種改變訊息的實踐,使只有發送者和預期的接收者才能理解該訊息。
如果加密訊息被非預期接收者攔截,密碼學將使其幾乎不可能理解其中包含的資訊。
密碼學最早的例子之一可追溯到公元前 7 世紀,當時古希臘人將寫有秘密訊息的皮革條纏繞在棍子上——這種加密方法被稱為 scytale。一旦解開,皮革條上會有一串字母,只有擁有相同直徑棍子的人才能解讀。
在戰爭時期,密碼學在保護分佈式部隊之間可能被攔截的通訊方面發揮了至關重要的作用。在第二次世界大戰中,使用密碼學解讀來自 Enigma 密碼機的納粹加密無線電傳輸,對結束歐洲入侵起到了關鍵作用。
快進到今天,密碼學在 Bitcoin 等加密貨幣的安全和發行中扮演著基礎角色。
密碼學是加密貨幣的重要組成部分,用於:
- 創建 crypto wallet 密鑰對
- 透過挖礦過程發行新的 Bitcoin
- 數位簽署交易訊息
Bitcoin 如何使用密碼學?
網絡安全
用於挖礦 Bitcoin 的計算資源總和,有助於保護網絡免受網絡攻擊。這統稱為網絡的「hash rate」。網絡上的礦工越多,hash rate 就越高,透過 51% 多數壓倒網絡所需的計算能力就越大。
51% 攻擊是公共 blockchain 網絡面臨的最大威脅之一。能夠匯集足夠資源控制至少 51% blockchain hash rate 的惡意行為者,將能夠阻止入站交易、改變交易順序並雙重花費資金。然而,透過使過程在計算上變得困難,Bitcoin 網絡阻止了不良行為者控制網絡。
不可變性
SHA-256 雜湊也負責使基於 blockchain 的交易不可變。
一旦交易被打包成新區塊並由網絡中所有其他志願者驗證,每個交易訊息都會使用 SHA-256 密碼學演算法進行雜湊處理。
這些已經雜湊的交易隨後會系統地成對雜湊在一起,以創建所謂的「Merkle Tree」。交易對會不斷雜湊,直到最終區塊內的所有交易都由單一雜湊值表示。這個單一值成為 Merkle Root 並儲存在區塊標頭中。
由於雜湊是確定性的——這意味著相同的輸入將始終創建相同的唯一輸出值——任何不良行為者試圖更改交易區塊的嘗試都將導致全新的 Merkle Root 值。系統中的其他志願者將能夠看到更改後的 Merkle Root 與有效區塊相比,並拒絕它,從而一致地防止損壞。
無需信任的操作
密碼學演算法的確定性性質允許網絡用戶在無需信任中介來驗證和處理支付的情況下進行 Bitcoin 交易。
透過保持去中心化並消除人為干預,交易處理速度顯著加快,費用通常也比傳統銀行解決方案便宜得多。
Bitcoin 使用什麼密碼學?
生成私鑰和公鑰
Bitcoin 使用 elliptic curve cryptography (ECC) 和 Secure Hash Algorithm 256 (SHA-256) 從各自的私鑰生成公鑰。
公鑰用於創建 crypto wallet 地址以接收入站交易,而私鑰則用於簽署交易並證明資金所有權。
您可以將私鑰想像成您的銀行 PIN 碼,公鑰想像成您的銀行帳號。駭客需要兩者才能對您的財務做一些不當的事情。
私鑰是密鑰對的關鍵部分,儲存在 crypto wallet 中。從技術上講,crypto wallet 儲存的是個人對其加密資金的存取權限——而不是實際的加密貨幣本身。資金本身只是記錄在 blockchain 上的數據條目,可以使用儲存在您錢包中的密鑰進行識別和解鎖。
橢圓曲線密碼學
ECC 是使用一種水平對稱的特殊數學曲線。如果您在這條曲線上畫任何一條線,它最多會與形狀相交三次。ECC 是加密貨幣的重要組成部分,它允許用戶生成公鑰。
要生成 Bitcoin 密鑰對,您必須首先創建一個私鑰。
Bitcoin 私鑰是一個隨機生成的 256 位數字(介於 1 和 2²⁵⁶ 之間,即 2 的 256 次方——一個令人難以置信的巨大數字!)。在 Kraken 等服務上,這個數字在設置新的 crypto wallet 時會自動創建。
然後使用橢圓曲線乘法從這個數字生成公鑰。這涉及在橢圓曲線上取一個起點(稱為生成點)並將其乘以隨機私鑰數字,以在曲線上產生一個新點。
這個新點成為具有特定 x 和 y 座標的公鑰。在知道公鑰的情況下找到私鑰幾乎是不可能的,因為猜測一個隨機的 256 位數字會非常困難。正確猜到的機率大約是 150,000 億億億億億億億億分之一。
理論上,一台擁有超過 13,000,000 個物理 qubits 的量子電腦需要一天才能找到這個數字。迄今為止,世界上最先進的量子電腦之一,IBM Eagle 處理器,僅擁有 127 個 qubits(或所需 qubits 數量的 0.00097%)。
換句話說,加密貨幣使用的系統,至少目前是完全安全的。
SHA-256
要創建 Bitcoin wallet 地址,x 和 y 座標會透過 SHA-256 演算法處理。
這個密碼學雜湊函數由美國國家安全局 (NSA) 於 2001 年開發並發布,它基本上將任何輸入(在本例中為公鑰座標)轉換為唯一的、固定長度的 256 位代碼。
此代碼以 64 個字元的十六進制格式呈現,包含 0 到 9 的數字和 A-F 的字母混合。
ECC 和 SHA-256 密碼學函數被稱為「陷門」或「確定性」函數。這意味著它們只能單向運作,不能反轉以揭示原始輸入。
雖然可以從私鑰創建公鑰,但不可能反轉該過程並揭示私鑰。同樣,試圖發現用於創建 Bitcoin wallet 地址的公鑰也是如此。只有公鑰持有者擁有該資訊,並可以使用它來證明 Bitcoin wallet 地址的所有權。
需要更好的方式來理解這一點嗎?想像一下,有人從我們之前提到的 150,000 億億億億億億億億種選項中混合了各種不同顏色的油漆,以創建一種獨特的顏色。
如果您知道正確油漆的確切數量,您將能夠重現完全相同的顏色。但如果您不知道呢?試圖反轉這個過程幾乎是不可能的。
這本質上就是這些陷門密碼學函數的運作方式,以及它們如何使其輸入與輸出相比無法識別。
發行新的 Bitcoin
挖礦是 Bitcoin blockchain 採用的 proof-of-work 共識機制的一部分,用於選擇誠實的參與者來添加新的數據區塊。
它透過使用 SHA-256 雜湊來實現這一點。數千名網絡志願者——稱為挖礦節點——使用專門用於每秒生成數萬億個雜湊的電腦相互競爭。
礦工首先從鏈中最新的區塊中獲取區塊標頭——其中包含有關區塊的所有頂層資訊,包括其時間戳、礦工要擊敗的目標值和其他關鍵組件——並調整一個稱為 nonce 的數字。
Nonce 是一個助記符,代表只使用一次的數字。它是區塊標頭中可以更改以創建新雜湊值的部分。
基於密碼學的挖礦競賽的目標很簡單。礦工使用他們的機器自動調整區塊標頭中的 nonce 數字,並透過 SHA-256 雜湊演算法運行它以產生一個值。
任何礦工產生一個與目標值相比具有相同或更多零的值,即贏得競賽。如果該值沒有擊敗目標值,礦工會再次調整 nonce 數字,重新雜湊區塊標頭並產生一個新值。
這個過程會重複,直到有人成功。
新鑄造的 Bitcoin 會根據其創建者 Satoshi Nakamoto 預先編程到 Bitcoin 原始碼中的固定發行時間表,獎勵給每個成功的礦工。
密碼學在處理 Bitcoin 交易和透過挖礦過程確保網絡安全方面發揮著至關重要的作用。您可以查看 Kraken Learn Center 的文章什麼是 Bitcoin 挖礦?以了解更多資訊。
數位簽名
數位簽名對於允許發送者證明他們擁有特定公鑰的相應私鑰至關重要,而無需向任何人透露他們的私鑰。
Bitcoin 使用 elliptic curve digital signature algorithm (ECDSA) 以密碼學方式批准並從 crypto wallet 發送交易。
這涉及發送者獲取雜湊交易訊息——其中包含接收者的 wallet 地址、發送的 BTC 數量、任何附加費用以及 Bitcoin 的原始來源——將其私鑰添加到其中,並使用另一個單向數學過程創建數位簽名。
更具體地說,它涉及一個類似於前面提到的從私鑰創建公鑰的過程,並增加了一些額外的步驟。
創建一個隨機數(類似於私鑰),然後將其乘以用於創建 wallet 公鑰的相同生成點,以在橢圓曲線上創建一個新點。我們稱之為點 A。
然後將點 A 的 X 座標乘以發送者的私鑰,並添加到雜湊交易訊息中。所有這些然後除以開始時生成的隨機數,以產生一個新值。此值用作數位簽名。
為了驗證數位簽名,接收者在橢圓曲線上導出兩個點。首先,將訊息除以數位簽名值以獲得生成點。然後,將生成點的 X 座標除以數位簽名值,以揭示曲線上的第二個點。
最後,透過這兩個點繪製一條線,會在橢圓曲線上產生第三個也是最後一個點。這個最終點的 X 座標應與點 A 完全相同,從而證明數位簽名是使用正確的相應私鑰創建的。
幸運的是,數位 crypto wallet 會自動執行所有這些驗證過程,無需用戶進行任何輸入。
密碼學為何重要?
密碼學不僅在保護加密貨幣網絡免受損壞方面發揮著重要作用,而且還提供了一種無可辯駁的方式來證明資金所有權,而無需強制用戶放棄其敏感的私鑰資訊。
如果沒有它,加密貨幣網絡可能將被迫依賴受信任的中心化中介來保護其資訊並促進支付——這完全與基於公共 blockchain 的加密貨幣的去中心化性質相矛盾。
既然您了解了加密貨幣背後的技術,是時候開始使用最透明和值得信賴的數位資產交易所了。
開始使用 Kraken
準備好與值得信賴且透明的交易所一起邁出加密貨幣之旅的下一步了嗎?點擊下方按鈕,立即開始使用 Kraken!