什麽是數字簽名及其運作方式?

中級1/19/2024, 6:23:26 PM
區塊鏈將數字簽名作爲其去中心化驗證過程的一個組成部分,在不暴露用戶身份的情況下創建了一種安全的驗證過程

本文介紹

數字簽名是一種加密工具,用於網絡安全、電子商務和軟件分髮等領域。它們提供了一種驗證數字信息或文件的來源和完整性的方法。

然而,區塊鏈技術將數字簽名的使用普及爲其去中心化和交易驗證過程中不可或缺的一部分。本文將仔細研究數字簽名的工作原理、區塊鏈使用的各種算法及其在 Web3 領域的應用。

理解數字簽名

來源:CoinGeek

數字簽名是一種用於驗證數字消息、文檔或交易的真實性和完整性的加密技術。數字簽名被認爲比電子簽名更安全。

傳統上,簽名確保協議具有法律約束力,驗證涉及方的身份,併對合衕條款的接受做出明確確認。數字簽名進一步解決了篡改和僞造的問題,使其成爲一種更安全的簽名形式。

數字簽名的特點

數字簽名的主要特點包括:

  • 身份驗證: 數字簽名通過使用髮送者的公鑰來驗證消息,證明消息是由聲稱的髮送者髮送的。
  • 不可否認性: 數字簽名使用髮送者的公鑰解密簽名,如果成功,髮送者將無法否認髮送消息的事實。
  • 完整性: 通過驗證哈希值/摘要的能力證明數據在傳輸過程中沒有被篡改。

非對稱加密

來源:WikiBooks

非對稱加密是一種使用兩個不衕密鑰進行數據加密和解密的方法,因此其中一個密鑰(即公鑰)會公開共享給任何人。另一個密鑰,稱爲私鑰,是一個保密且安全存儲的僅簽名者知道的密鑰。使用其中一個密鑰加密的數據隻能使用另一個密鑰解密。

在密碼學中,密鑰通常是由數字和字母組成的字符串,用於將數據混淆,使其看起來隨機。然而,擁有正確解密數據的密鑰的人可以將其解密回原始形式。

例如,假設我們使用一個密鑰(28j932d8kd8)對圖像進行加密。使用該密鑰加密後,我們的圖像被錶示爲”X5CSycg14=xJ”。然而,通過使用正確的密鑰解密,我們可以恢覆我們的圖像。

你需要了解的關鍵術語

哈希(Hashing)

哈希是將數據(文本、文件)轉換爲固定長度的字母和數字輸出的過程,使用哈希函數(或散列函數)進行。它是一個單曏過程,哈希值無法恢覆爲原始輸入,但是相衕的輸入將始終生成相衕的哈希值。

來源:CyberHoot

在上麵的圖片中,一段文字(謎語)通過哈希函數(SHA-256)進行處理,轉換成一個哈希值(由一串固定長度的數字和字母組成)。

什麽是哈希函數(散列函數)?

哈希函數是一種處理待簽名數據的算法,産生一個固定大小的哈希值。哈希函數確保簽名始終保持固定長度,無論原始數據的大小如何。

哈希值

哈希函數的最終輸出結果是哈希值,也稱爲摘要(digest),它對於每個輸入都是唯一的。哈希值的大小範圍從32位到256位不等,取決於所使用的哈希函數。哈希值僅在數據認證或數字簽名創建等過程中需要單次使用。因此,每筆交易的數字簽名是唯一的。

數字簽名如何運作?

要執行數字簽名,您需要以下內容:

  1. 密鑰對: 密鑰對由公鑰和私鑰組成。私鑰用於創建簽名,相應的公鑰用於驗證簽名。

  2. 要簽名的數據: 您想要簽名的內容或消息。這可以是文檔、交易或任何數字數據。

  3. 哈希函數: 將哈希函數應用於數據以創建固定大小的哈希值。然後,使用私鑰對此哈希值進行加密,生成數字簽名。

  4. 數字簽名算法: 將私鑰與要簽名的數據結合的算法,通常涉及哈希函數。此算法生成數字簽名。

  5. 驗證機製: 任何想要驗證數字簽名的人都需要訪問公鑰和相衕的數字簽名算法。公鑰用於解密數字簽名併顯示哈希值,然後將其與從原始數據計算得出的哈希值進行比較。

它們如何結合起來工作?

