Security

如何從 tx 簽名(r,s)中恢復公共並驗證簽名?

  • May 25, 2018

我的第一個問題是如何僅使用 r,s 和橢圓曲線參數以及地址(這是公鑰的散列,因此無法從地址中檢索公鑰)來驗證簽名?

下一個問題是,為什麼乙太坊(我認為也是比特幣)使用散列公鑰作為地址,而不是直接使用公鑰作為地址?

也許這個答案可以幫助你 - https://ethereum.stackexchange.com/a/33346/16729

乙太坊安全模型依賴橢圓曲線加密(ECC)來簽署和驗證交易。在 ECC 中,公鑰和私鑰用於簽名和驗證。它沒有地址的概念。簽署和驗證交易時,您不需要地址。最初的比特幣論文根本沒有提到地址。它們稍後出現是為了使它們更容易記住(壓縮的公鑰是 32 字節,地址是 20 字節)。現在您可以從使用者互動中完全隱藏公鑰,並且只有私鑰和地址。但是內部的乙太坊一直在使用它們來驗證交易。

  1. 在安全方面:

所有密碼方案中的公鑰都與私鑰相關。阻止使用者從您的公鑰計算您的私鑰的唯一安全測量****是假設離散對數“無法解決”

我們都知道,量子密碼學每天都在接近,而這帶來的問題是,如果您正在執行量子 PC/CPU,那麼求解離散對數是“容易的”。所以有了Pk,就有可能得到Sk(私鑰)。

為了預料到這一點,如果你只能訪問 Pk 的散列,你不知道它,所以即使使用量子加密(目前看來,量子將無法輕易傳遞散列函式),你是安全的。

更多關於雜湊函式抵抗量子加密的資訊在這裡。

  1. 在天然氣支出方面。

公鑰的長度比它的雜湊值大得多,它總是一個 256 位變數。因此,如果您計算一天完成的所有交易,您將節省大量交易燃料,因為公鑰將使礦工和節點處理/儲存更多數據,因為它們比雜湊值大得多。

如果您需要,我可以擴展更多解釋,但本質上就是這樣。

按照您對評論的要求進行編輯 ,在這裡您有一個主題,解釋瞭如何從其雜湊中檢索 Pk。

獲取任何乙太坊賬戶的公鑰

希望能幫助到你。

引用自:https://ethereum.stackexchange.com/questions/49263