數字簽名是一種加密工具,用於網絡安全、電子商務和軟件分髮等領域。它們提供了一種驗證數字信息或文件的來源和完整性的方法。
然而,區塊鏈技術將數字簽名的使用普及爲其去中心化和交易驗證過程中不可或缺的一部分。本文將仔細研究數字簽名的工作原理、區塊鏈使用的各種算法及其在 Web3 領域的應用。
來源:CoinGeek
數字簽名是一種用於驗證數字消息、文檔或交易的真實性和完整性的加密技術。數字簽名被認爲比電子簽名更安全。
傳統上,簽名確保協議具有法律約束力,驗證涉及方的身份,併對合衕條款的接受做出明確確認。數字簽名進一步解決了篡改和僞造的問題,使其成爲一種更安全的簽名形式。
數字簽名的主要特點包括:
來源:WikiBooks
非對稱加密是一種使用兩個不衕密鑰進行數據加密和解密的方法,因此其中一個密鑰(即公鑰)會公開共享給任何人。另一個密鑰,稱爲私鑰,是一個保密且安全存儲的僅簽名者知道的密鑰。使用其中一個密鑰加密的數據隻能使用另一個密鑰解密。
在密碼學中,密鑰通常是由數字和字母組成的字符串,用於將數據混淆,使其看起來隨機。然而,擁有正確解密數據的密鑰的人可以將其解密回原始形式。
例如,假設我們使用一個密鑰(28j932d8kd8)對圖像進行加密。使用該密鑰加密後,我們的圖像被錶示爲”X5CSycg14=xJ”。然而,通過使用正確的密鑰解密,我們可以恢覆我們的圖像。
哈希是將數據(文本、文件)轉換爲固定長度的字母和數字輸出的過程,使用哈希函數(或散列函數)進行。它是一個單曏過程,哈希值無法恢覆爲原始輸入,但是相衕的輸入將始終生成相衕的哈希值。
來源:CyberHoot
在上麵的圖片中,一段文字(謎語)通過哈希函數(SHA-256)進行處理,轉換成一個哈希值(由一串固定長度的數字和字母組成)。
哈希函數是一種處理待簽名數據的算法,産生一個固定大小的哈希值。哈希函數確保簽名始終保持固定長度,無論原始數據的大小如何。
哈希函數的最終輸出結果是哈希值,也稱爲摘要(digest),它對於每個輸入都是唯一的。哈希值的大小範圍從32位到256位不等,取決於所使用的哈希函數。哈希值僅在數據認證或數字簽名創建等過程中需要單次使用。因此,每筆交易的數字簽名是唯一的。
要執行數字簽名,您需要以下內容:
密鑰對: 密鑰對由公鑰和私鑰組成。私鑰用於創建簽名,相應的公鑰用於驗證簽名。
要簽名的數據: 您想要簽名的內容或消息。這可以是文檔、交易或任何數字數據。
哈希函數: 將哈希函數應用於數據以創建固定大小的哈希值。然後,使用私鑰對此哈希值進行加密,生成數字簽名。
數字簽名算法: 將私鑰與要簽名的數據結合的算法,通常涉及哈希函數。此算法生成數字簽名。
驗證機製: 任何想要驗證數字簽名的人都需要訪問公鑰和相衕的數字簽名算法。公鑰用於解密數字簽名併顯示哈希值,然後將其與從原始數據計算得出的哈希值進行比較。
來源:CamCert — 髮送方使用其私鑰對哈希值進行簽名(加密),接收方通過比較哈希值來驗證消息的真實性
步驟1:通過哈希函數將原始數據轉換爲摘要/哈希值。
步驟2:使用髮送者的私鑰對摘要進行簽名,生成一個加密文件。
步驟3:將加密文件髮送給接收者,接收者可以使用髮送者的公鑰對其進行解密,生成一個摘要。
步驟4:解密後,將數據再次通過相衕的哈希函數運行,生成一個等效的摘要。
步驟5:通過將新生成的摘要與接收到的數據旁邊的摘要值進行比較,驗證數據的完整性。匹配錶示數據完整無誤。
讓我們使用這個關於Mark作爲髮送方和Karen作爲接收方之間文件傳輸的示例。
選擇數字簽名算法取決於諸如安全要求、密鑰大小和性能考慮等因素。每個算法都有其優點和缺點,併且根據密碼學的進展和新興安全挑戰的出現,其使用可能會繼續髮展。
本節討論了區塊鏈技術中最常用的數字簽名算法。
ECDSA,Elliptic Curve Digital Signature Algorithm(橢圓曲線數字簽名算法):這種算法使用較短的密鑰,需要較少的計算資源,併利用”橢圓曲線密碼學密鑰”,這些密鑰是曲線上的一組有限點,其中某些操作在一個方曏上容易執行,但在反曏上具有挑戰性。爲了安全起見,ECDSA依賴於離散對數問題。它是區塊鏈技術中最流行的簽名算法。
EdDSA,Edwards-curve Digital Signature Algorithm(Edwards曲線數字簽名算法):這是一種基於橢圓曲線密碼學的現代高效數字簽名算法。它被引入以解決某些問題併提高性能,相比於ECDSA等其他簽名方案。該算法旨在通過相對較小的密鑰尺寸提供強大的安全性,使其非常適用於各種應用,包括區塊鏈技術,例如Cardano和Solana。
Schnorr算法:Schnorr簽名是一種數字簽名算法,它能夠實現聚合,即將多個對衕一消息的簽名捆綁爲一個簽名。這種簽名不僅更節省空間,還能夠促進更高效的驗證過程。
它在涉及多方對共衕消息進行簽名的場景中非常有效,比如對多重簽名(multisig)地址進行交易授權。在這種情況下,每個參與方都必鬚提供自己的公鑰和簽名。因此,如果三個參與方打算對衕一消息進行簽名,證明將涵蓋三個公鑰和三個簽名。這在計算和存儲上似乎是低效的,因爲每個節點需要執行三次簽名驗證函數,併存儲三個不衕的簽名和公鑰集合。.
Schnorr算法簡單地生成一個對他們的公鑰求和有效的簽名。密鑰聚合可以減少燃氣費用,併提高底層可擴展性,因爲來自多重簽名交易的簽名與來自單方交易的簽名占據區塊中相衕的空間量。
BLS簽名: BLS(Boneh-Lynn-Shacham)密碼算法基於橢圓曲線群上的雙線性配對。它由Dan Boneh、Ben Lynn和Hovav Shacham於2001年引入。BLS密碼學的主要重點是高效且安全的簽名方案,支持聚合等獨特屬性。此外,BLS簽名被用於以太坊2.0和Chia。
比特幣(BTC):
哈希算法:SHA-256
數字簽名算法:ECDSA,Schnoor(TapRoot軟分叉)
以太坊(ETH):
哈希算法:Keccak
數字簽名算法:ECDSA
萊特幣(LTC):
哈希算法:Scrypt
數字簽名算法:ECDSA
瑞波幣(XRP):
哈希算法:SHA-256
數字簽名算法:ECDSA
卡爾達諾(ADA):
哈希算法:Keccak
數字簽名算法:EdDSA(Edwards曲線數字簽名算法)
Polkadot(DOT):
哈希算法:Blake2
數字簽名算法:EdDSA
Tezos(XTZ):
哈希算法:Blake2b
數字簽名算法:EdDSA
BNB Chain(BNB):
哈希算法:Keccak(用於BEP-2代幣)
數字簽名算法:ECDSA
比特幣利用橢圓曲線數字簽名算法(ECDSA)爲每個交易生成唯一的簽名。然而,隨著最近的進展,通過TapRoot軟分叉引入了Schnorr算法。這個算法以存儲效率和驗證速度高效而聞名,通過其交易聚合功能,可以使比特幣的可擴展性提高30%。
來源:TimesofIndia — 隻有已簽名的交易才能被網絡節點傳播和驗證
比特幣交易的基本機製涉及一繫列步驟,其中包括使用數字簽名。
以下是概述:
現在我們了解了簽名的工作原理和重要性。讓我們來重點介紹數字簽名在保護交易安全、驗證身份和確保Web3生態繫統中數據完整性方麵的實際應用。
以Alice想要將 ETH 轉賬給Bob爲例。她用私鑰對交易進行簽名,生成數字簽名。以太坊網絡使用Alice的公鑰驗證簽名,確保交易得到了她的授權。這也適用於NFT的所有權轉移,因爲它在區塊鏈上通過簽名交易記録,確保了所有權變更的合法性。
智能合約被構建用於與簽名進行交互,併在驗證後執行交易。例如,在一個去中心化借貸平颱上,用戶髮起貸款請求。該請求觸髮智能合約的執行。用戶用他們的私鑰對交易進行簽名,智能合約驗證簽名以執行貸款協議。
用戶使用他們的區塊鏈身份(例如以太坊地址)登録去中心化應用(dApp)。dApp要求用戶提供一個簽名消息(私鑰),作爲所有權的證明。數字簽名驗證了用戶的身份。
這也可以是吸引新的Web3用戶的簡單方法,因爲他們不需要創建帳戶和存儲另一個密碼,用戶可以隱藏他們的身份,而且不需要透露私人細節,比如他們的電子郵件地址。
藝術家在將數字藝術文件作爲NFT鑄造之前,用他們的私鑰對其進行簽名。數字簽名確保了藝術作品的完整性,併且藝術家無法否認其創作權。
在一個去中心化的投票平颱上,選民通過用他們的私鑰對選票進行簽名來投票。數字簽名驗證了投票,併確保每個選民可以驗證他們的貢獻。這種應用在治理投票和共識協議投票中可見。
用戶使用橋接協議將代幣從一個區塊鏈轉移到另一個區塊鏈。用戶在源鏈上簽署一筆交易,目標鏈驗證簽名,允許跨鏈轉移。
數字簽名仍然是區塊鏈上一種可靠的身份驗證方式。然而,大規模量子計算機的髮展將對區塊鏈的安全性構成威脅,因爲量子計算機可以迅速解密加密算法
量子計算機能夠以驚人的速度處理任務,僅需幾秒鐘就能完成傳統計算機需要數小時才能完成的任務,惡意行爲者可以利用量子計算機進行量子攻擊,從而破壞整個區塊鏈的安全性。
然而,我們可以通過後量子時代的數字簽名來預防這些攻擊,這些簽名已經在開髮中,盡管它們會占用區塊鏈上更多的存儲空間。
數字簽名基於非對稱加密和哈希原理,用於驗證數據的真實性和完整性。它通過使用髮送者的私鑰對數據的哈希形式進行身份驗證,併由接收者使用髮送者的公鑰進行驗證。區塊鏈最常用的加密算法是ECDSA、EdDSA、Schnorr和BLS簽名。
此外,數字簽名的應用主要包括交易認證、智能合約執行、治理投票、跨鏈轉賬和NFT的數據完整性。
數字簽名是一種加密工具,用於網絡安全、電子商務和軟件分髮等領域。它們提供了一種驗證數字信息或文件的來源和完整性的方法。
然而,區塊鏈技術將數字簽名的使用普及爲其去中心化和交易驗證過程中不可或缺的一部分。本文將仔細研究數字簽名的工作原理、區塊鏈使用的各種算法及其在 Web3 領域的應用。
來源:CoinGeek
數字簽名是一種用於驗證數字消息、文檔或交易的真實性和完整性的加密技術。數字簽名被認爲比電子簽名更安全。
傳統上,簽名確保協議具有法律約束力,驗證涉及方的身份,併對合衕條款的接受做出明確確認。數字簽名進一步解決了篡改和僞造的問題,使其成爲一種更安全的簽名形式。
數字簽名的主要特點包括:
來源:WikiBooks
非對稱加密是一種使用兩個不衕密鑰進行數據加密和解密的方法,因此其中一個密鑰(即公鑰)會公開共享給任何人。另一個密鑰,稱爲私鑰,是一個保密且安全存儲的僅簽名者知道的密鑰。使用其中一個密鑰加密的數據隻能使用另一個密鑰解密。
在密碼學中,密鑰通常是由數字和字母組成的字符串,用於將數據混淆,使其看起來隨機。然而,擁有正確解密數據的密鑰的人可以將其解密回原始形式。
例如,假設我們使用一個密鑰(28j932d8kd8)對圖像進行加密。使用該密鑰加密後,我們的圖像被錶示爲”X5CSycg14=xJ”。然而,通過使用正確的密鑰解密,我們可以恢覆我們的圖像。
哈希是將數據(文本、文件)轉換爲固定長度的字母和數字輸出的過程,使用哈希函數(或散列函數)進行。它是一個單曏過程,哈希值無法恢覆爲原始輸入,但是相衕的輸入將始終生成相衕的哈希值。
來源:CyberHoot
在上麵的圖片中,一段文字(謎語)通過哈希函數(SHA-256)進行處理,轉換成一個哈希值(由一串固定長度的數字和字母組成)。
哈希函數是一種處理待簽名數據的算法,産生一個固定大小的哈希值。哈希函數確保簽名始終保持固定長度,無論原始數據的大小如何。
哈希函數的最終輸出結果是哈希值,也稱爲摘要(digest),它對於每個輸入都是唯一的。哈希值的大小範圍從32位到256位不等,取決於所使用的哈希函數。哈希值僅在數據認證或數字簽名創建等過程中需要單次使用。因此,每筆交易的數字簽名是唯一的。
要執行數字簽名,您需要以下內容:
密鑰對: 密鑰對由公鑰和私鑰組成。私鑰用於創建簽名,相應的公鑰用於驗證簽名。
要簽名的數據: 您想要簽名的內容或消息。這可以是文檔、交易或任何數字數據。
哈希函數: 將哈希函數應用於數據以創建固定大小的哈希值。然後,使用私鑰對此哈希值進行加密,生成數字簽名。
數字簽名算法: 將私鑰與要簽名的數據結合的算法,通常涉及哈希函數。此算法生成數字簽名。
驗證機製: 任何想要驗證數字簽名的人都需要訪問公鑰和相衕的數字簽名算法。公鑰用於解密數字簽名併顯示哈希值,然後將其與從原始數據計算得出的哈希值進行比較。
來源:CamCert — 髮送方使用其私鑰對哈希值進行簽名(加密),接收方通過比較哈希值來驗證消息的真實性
步驟1:通過哈希函數將原始數據轉換爲摘要/哈希值。
步驟2:使用髮送者的私鑰對摘要進行簽名,生成一個加密文件。
步驟3:將加密文件髮送給接收者,接收者可以使用髮送者的公鑰對其進行解密,生成一個摘要。
步驟4:解密後,將數據再次通過相衕的哈希函數運行,生成一個等效的摘要。
步驟5:通過將新生成的摘要與接收到的數據旁邊的摘要值進行比較,驗證數據的完整性。匹配錶示數據完整無誤。
讓我們使用這個關於Mark作爲髮送方和Karen作爲接收方之間文件傳輸的示例。
選擇數字簽名算法取決於諸如安全要求、密鑰大小和性能考慮等因素。每個算法都有其優點和缺點,併且根據密碼學的進展和新興安全挑戰的出現,其使用可能會繼續髮展。
本節討論了區塊鏈技術中最常用的數字簽名算法。
ECDSA,Elliptic Curve Digital Signature Algorithm(橢圓曲線數字簽名算法):這種算法使用較短的密鑰,需要較少的計算資源,併利用”橢圓曲線密碼學密鑰”,這些密鑰是曲線上的一組有限點,其中某些操作在一個方曏上容易執行,但在反曏上具有挑戰性。爲了安全起見,ECDSA依賴於離散對數問題。它是區塊鏈技術中最流行的簽名算法。
EdDSA,Edwards-curve Digital Signature Algorithm(Edwards曲線數字簽名算法):這是一種基於橢圓曲線密碼學的現代高效數字簽名算法。它被引入以解決某些問題併提高性能,相比於ECDSA等其他簽名方案。該算法旨在通過相對較小的密鑰尺寸提供強大的安全性,使其非常適用於各種應用,包括區塊鏈技術,例如Cardano和Solana。
Schnorr算法:Schnorr簽名是一種數字簽名算法,它能夠實現聚合,即將多個對衕一消息的簽名捆綁爲一個簽名。這種簽名不僅更節省空間,還能夠促進更高效的驗證過程。
它在涉及多方對共衕消息進行簽名的場景中非常有效,比如對多重簽名(multisig)地址進行交易授權。在這種情況下,每個參與方都必鬚提供自己的公鑰和簽名。因此,如果三個參與方打算對衕一消息進行簽名,證明將涵蓋三個公鑰和三個簽名。這在計算和存儲上似乎是低效的,因爲每個節點需要執行三次簽名驗證函數,併存儲三個不衕的簽名和公鑰集合。.
Schnorr算法簡單地生成一個對他們的公鑰求和有效的簽名。密鑰聚合可以減少燃氣費用,併提高底層可擴展性,因爲來自多重簽名交易的簽名與來自單方交易的簽名占據區塊中相衕的空間量。
BLS簽名: BLS(Boneh-Lynn-Shacham)密碼算法基於橢圓曲線群上的雙線性配對。它由Dan Boneh、Ben Lynn和Hovav Shacham於2001年引入。BLS密碼學的主要重點是高效且安全的簽名方案,支持聚合等獨特屬性。此外,BLS簽名被用於以太坊2.0和Chia。
比特幣(BTC):
哈希算法:SHA-256
數字簽名算法:ECDSA,Schnoor(TapRoot軟分叉)
以太坊(ETH):
哈希算法:Keccak
數字簽名算法:ECDSA
萊特幣(LTC):
哈希算法:Scrypt
數字簽名算法:ECDSA
瑞波幣(XRP):
哈希算法:SHA-256
數字簽名算法:ECDSA
卡爾達諾(ADA):
哈希算法:Keccak
數字簽名算法:EdDSA(Edwards曲線數字簽名算法)
Polkadot(DOT):
哈希算法:Blake2
數字簽名算法:EdDSA
Tezos(XTZ):
哈希算法:Blake2b
數字簽名算法:EdDSA
BNB Chain(BNB):
哈希算法:Keccak(用於BEP-2代幣)
數字簽名算法:ECDSA
比特幣利用橢圓曲線數字簽名算法(ECDSA)爲每個交易生成唯一的簽名。然而,隨著最近的進展,通過TapRoot軟分叉引入了Schnorr算法。這個算法以存儲效率和驗證速度高效而聞名,通過其交易聚合功能,可以使比特幣的可擴展性提高30%。
來源:TimesofIndia — 隻有已簽名的交易才能被網絡節點傳播和驗證
比特幣交易的基本機製涉及一繫列步驟,其中包括使用數字簽名。
以下是概述:
現在我們了解了簽名的工作原理和重要性。讓我們來重點介紹數字簽名在保護交易安全、驗證身份和確保Web3生態繫統中數據完整性方麵的實際應用。
以Alice想要將 ETH 轉賬給Bob爲例。她用私鑰對交易進行簽名,生成數字簽名。以太坊網絡使用Alice的公鑰驗證簽名,確保交易得到了她的授權。這也適用於NFT的所有權轉移,因爲它在區塊鏈上通過簽名交易記録,確保了所有權變更的合法性。
智能合約被構建用於與簽名進行交互,併在驗證後執行交易。例如,在一個去中心化借貸平颱上,用戶髮起貸款請求。該請求觸髮智能合約的執行。用戶用他們的私鑰對交易進行簽名,智能合約驗證簽名以執行貸款協議。
用戶使用他們的區塊鏈身份(例如以太坊地址)登録去中心化應用(dApp)。dApp要求用戶提供一個簽名消息(私鑰),作爲所有權的證明。數字簽名驗證了用戶的身份。
這也可以是吸引新的Web3用戶的簡單方法,因爲他們不需要創建帳戶和存儲另一個密碼,用戶可以隱藏他們的身份,而且不需要透露私人細節,比如他們的電子郵件地址。
藝術家在將數字藝術文件作爲NFT鑄造之前,用他們的私鑰對其進行簽名。數字簽名確保了藝術作品的完整性,併且藝術家無法否認其創作權。
在一個去中心化的投票平颱上,選民通過用他們的私鑰對選票進行簽名來投票。數字簽名驗證了投票,併確保每個選民可以驗證他們的貢獻。這種應用在治理投票和共識協議投票中可見。
用戶使用橋接協議將代幣從一個區塊鏈轉移到另一個區塊鏈。用戶在源鏈上簽署一筆交易,目標鏈驗證簽名,允許跨鏈轉移。
數字簽名仍然是區塊鏈上一種可靠的身份驗證方式。然而,大規模量子計算機的髮展將對區塊鏈的安全性構成威脅,因爲量子計算機可以迅速解密加密算法
量子計算機能夠以驚人的速度處理任務,僅需幾秒鐘就能完成傳統計算機需要數小時才能完成的任務,惡意行爲者可以利用量子計算機進行量子攻擊,從而破壞整個區塊鏈的安全性。
然而,我們可以通過後量子時代的數字簽名來預防這些攻擊,這些簽名已經在開髮中,盡管它們會占用區塊鏈上更多的存儲空間。
數字簽名基於非對稱加密和哈希原理,用於驗證數據的真實性和完整性。它通過使用髮送者的私鑰對數據的哈希形式進行身份驗證,併由接收者使用髮送者的公鑰進行驗證。區塊鏈最常用的加密算法是ECDSA、EdDSA、Schnorr和BLS簽名。
此外,數字簽名的應用主要包括交易認證、智能合約執行、治理投票、跨鏈轉賬和NFT的數據完整性。