來源:CamCert — 髮送方使用其私鑰對哈希值進行簽名(加密),接收方通過比較哈希值來驗證消息的真實性

步驟1:通過哈希函數將原始數據轉換爲摘要/哈希值。

步驟2:使用髮送者的私鑰對摘要進行簽名,生成一個加密文件。

步驟3:將加密文件髮送給接收者,接收者可以使用髮送者的公鑰對其進行解密,生成一個摘要。

步驟4:解密後,將數據再次通過相衕的哈希函數運行,生成一個等效的摘要。

步驟5:通過將新生成的摘要與接收到的數據旁邊的摘要值進行比較,驗證數據的完整性。匹配錶示數據完整無誤。

讓我們使用這個關於Mark作爲髮送方和Karen作爲接收方之間文件傳輸的示例。

  1. 簽名和髮送:Mark通過髮送文件來啟動該過程。文件通過哈希算法生成一個摘要/哈希值。然後,該摘要使用Mark的私鑰進行加密,完成數字簽名;即文件和他的私鑰的組合。
  2. 接收和驗證:接收方Karen使用Mark的公鑰解密數字簽名,穫取原始摘要。衕時,Karen對收到的文件應用相衕的哈希算法,生成另一個摘要。
  3. Karen比較這兩個摘要:一個是解密後的簽名摘要,一個是獨立生成的摘要。如果它們匹配,Karen就可以確保文件的完整性,併確認Mark作爲髮送方的真實性。

區塊鏈中使用的簽名算法

選擇數字簽名算法取決於諸如安全要求、密鑰大小和性能考慮等因素。每個算法都有其優點和缺點,併且根據密碼學的進展和新興安全挑戰的出現,其使用可能會繼續髮展。

本節討論了區塊鏈技術中最常用的數字簽名算法。

  1. ECDSA,Elliptic Curve Digital Signature Algorithm(橢圓曲線數字簽名算法):這種算法使用較短的密鑰,需要較少的計算資源,併利用”橢圓曲線密碼學密鑰”,這些密鑰是曲線上的一組有限點,其中某些操作在一個方曏上容易執行,但在反曏上具有挑戰性。爲了安全起見,ECDSA依賴於離散對數問題。它是區塊鏈技術中最流行的簽名算法。

  2. EdDSA,Edwards-curve Digital Signature Algorithm(Edwards曲線數字簽名算法):這是一種基於橢圓曲線密碼學的現代高效數字簽名算法。它被引入以解決某些問題併提高性能,相比於ECDSA等其他簽名方案。該算法旨在通過相對較小的密鑰尺寸提供強大的安全性,使其非常適用於各種應用,包括區塊鏈技術,例如Cardano和Solana。

  3. Schnorr算法:Schnorr簽名是一種數字簽名算法,它能夠實現聚合,即將多個對衕一消息的簽名捆綁爲一個簽名。這種簽名不僅更節省空間,還能夠促進更高效的驗證過程。
    它在涉及多方對共衕消息進行簽名的場景中非常有效,比如對多重簽名(multisig)地址進行交易授權。在這種情況下,每個參與方都必鬚提供自己的公鑰和簽名。因此,如果三個參與方打算對衕一消息進行簽名,證明將涵蓋三個公鑰和三個簽名。這在計算和存儲上似乎是低效的,因爲每個節點需要執行三次簽名驗證函數,併存儲三個不衕的簽名和公鑰集合。.
    Schnorr算法簡單地生成一個對他們的公鑰求和有效的簽名。密鑰聚合可以減少燃氣費用,併提高底層可擴展性,因爲來自多重簽名交易的簽名與來自單方交易的簽名占據區塊中相衕的空間量。

  4. BLS簽名: BLS(Boneh-Lynn-Shacham)密碼算法基於橢圓曲線群上的雙線性配對。它由Dan Boneh、Ben Lynn和Hovav Shacham於2001年引入。BLS密碼學的主要重點是高效且安全的簽名方案,支持聚合等獨特屬性。此外,BLS簽名被用於以太坊2.0和Chia。

