在 Upbit 黑客事件中提到的「從簽名中提取密鑰」是針對 Solana(以及其他許多區塊鏈)使用的橢圓曲線數位簽名演算法(ECDSA)的一種先進的密碼分析攻擊。 攻擊者利用 Upbit 錢包軟體生成的可預測隨機數(一次性隨機數 k),在簽名中捕捉到隱藏的模式,從而數學上計算出錢包的私鑰(private key)。 1. ECDSA 是如何工作的? 每次簽署交易時: 私鑰:d(絕不分享) 一次性隨機數:k(nonce)→ 每個簽名必須完全隨機且保密 產生的簽名:(r, s)對(在區塊鏈上所有人可見) 如果 k 不是隨機的或有可預測的模式,則可以從多個簽名中恢復私鑰 d。 2. Upbit 的漏洞 Upbit 自己的錢包軟體無法生成足夠隨機的 nonce 值。這導致簽名的(r, s)值出現統計偏差(bias)。攻擊者收集了 Upbit 熱錢包中的數十/數百筆交易,通過分析這些簽名找出 nonce 的哪些位是可預測的,並通過數學方法(格攻擊)在幾秒/幾分鐘內計算出私鑰。 3. 使用的數學攻擊類型 隱藏數字問題(HNP)+ 格約簡(LLL/BKZ 演算法) 僅僅 3–8 位的可預測性,配合 20–100 個簽名就足以完全破解密鑰。 即使偏差較弱(1–2 位),也可以通過數千個簽名來破解。 4. 為什麼說「只有 Lazarus 能做到」? 這種攻擊需要:博士級的密碼學知識(HNP、格密碼分析) 區塊鏈數據分析專業知識 強大的計算資源(GPU 集群)...