以太坊區塊鏈上的不對稱密碼學

條款:公鑰私鑰錢包地址簽名交易 ; 所有人都在允許用戶在區塊鏈上執行交易方面發揮作用,但許多人都很難理解他們的意思以及他們的工作方式。我的目的是讓您直觀地了解這些術語在以太坊區塊鏈中的相互作用。

在本文中,我將提供:

  1. 帶有非區塊鏈相關用例的公鑰和私鑰簽名簡介 – 從100英尺,50英尺和10英尺的角度給出相同的解釋三次。
  2. 在以太坊區塊鏈的上下文中介紹公鑰和私鑰 –將第1部分與以太坊區塊鏈相關聯。

第1節:使用非區塊鏈相關用例的公鑰和私鑰簽名簡介

100英尺 – 最高級別說明:假設Alice是Bob’s Bank的成員。愛麗絲想向鮑勃發送一條消息:「向吉米發送1美元」。愛麗絲希望確保在此過程中沒有人改變她的信息。所以愛麗絲將如何使用她的公鑰和私鑰完成此任務:

0D9xhn_yqv68Q9v6Y

  • Alice用她的私鑰「鎖定」她的消息,然後將消息發送給Bob。
  • 在Bob收到消息後,他現在可以用Alice的公鑰「解鎖」消息,並知道Alice是消息的真正發送者。
  • Bob現在可以閱讀消息「向Jimmy發送1美元」並更新他的分類帳以反映此交易( – Alice的帳戶為1美元,Jimmy的帳戶為+ 1美元)

50英尺 – 中等水平的解釋:(同樣的情況,100英尺,但有更多的細節)所以,再次,讓我們說愛麗絲想要給她發送「向吉米發送1美元」的消息,她想確保沒有人改變她沿途的消息。以下是Alice如何使用她的公鑰和私鑰完成此任務,但這次更詳細一點:

0SWsrNGkuVW7MTSuY

  • Alice生成她的「Send $1 to Jimmy」消息​​的哈希值。在此上下文中,散列是一個接受輸入並返回固定長度輸出的函數。例如,「h(x)= x mod 10」將是這種函數的簡單版本。愛麗絲然後用她的私鑰簽署哈希。私鑰簽名是函數「f(hash,private_key)」的輸出,除非您具有完全相同的「hash」和「private_key」作為函數的輸入,否則幾乎不可能重新創建。
  • Alice向Bob發送原始消息「向Jimmy發送$1」以及消息的簽名散列。
  • Bob收到原始消息「向Jimmy發送$1」以及消息的簽名散列。然後,Bob重新創建原始消息的散列版本,並使用Alice的公鑰來驗證簽名的散列是否由Alice的私鑰創建。
  • Bob現在可以更新他的分類賬以反映這筆交易( – Alice的賬戶為1美元,Jimmy的賬戶為+ 1美元)

10英尺:(相同的場景,100英尺,但有代碼)所以第三次,愛麗絲想要給她發送「向吉米發送1美元」的消息,她想確保沒有人改變她的信息。以下是Alice如何使用她的公鑰和私鑰完成此操作,但這次使用的是實際代碼:

0YoPCsIpn0qVe9tvw

  • 在上面的代碼中,Alice將她的消息插入Wallet.sign函數。wallet.sign函數散列輸入,然後使用nodejs「橢圓」庫生成簽名。
  • Bob收到消息後,可以使用同一nodejs「elliptic」庫中的keyFromPublic.verify函數來驗證Alice發送的消息是否與她提供的簽名匹配。
  • Bob現在可以閱讀消息「向Jimmy發送$1」並更新他的分類帳以反映此交易( – Alice的帳戶為1美元,Jimmy的帳戶為+ 1美元)。

第2節:以太坊區塊鏈上下文中的公鑰和私鑰

但是,第1部分對公鑰和私鑰的解釋如何與以太坊區塊鏈相關?

回到第1部分,Alice向Bob發送了一條消息,Bob確認Alice是該消息的真正發送者。在第2節中,它是相同的想法,但不是Bob驗證Alice是消息的真正發送者,而以太坊區塊鏈將驗證Alice是消息的真正發送者。

在第2部分中,Alice希望在以太坊區塊鏈上使用她的公鑰和私鑰對將她的ERC20令牌發送給她的朋友Jimmy。

同樣在第2部分,Alice沒有發送消息「向Jimmy發送$1」,而是Alice的消息將在以太坊區塊鏈上發送命令「向Jimmy發送1個令牌」。

03suNOPXT17XyioW3

所以在我們的例子中,EVM(以太坊虛擬機就是你所謂的以太坊「計算機」,而它正在為你執行任務,這就是執行「發送1令牌到吉米」命令)。EVM以與Bob在第1部分中驗證消息相同的方式驗證命令。如果EVM確定該命令來自Alice,它將執行並且令牌智能合約將更新以反映該事務(來自Alice的帳戶的-1令牌, +1令牌給Jimmy的帳戶)。

結論

區塊鏈被認為是新的和革命性的(它們是),但與任何新技術一樣,它站在其前輩的肩上。以太坊區塊鏈在很大程度上依賴公鑰和私鑰,這些公鑰和私鑰在區塊鏈上使用之前就存在了很久。創建數字簽名只是非對稱密鑰的一個用例,但還有其他用例; 例如,GitHub也使用公鑰和私鑰來加密貨幣和解密遠程主機和客戶端之間的數據。希望在閱讀本文之後,您已經了解了如何使用以太坊區塊鏈以一種全新且有趣的方式使用公鑰和私鑰。

原文 Medium
提示:投資有風險,入市需謹慎,本資訊不作為投資理財建議。請理性投資,切實提高風險防範意識;如有發現的違法犯罪線索,可積極向有關部門舉報反映。
你可能還喜歡