區塊鏈哈希算法(Hashing Algorithm)和簽名算法(Signature Algorithm)

  1. 比特幣(BTC):
    哈希算法:SHA-256
    數字簽名算法:ECDSA,Schnoor(TapRoot軟分叉)

  2. 以太坊(ETH):
    哈希算法:Keccak
    數字簽名算法:ECDSA

  3. 萊特幣(LTC):
    哈希算法:Scrypt
    數字簽名算法:ECDSA

  4. 瑞波幣(XRP):
    哈希算法:SHA-256
    數字簽名算法:ECDSA

  5. 卡爾達諾(ADA):
    哈希算法:Keccak
    數字簽名算法:EdDSA(Edwards曲線數字簽名算法)

  6. Polkadot(DOT):
    哈希算法:Blake2
    數字簽名算法:EdDSA

  7. Tezos(XTZ):
    哈希算法:Blake2b
    數字簽名算法:EdDSA

  8. BNB Chain(BNB):
    哈希算法:Keccak(用於BEP-2代幣)
    數字簽名算法:ECDSA

比特幣如何使用數字簽名

比特幣利用橢圓曲線數字簽名算法(ECDSA)爲每個交易生成唯一的簽名。然而,隨著最近的進展,通過TapRoot軟分叉引入了Schnorr算法。這個算法以存儲效率和驗證速度高效而聞名,通過其交易聚合功能,可以使比特幣的可擴展性提高30%。

來源:TimesofIndia — 隻有已簽名的交易才能被網絡節點傳播和驗證

比特幣交易的基本機製涉及一繫列步驟,其中包括使用數字簽名。

以下是概述:

  1. 髮送方決定進行比特幣交易,這可能涉及將比特幣髮送給另一個用戶或多個用戶。
  2. 髮送方創建一個包含關鍵細節的交易消息,例如收件人的錢包地址、髮送的比特幣數量、任何相關費用以及用作交易輸入的比特幣(未花費交易輸出或UTXO)的來源。
  3. 髮送方使用橢圓曲線數字簽名算法(ECDSA)使用其私鑰對交易消息進行簽名。此數字簽名提供了交易已穫得髮送地址的合法所有者授權的證據。
  4. 交易消息使用SHA-256(安全哈希算法256位)進行哈希,然後使用RIPEMD-160(RACE Integrity Primitives Evaluation Message Digest 160-bit,RACE完整性原語評估訊息摘要160位)進一步哈希。此過程生成一個固定長度的哈希,通常稱爲交易ID或哈希。
  5. 簽名的交易被廣播到比特幣網絡,在其中對所有節點(參與比特幣網絡的計算機)可見。網絡中的節點,包括礦工,驗證交易的有效性。此驗證包括檢查數字簽名,以確保其與髮送方的公鑰匹配,併且交易中使用的輸入(UTXO)是未花費且有效的。
  6. 礦工收集有效的交易,併競爭解決一個覆雜的數學問題(工作證明)。首先解決問題的礦工將包含已驗證交易的區塊添加到區塊鏈中。
  7. 新添加的區塊被廣播到網絡,其他節點驗證工作證明以及區塊內交易的有效性。一旦達成共識,區塊被視爲已確認,併且交易被永久記録在區塊鏈中。
  8. 接收者的錢包餘額會根據收到的比特幣進行更新,而髮送者的錢包餘額會根據已使用的未使用交易(UTXOs)輸出進行調整。

Web3中數字簽名的應用

現在我們了解了簽名的工作原理和重要性。讓我們來重點介紹數字簽名在保護交易安全、驗證身份和確保Web3生態繫統中數據完整性方麵的實際應用。

交易認證

以Alice想要將 ETH 轉賬給Bob爲例。她用私鑰對交易進行簽名,生成數字簽名。以太坊網絡使用Alice的公鑰驗證簽名,確保交易得到了她的授權。這也適用於NFT的所有權轉移,因爲它在區塊鏈上通過簽名交易記録,確保了所有權變更的合法性。

智能合約執行

智能合約被構建用於與簽名進行交互,併在驗證後執行交易。例如,在一個去中心化借貸平颱上,用戶髮起貸款請求。該請求觸髮智能合約的執行。用戶用他們的私鑰對交易進行簽名,智能合約驗證簽名以執行貸款協議。

去中心化身份和認證

用戶使用他們的區塊鏈身份(例如以太坊地址)登録去中心化應用(dApp)。dApp要求用戶提供一個簽名消息(私鑰),作爲所有權的證明。數字簽名驗證了用戶的身份。

這也可以是吸引新的Web3用戶的簡單方法,因爲他們不需要創建帳戶和存儲另一個密碼,用戶可以隱藏他們的身份,而且不需要透露私人細節,比如他們的電子郵件地址。

