DAOrayaki:簽名在數字資產和加密貨幣中的作用
原文作者: Iraklis Leontiadis
原文標題: The Role of Signatures in Digital Assets and Cryptocurrencies
可能你正在閱讀本文的時,所使用的瀏覽器和內容終端之間的通信保密也正在運行中,這一過程得益於核心密碼原語實現的身份驗證。可能你沒聽說過類似加密(encryption)、簽名(signatures)、消息認證代碼(message authentication code)等抽象名詞,但端到端的安全也正被這些技術保護著,外部某一方是無法在不被發現的情況下閱讀傳輸的內容亦或改變內容的。在本文中,我們將重點分析數字簽名的內部結構以及它們在數字資產和加密貨幣中的作用。
往期文章可參考:DAOrayaki |非金融類去中心化應用的產品原則
數字簽名
圖片描述
數字簽名
數字簽名
圖片描述
圖片描述
電子簽名
驗證機構將發送者的公鑰及其元數據簽名(可公開識別)進行綁定。協議的安全性不僅依賴於簽名的安全保證、整個過程的安全實現、秘鑰的安全存儲和可靠的通信渠道,還依賴於驗證機構本身是否足夠安全。攻擊者可以執行中間人攻擊或冒充相關方,攻擊驗證機構和發行“虛假”證書的後果是糟糕的,相關例子屢見不鮮,比如Diginotar、Comodo和MonPass。
數字資產中的簽名
隨著分佈式賬本技術和在此基礎上的金融應用(加密貨幣)出現,人們提起了對數字簽名的興趣。數字簽名是數字資產系統的核心,保證了數字資產所有權,並防止了雙花問題(花費的比持有的多)。
在一個加密貨幣系統中,當史蒂夫想發送特定數量的數字資產(例如比特幣)給勞拉時,史蒂夫會在自己的賬戶簽署一個包含支出信息的字節流,然後,擁有公開信息的礦工(驗證者)驗證簽名的有效性,並根據基本的共識機制,將其作為主分佈式賬本上的一個區塊,最終完成交易。
數字簽名如果出現缺陷,會對系統的公平性和安全性產生破壞性的影響。攻擊者可以通過不安全的私鑰存儲,或底層算法的潛在缺陷,啟動未經授權的交易,造成的損失可能永遠無法恢復。在傳統金融系統中,卡號和密碼就是秘鑰,所以金融數字資產的安全就包括秘鑰的安全和數字簽名的安全。
目前有三種簽名管理分佈式賬本系統:ECDSA、Schnorr和EdDSA。這些簽名方案都依賴於橢圓曲線組和數學難題。不同的曲線提供不同的效率和安全保證,例如愛德華曲線通常被認為更安全,因為它更容易在恆定的時間內實現,以避免因其通用形式而產生的側信道攻擊。
在下文,我們將把底層的橢圓曲線運算組作為一個“黑匣子”,只強調上面的代數方程。下文的所有簽名,都在一個質數階為q的基礎組G進行算術運算,所有的運算都是q的模運算且存在一個散列函數H,輸入任意字節流,輸出的是Zq中的元素。
ECDSA簽名
比特幣網絡上線時,中本聰決定將ECDSA定為基礎簽名方案。簽名算法的第一步,是對新的隨機k進行採樣,如果不這樣,對手可以通過不同信息的兩個不同的簽名提取密鑰(例如PS3被黑事件)。如果重複隨機性聽起來比較極端,那麼只要重複k中的一部分字節,就足夠以良好的概率提取剩餘的隨機性。
圖片描述
圖片描述
ECDSA簽名
圖片描述
圖片描述
Schnorr簽名
結論
圖片描述
結論
結論
密碼學研究隨著區塊鏈生態系統的設計、實施和部署而發展:閾值密碼學、零知識證明、聚合簽名、VDF、VRF、分佈式隨機信標等。在過去的幾年裡,從研究和工程方面投入到數字簽名的工作量呈指數級增長,我們見證了從協議描述到POC到實現生產的最短時間週期。
我們也將看到替代上述簽名的新簽名;更快、更安全、更易於實施。從協議描述到POC再到生產的每一步都需要進行徹底的審查,一個小缺陷都會造成巨大的損失。早期採用到成為標準需要數年時間的積累,加密協議是每個數字金融系統的核心,確保數字資產的安全,一個最佳選擇總是需要權衡取捨。
加密協議在生產環境中不是獨立存在的,安全分析僅是第一步,產品所有者、工程師、QA和devops需要與密碼學家加強合作,了解部署加密代碼的風險,並確保免受惡意用戶的影響。完美安全永遠不會存在,在Parfin我們採取了所有必要的步驟來保護相關基礎設施,盡可能地信任並儘量減少潛在的關鍵信息暴露。


