閱讀時間 4 分鐘
概覽
由於在網頁應用程式中廣泛應用且語法簡明,Ruby 受到眾多開發者的青睞。本指南將介紹如何使用ruby-ethgem/套件,在 Ruby 中建立以太坊地址。
先決條件
- 您的系統中已安裝 Ruby(Ruby 2.x 以上版本)
- Ruby 環境管理工具 (RBEnv)
- 文字編輯器
什麼是以太坊地址?
當您登入任何網路平台時,都需要透過一組憑證來進行身分驗證。不妨將以太坊地址視為您的使用者名稱,而對應的私鑰則視為密碼。雖然您的以太坊地址是公開的且可以分享,但私鑰必須始終保密。透過這組組合,您便能與以太坊區塊鏈進行互動。 以太坊地址是您在區塊鏈上的身分識別,其格式如下:「0x6E0d01A76C3Cf4288372a29124A26D4353EE51BE」。擁有有效的以太坊地址是以下情況的必要條件:
- 接收/發送以太幣
- 簽署/發送交易
- 連線至去中心化應用程式
以太坊地址是如何生成的:
- 首先會產生一個由 64 個字元(十六進位)組成的隨機私密金鑰(256 位元/32 位元組)。
例如:
0xf4a2b939592564feb35ab10a8e04f6f2fe0943579fb3c9c33505298978b74893
- 接著,會利用橢圓曲線數位簽章演算法(ECDSA),從生成的私鑰推導出一個 128(十六進位)字元(64 位元組)的公鑰。
例如:
0x04345f1a86ebf24a6dbeff80f6a2a574d46efaa3ad3988de94aa68b695f09db9ddca37439f99548da0a1fe4acf4721a945a599a5d789c18a06b20349e803fdbbe
- 接著,將 (128 個字元 / 64 位元組) 的公鑰套用Keccak-256雜湊函數,以獲得一個 64 個字元 (32 位元組) 的雜湊字串。此字串的最後 40 個字元 / 20 位元組,加上前綴 0x,即成為最終的以太坊地址。
例如:
0xd5e099c71b797516c10ed0f0d895f429c2781142
註:程式碼中的 0x 表示該數字/字串是以十六進位制書寫的。
什麼是 Ruby?
Ruby是一種開源的解釋型高階程式語言。Ruby 的設計融合了 Perl、Smalltalk、Eiffel、Ada 以及 Lisp 等語言,這些正是松本行弘(Yukihiro “Matz” Matsumoto)最喜愛的程式語言。Ruby 完全採用物件導向設計;即使是整數這類最基礎的資料類型,也內含方法與實例變數。這使得方法鏈接成為可能,藉此將多行程式碼整合為一行。 Ruby on Rails 作為一種 Ruby 框架,協助該語言在網頁程式設計領域廣受歡迎,其主要吸引力在於程式設計師無需花費大量時間建立檔案。
為了實現建立以太坊地址的目標,我們將使用一個名為ruby-eth 的 Ruby gem。
什麼是 ruby-eth?
Ruby-eth是一個協助簽署交易及產生金鑰的函式庫,透過 Ruby-eth,我們可以利用任何節點來建立並廣播以太坊交易。此 gem 允許將金鑰與節點分離。只要能在任何地方執行 Ruby,即可簽署交易並管理金鑰,並透過您選擇的任何節點端點廣播交易。
安裝依賴項
在安裝 gems 之前,請先確認已安裝 Ruby。開啟終端機並執行以下指令:
$ ruby -v
對於Linux/UNIX:您可以依照此處的指南,使用您所使用的發行版的套件管理系統,或使用rbenv或RVM 等第三方工具。
針對macOS:您可以使用rbenv或RVM 等第三方工具。
Windows 系統:您可以使用RubyInstaller。
我們將使用rbenv來管理專案的 Ruby 版本。首先,要檢查是否已安裝 rbenv,請輸入:
$ rbenv -v
它應會顯示您系統上已安裝的 rbenv 當前版本;若未顯示,請根據此處的資訊下載它。接著開啟終端機,並輸入以下指令,以在該目錄中啟用特定的 Ruby 版本。
$ rbenv install 2.6.5
$ rbenv local 2.6.5
確認 Ruby 已安裝且版本正確(本例中為 2.6.5)後,我們就繼續安裝所需的 gems。您可以透過 Ruby 的套件管理工具 RubyGems,在命令列中進行安裝:
$ gem install eth
如果您使用的是 macOS,在安裝 gem 時可能會遇到與權限相關的問題,因為 macOS 隨附的 Ruby 版本通常是供 Apple 內部使用的;我們建議使用rbenv和RVM(Ruby 版本管理器)來管理一個獨立的 Ruby 版本,該版本將安裝在您的家目錄中的沙盒內,您可以在其中進行修改,而無需擔心會影響系統的 Ruby。
產生一個以太坊地址。
請開啟您的文字編輯器,建立一個名為 address.rb 的新 Ruby 檔案,並將以下程式碼複製並貼上至該檔案中。
require "eth"
key = Eth::Key.new
key.public_hex
puts "SAVE BUT DO NOT SHARE THIS (Private Key): 0x#{key.private_hex}"
puts "Address: #{key.address}"
上述程式碼的說明
第 1 行:導入 eth gem/套件。
第 2 行:建立 Eth 物件的實例,建立一個新金鑰,並將其儲存至 key 變數中。
第 3 行:使用 public_hex 方法從金鑰生成十六進位制公鑰。
第 4 行:使用 private_key 方法從 key 產生一個十六進位私密金鑰,並在前面加上 0x 前綴;接著帶有警告訊息地輸出該金鑰。
第 5 行:產生地址,並以字串「Address:」輸出該地址
請儲存該檔案,並使用... 執行它。
$ ruby address.rb
如果一切順利,且程式碼成功執行,結果應如下所示。

結論
恭喜,您現在已經擁有專屬的以太坊地址,可用於簽署/發送交易,並與以太坊網路進行互動。請參閱《如何使用 Ruby(ethereum.rb)連線至以太坊》這份指南。
訂閱我們的電子報,獲取更多關於以太坊的文章與指南。如有任何意見回饋,歡迎透過Twitter 聯絡我們。您隨時都可以在我們的Discord社群伺服器上與我們聊天,那裡聚集了您這輩子見過最酷的開發者們 :)