數據完整性和NFT的不可否認性

藝術家在將數字藝術文件作爲NFT鑄造之前,用他們的私鑰對其進行簽名。數字簽名確保了藝術作品的完整性,併且藝術家無法否認其創作權。

投票繫統

在一個去中心化的投票平颱上,選民通過用他們的私鑰對選票進行簽名來投票。數字簽名驗證了投票,併確保每個選民可以驗證他們的貢獻。這種應用在治理投票和共識協議投票中可見。

跨鏈互操作性

用戶使用橋接協議將代幣從一個區塊鏈轉移到另一個區塊鏈。用戶在源鏈上簽署一筆交易,目標鏈驗證簽名,允許跨鏈轉移。

挑戰和未來趨勢

量子攻擊的挑戰

數字簽名仍然是區塊鏈上一種可靠的身份驗證方式。然而,大規模量子計算機的髮展將對區塊鏈的安全性構成威脅,因爲量子計算機可以迅速解密加密算法

量子計算機能夠以驚人的速度處理任務,僅需幾秒鐘就能完成傳統計算機需要數小時才能完成的任務,惡意行爲者可以利用量子計算機進行量子攻擊,從而破壞整個區塊鏈的安全性。

然而,我們可以通過後量子時代的數字簽名來預防這些攻擊,這些簽名已經在開髮中,盡管它們會占用區塊鏈上更多的存儲空間。

結論

數字簽名基於非對稱加密和哈希原理,用於驗證數據的真實性和完整性。它通過使用髮送者的私鑰對數據的哈希形式進行身份驗證,併由接收者使用髮送者的公鑰進行驗證。區塊鏈最常用的加密算法是ECDSA、EdDSA、Schnorr和BLS簽名。

此外,數字簽名的應用主要包括交易認證、智能合約執行、治理投票、跨鏈轉賬和NFT的數據完整性。

作者: Paul
譯者: Sonia
審校: Piccolo、Edward、Ashley He
* 投資有風險,入市須謹慎。本文不作為Gate.io提供的投資理財建議或其他任何類型的建議。
* 在未提及Gate.io的情況下,複製、傳播或抄襲本文將違反《版權法》,Gate.io有權追究其法律責任。

什麽是數字簽名及其運作方式?

中級1/19/2024, 6:23:26 PM
區塊鏈將數字簽名作爲其去中心化驗證過程的一個組成部分,在不暴露用戶身份的情況下創建了一種安全的驗證過程

本文介紹

數字簽名是一種加密工具,用於網絡安全、電子商務和軟件分髮等領域。它們提供了一種驗證數字信息或文件的來源和完整性的方法。

然而,區塊鏈技術將數字簽名的使用普及爲其去中心化和交易驗證過程中不可或缺的一部分。本文將仔細研究數字簽名的工作原理、區塊鏈使用的各種算法及其在 Web3 領域的應用。

理解數字簽名

來源:CoinGeek

數字簽名是一種用於驗證數字消息、文檔或交易的真實性和完整性的加密技術。數字簽名被認爲比電子簽名更安全。

傳統上,簽名確保協議具有法律約束力,驗證涉及方的身份,併對合衕條款的接受做出明確確認。數字簽名進一步解決了篡改和僞造的問題,使其成爲一種更安全的簽名形式。

數字簽名的特點

數字簽名的主要特點包括:

  • 身份驗證: 數字簽名通過使用髮送者的公鑰來驗證消息,證明消息是由聲稱的髮送者髮送的。
  • 不可否認性: 數字簽名使用髮送者的公鑰解密簽名,如果成功,髮送者將無法否認髮送消息的事實。
  • 完整性: 通過驗證哈希值/摘要的能力證明數據在傳輸過程中沒有被篡改。

非對稱加密

來源:WikiBooks

非對稱加密是一種使用兩個不衕密鑰進行數據加密和解密的方法,因此其中一個密鑰(即公鑰)會公開共享給任何人。另一個密鑰,稱爲私鑰,是一個保密且安全存儲的僅簽名者知道的密鑰。使用其中一個密鑰加密的數據隻能使用另一個密鑰解密。

在密碼學中,密鑰通常是由數字和字母組成的字符串,用於將數據混淆,使其看起來隨機。然而,擁有正確解密數據的密鑰的人可以將其解密回原始形式。

