# 橢圓曲線數字簽名算法 ECDSA 簡介 ### 橢圓曲線數字簽名算法 ECDSA ECDSA,Elliptic Curve Digital Signature Algorithm,是比特幣使用的非對稱加密算法,用於生成數字簽名和驗證交易的真實性。相比於傳統的 RSA 算法,ECDSA 提供了更高的安全性和效率,尤其是在計算資源有限的情況下。 --- ### ECDSA 基本概念 ECDSA 是基於橢圓曲線密碼學 ECC,Elliptic Curve Cryptography 的數字簽名算法。ECC 利用了橢圓曲線方程上的點進行數學運算,以實現加密和解密過程。 橢圓曲線:橢圓曲線是一種代數曲線,方程形式為 y2=x3+ax+by^2 = x^3 + ax + by2=x3+ax+b。 這條曲線上的點被用作加密和簽名的基礎。 每個用戶生成一對密鑰,私鑰和公鑰。私鑰是用來簽署交易的秘密數字,而公鑰則是公開的,用來驗證交易的真實性。 ECDSA 的安全性基於橢圓曲線離散對數問題的困難性,即從公鑰反推出私鑰是計算上不可行的。這種基於數學困難性的特性,使得 ECDSA 對抗攻擊的能力非常強。用戶的私鑰必須嚴格保密,因為擁有私鑰的任何人都可以簽署交易。一旦交易被簽名,任何試圖修改交易數據的行為都會導致簽名驗證失敗。 --- ### ECDSA 操作原理 * **密鑰生成:** 用戶首先生成一個私鑰,這是一個隨機選擇的 256 位數字。 通過橢圓曲線上的點乘法操作,生成對應的公鑰。公鑰是私鑰在橢圓曲線上的點運算結果。 * **簽名生成:** 當用戶發送一筆比特幣交易時,系統會生成一個交易哈希(即交易的數據摘要)。 私鑰將用來對這個哈希進行簽名,生成兩個數字(rrr 和 sss),這就是簽名。 * **簽名驗證:** 接收方或驗證節點使用發送方的公鑰來驗證簽名的真實性。 系統會檢查由簽名生成的數字是否與交易哈希相匹配。如果匹配,則說明該交易來自真實的私鑰持有者。 --- /* 補充示意圖片 */
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up