數字簽名對於區塊鏈的工作很重要。這種特性至關重要,可以深刻影響加密貨幣。
由於後面給出的使用簽名方案的選擇對用戶是不可見的,本文的目的是解釋它的含義並幫助理解它在區塊鏈技術中的作用。因此加密貨幣。
自17 世紀以來,簽名一直是證明信息唯一同意的標準。
它們已被用於使無數類型的協議正式化,例如就業協議、信用卡收據,甚至戰爭條約。
數字時代創造了一種新的交易所方式,不再局限於紙質或郵件。今天我們將看看如何驗證數字消息的真實性以及數字簽名有哪些可用的解決方案。
數字簽名如何工作?
就像一個人添加到特定文檔的書面簽名一樣,數字簽名是將特定身份鏈接到消息的加密貨幣鏈接。
數字簽名幾乎不可能偽造,因為它們使用新的理論來保證其正常運行,並使用稱為公鑰加密貨幣術的系統,其中用戶擁有公鑰和私鑰形成一對。
我們可以將公鑰視為所有者的身份,將私鑰視為允許此人證明自己是公鑰所有者的加密貨幣或秘密密鑰。
為了更好地理解公鑰加密貨幣在數字簽名中是如何工作的,首先需要了解加密貨幣是如何工作的,它在保護敏感信息的同時保證了消息的安全性。
例如,假設我們想向朋友發送一條加密貨幣消息。我們朋友的公鑰可供任何人查看。所以我們在一個算法中使用該公鑰,用消息對其進行加密貨幣。
有人可以截取消息並閱讀它,但因為它是加密貨幣的,除非他們擁有我們朋友的私鑰,否則他們將無法看到其背後的信息。
通過這種方式,我們可以確保只有我們的朋友才能看到原始消息,並且無需知道他們的私鑰。
在數字簽名的情況下,所有這些操作都是相反的。我們不是從公鑰生成加密貨幣消息,而是在算法中使用我們自己的私鑰來創建鏈接到消息和公鑰的簽名。
除了我們之外,沒有人可以從簽名和公鑰中發現私鑰或偽造我們的簽名。
但是,任何人都可以知道只有我們可以根據簽名消息和公鑰對消息進行簽名。這樣就表明我們是私鑰的持有者。
區塊鏈中的重要性
數字簽名對於能夠在區塊鏈上創建塊很重要。它們主要用於驗證交易的真實性。
當用戶提交新交易時,用戶必須向系統中的所有節點證明他們有權使用這筆資金,同時防止其他用戶使用這些資金。
然後網絡上的每個節點將驗證發送的交易條件,所有其他節點將同意。
例如,如果我們想向我們的朋友發送1 BTC,我們必須使用我們的私鑰簽署交易,其中條目為1 BTC,並將其發送到網絡上的每個節點。
知道我們公鑰的礦工將審查交易條件並驗證簽名的真實性。一旦一切正確,它就會被添加到一個新的區塊中,並成為經過驗證的交易鏈的一部分。
常用的簽名方案
加密貨幣學基於一些數學問題難以解決的假設。例如,早期的加密貨幣系統RSA 算法假定分解兩個大素數是困難的。
1. ECDSA
這種簽名方案目前被比特幣使用,全稱為橢圓曲線數字簽名算法(ECDSA)。
與RSA 相比,ECDSA 使用更小的密鑰,需要更少的計算資源,同時保持非常強大的安全性。
ECDSA 還在有限域內使用所謂的橢圓曲線。
如果我們將橢圓曲線視為曲線上的一組有限點,在一個方向上的操作很容易,但如果我們想反向進行操作,則橢圓曲線更容易理解。
此外,為了安全起見,ECSDA 依賴於離散寄存器問題,而不是質數的複雜分解。
問題如下:
設a、b 和c 是整數,使得a ^ b = c。如果給定c 和a,如果b 足夠大,則很難找到b。現在將此方程應用於一組橢圓曲線併計算Q = nP,其中n 是某個整數,P 是曲線上的一個點,Q 是運算的結果(“乘”點)。在橢圓曲線中,給定n和P很容易計算Q,但是給定P和Q很難找到n。這被稱為橢圓曲線離散對數問題。
ECDSA 背後的想法是,該算法可以生成難以偽造但易於驗證的簽名。
用於ECDSA 的比特幣特定橢圓曲線稱為secp256k1,是由稱為國家標準與技術研究院(NIST) 的政府機構標準化的曲線。
但是即使密鑰長度比RSA 短且計算效率更高,ECDSA 也可能被錯誤地實現。
特別是,比特幣因ECDSA 實施不當而遭受攻擊,其中交易的標識符可以通過改變交易的簽名來修改,後來用隔離見證糾正了這一點。
ECDSA 實現也可能容易受到弱隨機性的影響,或者容易受到各種其他攻擊。
2. 施諾爾
儘管存在問題,但ECDSA 在比特幣存在的這些年裡一直非常重要。然而,ECDSA 缺乏一個基本特性,那就是它不能有效地將多個簽名壓縮和驗證在一起。
近年來,有一種趨勢是尋找新的簽名方案,以提高比特幣的可擴展性、效率和隱私性,其中之一就是Schnorr 公司。
Schnorr Signatures 是Claus-Peter Schnorr 於1988 年提出的一個優雅方案,該方案在2008 年之前獲得專利。出於這個原因,並且因為直到幾年前它才被接受和標準化,Satoshi 決定選擇ECDSA。
Schnorr 簽名在標準加密貨幣學假設(離散註冊)下被證明是安全的,它們沒有延展性(第三方不能改變有效的簽名來為相同的密鑰和相同的消息創建一個有效的簽名),並且它們提供線性(多方可以合作產生一個對所有公鑰都有效的單一簽名)。
最後一個屬性為比特幣提供了兩個好處:
線性允許多重簽名交易中的多個簽名者將公鑰組合成單個聚合公鑰。這很重要,因為多重簽名交易不是比特幣原生的,而且傳統上僅限於P2SH 腳本,所有各方都必須交出他們的公鑰並簽署交易。這樣,其他人就可以看到它是否是一個多重簽名交易,並確定所涉及的人。
它允許參與者的列表和數量隱藏在此密鑰聚合中,並因此生成與正常簽名無法區分的聚合簽名。這通過允許使用Taproot 構建智能合約來減少塊大小並增加隱私,這是一種允許複雜腳本與正常交易無法區分的技術。
Schnorr 簽名還允許交叉入口聚合。比特幣交易通常有許多需要單獨簽名的條目,並且可能會佔用塊中的大量空間。
Schnorr 簽名允許你聚合交易的各個簽名,從而允許使用單個簽名來花費交易中的所有條目。這種結合簽名的能力為區塊中的交易數據留下了更多空間,預計將增加20-40% 的容量。
在像Coinjoin 這樣的隱私協議中,交叉條目聚合還可以通過使條目更難以跟踪來提供隱私優勢。
3. 公司BLS
與比特幣一樣,以太坊目前使用ECDSA。然而,隨著以太坊2.0 中的權益證明交易,ECDSA 將不再足以滿足新的要求。
ETH 2.0 將通過委員會涉及數千名驗證者,他們每個人都必須在很短的時間內產生數千個簽名。
如果系統想要可擴展,則每個節點都無法驗證每個簽名。
例如,如果每個區塊有64 個委員會,每個委員會最多可以有2,048 個驗證者,那麼每個區塊(每12 秒)可以驗證131,072 個簽名。
這就是為什麼需要一個足夠有效的方案來允許簽名的驗證。這就是BLS 的用武之地。
BLS (Boneh-Lynn-Shacham) 公司是在21 世紀初之後提出的,基於一種稱為基於對的加密貨幣術的加密貨幣術。
與ECDSA 相比,它們具有不同的硬度假設,並在不同類型的曲線(匹配友好曲線)上運行。
BLS 簽名類似於Schnorr 簽名,因為它們允許聚合密鑰和簽名,但BLS 簽名是確定性的(無隨機性),可以允許跨整個塊聚合簽名,最重要的是,它們比Schnorr 公司小得多(約小50%)。
此外,雖然多個Schnorr 簽名需要多輪通信並且可以依賴大型數據結構(Merkle 樹)進行簽名聚合,但BLS 簽名非常容易生成並且幾乎不需要通信要求。
BLS 公司最大的問題是簽名的驗證效率非常低,而且比Schnorr 簽名貴幾個數量級。
以太坊並不是唯一一個計劃使用這些類型方案的區塊鏈。已經使用權益證明共識機制的類似機構將它們列入他們的計劃中。她的一個是Polkadot,另一個是Grin。
結論
數字簽名方案的特性對區塊鏈的功能具有級聯效應。因此,選擇正確的項目對於項目的成功至關重要。
所有的解決方案都有消極和積極的一面,沒有任何計劃會永遠持續下去。
在每個礦工或驗證者都必須驗證每個簽名的世界中,如果沒有正確的簽名方案,區塊鏈將無法用作全球技術。
改進簽名可用性的新優化不斷改進其大小、驗證時間或安全性。
如果好處令人信服,那麼一種簽名方案可能比另一種更可行。例如,BLS 簽名直到最近才被使用,當時發表了致力於提高其有效性的論文,特別是對於區塊鏈協議。
項目背後的團隊必須對不斷變化的數字簽名方案保持靈活和開放,並在出現令人信服的原因時進行相應的設計。
上面提到的簽名方案已經存在了幾十年,在不久的將來很可能還會繼續存在。
然而,不可避免的是,它們最終將被根據目前正在進行的研究開發的更新方案所取代。新的加密貨幣系統在最初提出時很少被廣泛應用,需要一個非正式的試用期來檢查系統的安全性並證明或反駁其假設。
區塊鏈領域的相應增長推動了加密貨幣研究,並將在可預見的未來繼續這樣做。
雖然今天的大部分相關研究都致力於零知識證明,但目前不在區塊鏈交叉領域的其他加密貨幣學領域也可能在未來提供很強的相關性。
加密貨幣學可能會處理一些最敏感的信息,並且對這些方案進行最大程度的審查是不容商量的。這種延遲意味著新計劃可能需要幾十年的時間才能脫穎而出。
資訊來源:由0x資訊編譯自CRIPTOTARIO。版權歸作者Criptotario所有,未經許可,不得轉載