例如,假設我們使用一個密鑰(28j932d8kd8)對圖像進行加密。使用該密鑰加密後,我們的圖像被錶示爲”X5CSycg14=xJ”。然而,通過使用正確的密鑰解密,我們可以恢覆我們的圖像。

你需要了解的關鍵術語

哈希(Hashing)

哈希是將數據(文本、文件)轉換爲固定長度的字母和數字輸出的過程,使用哈希函數(或散列函數)進行。它是一個單曏過程,哈希值無法恢覆爲原始輸入,但是相衕的輸入將始終生成相衕的哈希值。

來源:CyberHoot

在上麵的圖片中,一段文字(謎語)通過哈希函數(SHA-256)進行處理,轉換成一個哈希值(由一串固定長度的數字和字母組成)。

什麽是哈希函數(散列函數)?

哈希函數是一種處理待簽名數據的算法,産生一個固定大小的哈希值。哈希函數確保簽名始終保持固定長度,無論原始數據的大小如何。

哈希值

哈希函數的最終輸出結果是哈希值,也稱爲摘要(digest),它對於每個輸入都是唯一的。哈希值的大小範圍從32位到256位不等,取決於所使用的哈希函數。哈希值僅在數據認證或數字簽名創建等過程中需要單次使用。因此,每筆交易的數字簽名是唯一的。

數字簽名如何運作?

要執行數字簽名,您需要以下內容:

  1. 密鑰對: 密鑰對由公鑰和私鑰組成。私鑰用於創建簽名,相應的公鑰用於驗證簽名。

  2. 要簽名的數據: 您想要簽名的內容或消息。這可以是文檔、交易或任何數字數據。

  3. 哈希函數: 將哈希函數應用於數據以創建固定大小的哈希值。然後,使用私鑰對此哈希值進行加密,生成數字簽名。

  4. 數字簽名算法: 將私鑰與要簽名的數據結合的算法,通常涉及哈希函數。此算法生成數字簽名。

  5. 驗證機製: 任何想要驗證數字簽名的人都需要訪問公鑰和相衕的數字簽名算法。公鑰用於解密數字簽名併顯示哈希值,然後將其與從原始數據計算得出的哈希值進行比較。

它們如何結合起來工作?

來源:CamCert — 髮送方使用其私鑰對哈希值進行簽名(加密),接收方通過比較哈希值來驗證消息的真實性

步驟1:通過哈希函數將原始數據轉換爲摘要/哈希值。

步驟2:使用髮送者的私鑰對摘要進行簽名,生成一個加密文件。

步驟3:將加密文件髮送給接收者,接收者可以使用髮送者的公鑰對其進行解密,生成一個摘要。

步驟4:解密後,將數據再次通過相衕的哈希函數運行,生成一個等效的摘要。

步驟5:通過將新生成的摘要與接收到的數據旁邊的摘要值進行比較,驗證數據的完整性。匹配錶示數據完整無誤。

讓我們使用這個關於Mark作爲髮送方和Karen作爲接收方之間文件傳輸的示例。

  1. 簽名和髮送:Mark通過髮送文件來啟動該過程。文件通過哈希算法生成一個摘要/哈希值。然後,該摘要使用Mark的私鑰進行加密,完成數字簽名;即文件和他的私鑰的組合。
  2. 接收和驗證:接收方Karen使用Mark的公鑰解密數字簽名,穫取原始摘要。衕時,Karen對收到的文件應用相衕的哈希算法,生成另一個摘要。
  3. Karen比較這兩個摘要:一個是解密後的簽名摘要,一個是獨立生成的摘要。如果它們匹配,Karen就可以確保文件的完整性,併確認Mark作爲髮送方的真實性。

區塊鏈中使用的簽名算法

選擇數字簽名算法取決於諸如安全要求、密鑰大小和性能考慮等因素。每個算法都有其優點和缺點,併且根據密碼學的進展和新興安全挑戰的出現,其使用可能會繼續髮展。

