公鑰是私鑰的加密對應物。它們共同讓你能夠證明對加密貨幣的所有權,而無需透露控制它的秘密。
摘要
- 公鑰是透過橢圓曲線乘法從私鑰數學推導出的大數,這是一種單向函數,正向計算快速,但逆向幾乎不可能。
- 比特幣和以太坊都使用 secp256k1 橢圓曲線,它產生 256 位元的私鑰和 512 位元的未壓縮公鑰(或 257 位元的壓縮公鑰)。
- 錢包地址與公鑰不同;地址是公鑰的較短雜湊版本,旨在更容易分享,並更能抵抗某些理論攻擊。
- 私鑰簽署交易,公鑰驗證這些簽名,地址則接收資金。失去私鑰意味著永久失去存取權;分享公鑰或地址不會對資金安全構成風險。
- 2026 年 7 月的 Coldcard 韌體漏洞暴露了弱私鑰生成,影響了 1.16 億美元的比特幣,這凸顯了正確的密鑰生成和儲存仍然是自我保管中最關鍵的方面。
公鑰密碼學是每筆加密貨幣交易的基礎,但大多數用戶從不直接與他們的公鑰互動。他們看到錢包地址、掃描 QR 碼、確認轉帳,卻不了解使無需信任的所有權成為可能的數學層。
這一層很重要,因為理解它會改變你對安全性的看法。公鑰不是密碼。它不是秘密。它是一個你可以與任何人分享的數字,而且沒有人能從中推導出控制你資金的私鑰。這種不對稱性——單向容易但無法回頭——使得網際網路上的陌生人可以在不信任銀行、政府或彼此的情況下互相轉帳。
密鑰對如何運作
每個加密貨幣錢包都建立在密鑰對上:一個私鑰和一個公鑰。私鑰是一個隨機生成的數字,通常為 256 位元長,這意味著它大約是 10 的 77 次方個可能值之一。作為參考,可觀測宇宙中估計的原子數約為 10 的 80 次方。密鑰空間足夠大,以至於用暴力破解猜測特定私鑰在當前或可預見的技術下不是實際的擔憂。
公鑰是透過橢圓曲線乘法從私鑰推導出來的。比特幣和以太坊都使用稱為 secp256k1 的特定曲線。私鑰乘以曲線上稱為生成點的固定點,結果是曲線上的另一個點。該結果就是公鑰。
關鍵屬性是這種乘法是單向函數。給定私鑰,計算公鑰只需不到一秒。僅給定公鑰,計算私鑰需要解決橢圓曲線離散對數問題,而這個問題沒有已知的有效解決方案。這種不對稱性是加密貨幣安全的全部基礎。
公鑰與錢包地址
一個常見的誤解是錢包地址和公鑰是同一回事。它們不是。地址是透過一輪或多輪雜湊從公鑰推導出來的,這個過程縮短了輸出並增加了額外的安全層。
在比特幣中,過程如下。512 位元的未壓縮公鑰(或 257 位元的壓縮公鑰)經過 SHA-256,然後經過 RIPEMD-160,產生 160 位元的雜湊。前置一個版本位元組,附加一個校驗和,結果以 Base58Check 格式編碼。最終輸出是熟悉的比特幣地址,以 1、3 或 bc1 開頭。
在以太坊中,過程更簡單。512 位元的公鑰經過 Keccak-256(SHA-3 的變體),雜湊的最後 20 個位元組(160 位元)成為地址。加上「0x」前綴和可選的 EIP-55 校驗和,產生熟悉的以太坊地址。
將公鑰哈希成地址的原因,部分在於實用性(較短的字串更容易分享),部分在於防禦性。如果量子電腦有朝一日能夠破解橢圓曲線加密,它們需要公鑰(而非地址)才能推導出私鑰。從未用於發送交易的地址,其公鑰從未在鏈上公開,這增加了理論上的量子抗性層。
數位簽章如何證明所有權
當你發送加密貨幣時,你並不是將硬幣從一個位置移動到另一個位置。你是在創建一條訊息,內容為「我授權從我的地址轉移 X 金額給此收款人」,並用你的私鑰簽署該訊息。簽章證明創建訊息的人控制了與發送地址關聯的私鑰,而不會洩露私鑰本身。
驗證過程使用公鑰。任何在網路上運行節點的人都可以取得交易訊息、數位簽章和發送者的公鑰,並執行數學驗證,以確認簽章是由對應的私鑰產生的。如果驗證通過,交易有效;如果失敗,交易被拒絕。
這就是為什麼丟失私鑰是災難性的。沒有私鑰就無法產生有效的簽章,也就無法授權從該地址進行交易。資金仍留在區塊鏈上,所有人都能看到,但永遠無法存取。沒有「忘記密碼」的恢復機制,因為沒有持有備份的中心化機構。
金鑰生成鏈
在現代錢包中,個別私鑰並非獨立生成。相反,單一的主種子通過由 BIP-32(分層確定性錢包)和 BIP-39(助記詞種子短語)定義的確定性過程,生成錢包中的所有金鑰。
該過程從熵開始,即隨機性來源。錢包軟體或硬體設備生成一個隨機數,通常為 128 或 256 位元。此熵被編碼為 12 或 24 個單詞的助記詞短語,這些單詞來自標準化的 2048 個單詞列表。助記詞短語與可選的密碼短語結合,通過金鑰推導函數(PBKDF2)生成 512 位元的主種子。
從主種子推導出金鑰對的分層樹。樹的每個分支可以生成數十億個獨特的私鑰及其對應的公鑰和地址。這就是為什麼單一種子短語可以恢復整個錢包及其所有地址:種子確定性地重新生成層次結構中的每個金鑰對。
安全含義在於種子短語是所有金鑰的根源。任何獲得種子短語的人都可以重新生成錢包曾經使用或將來會使用的每個私鑰、每個公鑰和每個地址。保護種子短語等同於同時保護錢包中的每個金鑰對。
壓縮與未壓縮的公鑰
早期的比特幣軟體使用未壓縮的公鑰,其中包括橢圓曲線上點的 x 和 y 坐標。未壓縮的公鑰為 65 位元組:1 位元組的前綴(0x04),後接 32 位元組的 x 坐標和 32 位元組的 y 坐標。
由於橢圓曲線方程意味著對於任何給定的 x 坐標,只有兩個可能的 y 值(一個偶數,一個奇數),因此只需存儲 x 坐標和一個指示 y 是偶數還是奇數的單一位元即可。這產生 33 位元組的壓縮公鑰:1 位元組的前綴(0x02 表示偶數 y,0x03 表示奇數 y),後接 32 位元組的 x 坐標。
壓縮金鑰在交易中節省空間,從而降低費用。自 2012 年以來,大多數比特幣軟體預設使用壓縮公鑰。以太坊在內部使用未壓縮的公鑰,但在地址推導中去除前綴位元組,僅使用 64 位元組的 x 和 y 值。
區別對於相容性很重要。從同一私鑰推導出的壓縮和未壓縮公鑰在比特幣中會產生不同的地址。將私鑰導入使用與原始錢包不同壓縮格式的錢包,會生成不同的地址,如果資金發送到另一格式的地址,可能會造成混淆。
現實世界中的金鑰安全失敗
公鑰加密背後的理論是健全的,但實施失敗已造成重大損失。
2026年7月,研究人員發現Coldcard硬體錢包五年來一直生成弱私鑰。韌體中的一個建置旗標指示設備跳過其專用硬體隨機晶片,導致熵可預測。攻擊者逆向工程了此弱點,並於7月30日開始掏空錢包,在漏洞公開揭露前竊取了約1.16億美元的比特幣。
教訓是,金鑰對的安全性完全取決於生成私鑰所用隨機數的品質。如果隨機數生成器有缺陷、有偏見或可預測,理論上不可破解的256位元金鑰也毫無價值。這就是為什麼信譽良好的硬體錢包使用專用真隨機數生成器,並允許用戶添加自己的熵(例如擲骰子)作為額外的安全保障。
其他歷史事件包括2013年的Android SecureRandom漏洞,導致多個比特幣錢包生成重複的隨機數,使攻擊者能從交易簽名中計算出私鑰。Profanity vanity地址生成器於2022年9月被利用,研究人員發現其金鑰生成使用32位元種子,將有效金鑰空間從2的256次方縮減至2的32次方,約40億種可能性,可在幾分鐘內暴力破解。
公鑰與智慧合約
在像以太坊這樣的智慧合約平台上,公鑰密碼學具有雙重目的。它保護外部擁有帳戶(EOA),即由私鑰控制的標準用戶錢包,並驗證這些帳戶在與智慧合約互動時簽署的訊息。
當用戶呼叫智慧合約上的函數時,交易包含由用戶私鑰產生的數位簽名。以太坊虛擬機在執行函數前,會根據發送者的公鑰驗證此簽名。這就是智慧合約如何知道呼叫「轉帳100 USDC到地址X」的人實際上是所轉移代幣的所有者。
智慧合約錢包(由ERC-4337引入的帳戶抽象錢包)可以修改此模型。智慧合約錢包不是僅依賴單一私鑰,而是可以要求多重簽名、生物辨識驗證、社交恢復或由代碼強制執行的支出限制。公鑰仍然是系統的一部分,但構成有效授權的規則變得可程式化。
託管與自我託管金鑰管理
在中心化交易所上,交易所持有私鑰,用戶透過傳統驗證(使用者名稱、密碼、兩步驟驗證碼)存取其資金。用戶永遠看不到公鑰或私鑰。交易所代表用戶簽署交易。
在自我託管中,用戶持有私鑰(或生成私鑰的種子短語),並完全負責其安全。公鑰和地址在本地派生,沒有第三方能存取簽署能力。
取捨很明顯。託管解決方案方便,但引入交易對手風險:如果交易所被駭、破產或凍結提款,用戶的資金將面臨風險。自我託管消除了交易對手風險,但引入了操作風險:如果用戶丟失種子短語、儲存不當或遭受網路釣魚,資金將永久丟失。
多重簽名設定透過在多個方或設備之間分配金鑰管理來折衷。2-of-3多重簽名需要三個私鑰中的任意兩個來簽署交易,因此丟失一個金鑰不會導致永久損失,且洩露一個金鑰不會讓攻擊者獲得控制權。
本文未涵蓋的內容
本文不涵蓋後量子密碼學方案,例如基於格子的簽名,這些方案正在研究作為橢圓曲線密碼學的替代品,以防大規模量子電腦變得可行。它不涵蓋超出概念層面的橢圓曲線數學。它不涵蓋具體的錢包設定指南,因為這些因產品而異且經常變化。
保護金鑰的實用檢查
切勿分享您的私鑰或種子短語。任何合法的服務、支援代理或空投都不會要求您提供這些。任何索取這些憑證的請求都是詐騙,毫無例外。
發送前驗證地址格式。剪貼簿惡意軟體可以將複製的地址替換為攻擊者的地址。貼上後,請務必目視確認地址的前幾個和後幾個字元。
對於大量持倉,請使用硬體錢包。硬體錢包在專用晶片上生成和儲存私鑰,該晶片永遠不會將私鑰暴露給連網設備。購買前,請研究製造商在熵生成方面的記錄。
盡可能添加自己的熵。有些硬體錢包允許用戶透過手動輸入隨機性(例如擲硬幣或擲骰子)來補充設備的隨機數生成器。這降低了硬體隨機數生成器有缺陷的風險。
將助記詞備份存放在多個安全位置。僅存放在一個位置的單一備份容易受到火災、水災或盜竊的影響。金屬助記詞備份比紙張更能抵抗環境損害。
什麼是加密貨幣中的公鑰?
公鑰是透過橢圓曲線乘法從私鑰衍生出的大數。它作為加密身份,用於驗證交易簽名,而不會洩露私鑰。任何人都可以看到公鑰,分享公鑰不會危及資金安全。
公鑰和錢包地址相同嗎?
不。錢包地址是透過一輪或多輪加密哈希從公鑰衍生而來的。地址更短,更容易分享。在比特幣中,同一個私鑰可以產生不同的地址,具體取決於使用的是壓縮還是未壓縮的公鑰。
如果有人知道我的公鑰,能偷走我的加密貨幣嗎?
不能。公鑰設計為可分享的。從公鑰推導出私鑰需要解決橢圓曲線離散對數問題,而目前計算技術尚無已知的高效解決方案。
如果我丟失了私鑰會怎樣?
與該密鑰相關的資金將永久無法存取。沒有恢復機制,因為加密貨幣網路沒有存儲備份的中心化機構。這就是為什麼助記詞備份對於自我保管錢包至關重要。
公鑰和私鑰有什麼區別?
私鑰是用於簽署交易的隨機生成的秘密數字。公鑰是從私鑰衍生出來的,用於驗證簽名。私鑰必須保密;公鑰可以自由分享。
助記詞與公鑰和私鑰有何關係?
助記詞(12或24個單詞)編碼了主熵,錢包中的所有私鑰都是從中確定性衍生的。每個私鑰產生相應的公鑰和地址。保護助記詞就保護了錢包將生成的所有密鑰對。
比特幣和以太坊使用什麼橢圓曲線?
比特幣和以太坊都使用 secp256k1 橢圓曲線。它產生 256 位元的私鑰和 512 位元的未壓縮公鑰(或 257 位元的壓縮公鑰)。選擇這條曲線是因為其效率和眾所周知的安全特性。
量子電腦能破解公鑰密碼學嗎?
理論上,運行 Shor 演算法的足夠強大的量子電腦可以從公鑰推導出私鑰。然而,截至 2026 年,尚不存在這樣的量子電腦。從未用於發送交易的地址尚未在鏈上暴露其公鑰,這增加了一層保護。後量子簽名方案正在研究中,作為未來的替代方案。






