Contract-Development

交易如何加密和解密?所有對等點都應該持有其他所有對等點的公鑰嗎?

  • January 29, 2021

假設對等點 A 向合約發送交易。對等點 B 和對等點 C 將如何看到這一點。他們是否需要進行加密。如果需要,那麼如何?每個對等點都應該擁有每個帳戶的公鑰嗎?

交易的數據對所有節點都是可見的,這是他們執行合約所必需的。因此,發送交易不需要加密。

也可以看看:

您詢問:

…簽名過程是如何發生的。我可以對此進行一些深入的解釋。

如果想深入了解,請看黃皮書附錄 F ,其中詳細描述了交易簽名和驗證過程。

簡而言之,您發送的交易或多或少是純文字的;它沒有加密。但是,它伴隨著對交易數據的簽名。此簽名是根據交易數據和您的私鑰創建的。

當一個節點收到您的交易時,它可以使用一種稱為ECDSARECOVER. 其輸出是您的公鑰,您的帳戶地址是直接從您的公鑰生成的(這不是秘密)。如果從恢復的公鑰生成的地址與您交易中的“發件人”地址匹配,那麼我們知道整個交易是使用您賬戶的正確私鑰簽署的。

合約沒有私鑰,因此它們不能發送交易。相反,還有其他機制讓合約在 EVM 內部相互呼叫或發送價值。

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