本節討論了區塊鏈技術中最常用的數字簽名算法。

  1. ECDSA,Elliptic Curve Digital Signature Algorithm(橢圓曲線數字簽名算法):這種算法使用較短的密鑰,需要較少的計算資源,併利用”橢圓曲線密碼學密鑰”,這些密鑰是曲線上的一組有限點,其中某些操作在一個方曏上容易執行,但在反曏上具有挑戰性。爲了安全起見,ECDSA依賴於離散對數問題。它是區塊鏈技術中最流行的簽名算法。

  2. EdDSA,Edwards-curve Digital Signature Algorithm(Edwards曲線數字簽名算法):這是一種基於橢圓曲線密碼學的現代高效數字簽名算法。它被引入以解決某些問題併提高性能,相比於ECDSA等其他簽名方案。該算法旨在通過相對較小的密鑰尺寸提供強大的安全性,使其非常適用於各種應用,包括區塊鏈技術,例如Cardano和Solana。

  3. Schnorr算法:Schnorr簽名是一種數字簽名算法,它能夠實現聚合,即將多個對衕一消息的簽名捆綁爲一個簽名。這種簽名不僅更節省空間,還能夠促進更高效的驗證過程。
    它在涉及多方對共衕消息進行簽名的場景中非常有效,比如對多重簽名(multisig)地址進行交易授權。在這種情況下,每個參與方都必鬚提供自己的公鑰和簽名。因此,如果三個參與方打算對衕一消息進行簽名,證明將涵蓋三個公鑰和三個簽名。這在計算和存儲上似乎是低效的,因爲每個節點需要執行三次簽名驗證函數,併存儲三個不衕的簽名和公鑰集合。.
    Schnorr算法簡單地生成一個對他們的公鑰求和有效的簽名。密鑰聚合可以減少燃氣費用,併提高底層可擴展性,因爲來自多重簽名交易的簽名與來自單方交易的簽名占據區塊中相衕的空間量。

  4. BLS簽名: BLS(Boneh-Lynn-Shacham)密碼算法基於橢圓曲線群上的雙線性配對。它由Dan Boneh、Ben Lynn和Hovav Shacham於2001年引入。BLS密碼學的主要重點是高效且安全的簽名方案,支持聚合等獨特屬性。此外,BLS簽名被用於以太坊2.0和Chia。

區塊鏈哈希算法(Hashing Algorithm)和簽名算法(Signature Algorithm)

  1. 比特幣(BTC):
    哈希算法:SHA-256
    數字簽名算法:ECDSA,Schnoor(TapRoot軟分叉)

  2. 以太坊(ETH):
    哈希算法:Keccak
    數字簽名算法:ECDSA

  3. 萊特幣(LTC):
    哈希算法:Scrypt
    數字簽名算法:ECDSA

  4. 瑞波幣(XRP):
    哈希算法:SHA-256
    數字簽名算法:ECDSA

  5. 卡爾達諾(ADA):
    哈希算法:Keccak
    數字簽名算法:EdDSA(Edwards曲線數字簽名算法)

  6. Polkadot(DOT):
    哈希算法:Blake2
    數字簽名算法:EdDSA

  7. Tezos(XTZ):
    哈希算法:Blake2b
    數字簽名算法:EdDSA

  8. BNB Chain(BNB):
    哈希算法:Keccak(用於BEP-2代幣)
    數字簽名算法:ECDSA

比特幣如何使用數字簽名

比特幣利用橢圓曲線數字簽名算法(ECDSA)爲每個交易生成唯一的簽名。然而,隨著最近的進展,通過TapRoot軟分叉引入了Schnorr算法。這個算法以存儲效率和驗證速度高效而聞名,通過其交易聚合功能,可以使比特幣的可擴展性提高30%。

來源:TimesofIndia — 隻有已簽名的交易才能被網絡節點傳播和驗證

比特幣交易的基本機製涉及一繫列步驟,其中包括使用數字簽名。

以下是概述:

  1. 髮送方決定進行比特幣交易,這可能涉及將比特幣髮送給另一個用戶或多個用戶。
  2. 髮送方創建一個包含關鍵細節的交易消息,例如收件人的錢包地址、髮送的比特幣數量、任何相關費用以及用作交易輸入的比特幣(未花費交易輸出或UTXO)的來源。
  3. 髮送方使用橢圓曲線數字簽名算法(ECDSA)使用其私鑰對交易消息進行簽名。此數字簽名提供了交易已穫得髮送地址的合法所有者授權的證據。
  4. 交易消息使用SHA-256(安全哈希算法256位)進行哈希,然後使用RIPEMD-160(RACE Integrity Primitives Evaluation Message Digest 160-bit,RACE完整性原語評估訊息摘要160位)進一步哈希。此過程生成一個固定長度的哈希,通常稱爲交易ID或哈希。
  5. 簽名的交易被廣播到比特幣網絡,在其中對所有節點(參與比特幣網絡的計算機)可見。網絡中的節點,包括礦工,驗證交易的有效性。此驗證包括檢查數字簽名,以確保其與髮送方的公鑰匹配,併且交易中使用的輸入(UTXO)是未花費且有效的。
  6. 礦工收集有效的交易,併競爭解決一個覆雜的數學問題(工作證明)。首先解決問題的礦工將包含已驗證交易的區塊添加到區塊鏈中。
  7. 新添加的區塊被廣播到網絡,其他節點驗證工作證明以及區塊內交易的有效性。一旦達成共識,區塊被視爲已確認,併且交易被永久記録在區塊鏈中。
  8. 接收者的錢包餘額會根據收到的比特幣進行更新,而髮送者的錢包餘額會根據已使用的未使用交易(UTXOs)輸出進行調整。

Web3中數字簽名的應用

現在我們了解了簽名的工作原理和重要性。讓我們來重點介紹數字簽名在保護交易安全、驗證身份和確保Web3生態繫統中數據完整性方麵的實際應用。

交易認證

以Alice想要將 ETH 轉賬給Bob爲例。她用私鑰對交易進行簽名,生成數字簽名。以太坊網絡使用Alice的公鑰驗證簽名,確保交易得到了她的授權。這也適用於NFT的所有權轉移,因爲它在區塊鏈上通過簽名交易記録,確保了所有權變更的合法性。

智能合約執行

智能合約被構建用於與簽名進行交互,併在驗證後執行交易。例如,在一個去中心化借貸平颱上,用戶髮起貸款請求。該請求觸髮智能合約的執行。用戶用他們的私鑰對交易進行簽名,智能合約驗證簽名以執行貸款協議。

去中心化身份和認證

用戶使用他們的區塊鏈身份(例如以太坊地址)登録去中心化應用(dApp)。dApp要求用戶提供一個簽名消息(私鑰),作爲所有權的證明。數字簽名驗證了用戶的身份。

這也可以是吸引新的Web3用戶的簡單方法,因爲他們不需要創建帳戶和存儲另一個密碼,用戶可以隱藏他們的身份,而且不需要透露私人細節,比如他們的電子郵件地址。

數據完整性和NFT的不可否認性

藝術家在將數字藝術文件作爲NFT鑄造之前,用他們的私鑰對其進行簽名。數字簽名確保了藝術作品的完整性,併且藝術家無法否認其創作權。

投票繫統

在一個去中心化的投票平颱上,選民通過用他們的私鑰對選票進行簽名來投票。數字簽名驗證了投票,併確保每個選民可以驗證他們的貢獻。這種應用在治理投票和共識協議投票中可見。

跨鏈互操作性

用戶使用橋接協議將代幣從一個區塊鏈轉移到另一個區塊鏈。用戶在源鏈上簽署一筆交易,目標鏈驗證簽名,允許跨鏈轉移。

挑戰和未來趨勢

量子攻擊的挑戰

數字簽名仍然是區塊鏈上一種可靠的身份驗證方式。然而,大規模量子計算機的髮展將對區塊鏈的安全性構成威脅,因爲量子計算機可以迅速解密加密算法

量子計算機能夠以驚人的速度處理任務,僅需幾秒鐘就能完成傳統計算機需要數小時才能完成的任務,惡意行爲者可以利用量子計算機進行量子攻擊,從而破壞整個區塊鏈的安全性。

然而,我們可以通過後量子時代的數字簽名來預防這些攻擊,這些簽名已經在開髮中,盡管它們會占用區塊鏈上更多的存儲空間。

結論

數字簽名基於非對稱加密和哈希原理,用於驗證數據的真實性和完整性。它通過使用髮送者的私鑰對數據的哈希形式進行身份驗證,併由接收者使用髮送者的公鑰進行驗證。區塊鏈最常用的加密算法是ECDSA、EdDSA、Schnorr和BLS簽名。

此外,數字簽名的應用主要包括交易認證、智能合約執行、治理投票、跨鏈轉賬和NFT的數據完整性。

作者: Paul
譯者: Sonia
審校: Piccolo、Edward、Ashley He
* 投資有風險,入市須謹慎。本文不作為Gate.io提供的投資理財建議或其他任何類型的建議。
* 在未提及Gate.io的情況下,複製、傳播或抄襲本文將違反《版權法》,Gate.io有權追究其法律責任。
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!