跳至主要內容

如何在 JavaScript 中生成新的以太坊地址

更新於
2025年11月26日

閱讀時間 4 分鐘

概覽

談到程式設計,幾乎沒有人沒用過或沒聽過 JavaScript。JavaScript最初是為客戶端腳本而開發的,但如今已成為一種功能齊全的物件導向與程序式語言,廣泛應用於客戶端和伺服器端應用程式。 JavaScript 的語法借鑒了 Java 和 C++,並基於ECMAScript規格。目前已有超過 1,444,231 個函式庫(且數量仍在持續增加),JavaScript 如今幾乎無所不在,包括在以太坊上開發去中心化應用程式(dApps)。在本指南中,我們將介紹如何使用Ethers.js 在 JavaScript 中建立以太坊地址。

先決條件

  • 您的系統上已安裝 Node.js。
  • 文字編輯器
  • 終端機(又稱命令列)

什麼是以太坊地址?

當您登入任何網路平台時,都需要透過一組憑證來進行身分驗證。不妨將以太坊地址視為您的使用者名稱,而對應的私鑰則視為密碼。雖然您的以太坊地址是公開的且可以分享,但私鑰必須始終保密。透過這組組合,您便能與以太坊區塊鏈進行互動。 以太坊地址是您在區塊鏈上的身分識別,其格式如下:「0x6E0d01A76C3Cf4288372a29124A26D4353EE51BE」。擁有有效的以太坊地址是以下情況的必要條件:


  • 接收/發送以太幣
  • 簽署/發送交易
  • 連線至去中心化應用程式

以太坊地址是如何生成的:

首先會產生一個由 64 個 (十六進位) 字元(256 位元/32 位元組)組成的隨機私密金鑰。例如: 

0xf4a2b939592564feb35ab10a8e04f6f2fe0943579fb3c9c33505298978b74893

 接著,會利用橢圓曲線數位簽章演算法(ECDSA),從生成的私鑰推導出一個 128(十六進位)字元(64 位元組)的公鑰。例如: 

0x04345f1a86ebf24a6dbeff80f6a2a574d46efaa3ad3988de94aa68b695f09db9ddca37439f99548da0a1fe4acf4721a945a599a5d789c18a06b20349e803fdbbe3

接著,將 (128 個字元 / 64 位元組) 的公鑰套用Keccak-256雜湊函數,以獲得一個 64 個字元 (32 位元組) 的雜湊字串。此字串的最後 40 個字元 / 20 位元組,加上前綴 0x,即成為最終的以太坊地址。例如:

0xd5e099c71b797516c10ed0f0d895f429c2781142

:程式碼中的 0x 表示該數字/字串是以十六進位制書寫的。

什麼是 Ethers.js?

Ethers.js 是Web3.js 的輕量級替代方案,而Web3.js 則是當今最常用的以太坊函式庫。部分人士認為 Ethers.js 比其他函式庫更穩定、錯誤較少,且具備詳盡的文件。此外,此函式庫對初學者也十分友善。Ethers.js 維護狀況極佳,許多新進開發者都更傾向使用它而非 Web3.js。

可以在此處進一步了解 Ethers.js,以及如何使用 Ethers.js 連線至以太坊網路。

在 JavaScript 中產生以太坊地址

這裡的第一步是檢查系統上是否已安裝 Node.js。要執行此操作,請將以下內容複製並貼上至您的終端機/命令提示字元中:

$ node -v

若尚未安裝,您可以從官方網站下載 NodeJS 的 LTS 版本。

如果 Node.js 已正確安裝,接下來我們就使用 npm(Node Package Manager,Node.js 的一部分)來安裝Ethers.js(第 6 版)函式庫。

$ npm i ethers

此步驟中最常見的問題是 `node-gyp` 發生內部錯誤。您可以參閱此處的 node-gyp 安裝說明

注意:若您遇到 node-gyp 相關問題,請確保您的 Python 版本與上述說明中列出的相容版本之一相符。 

另一個常見的問題是快取過期;請輸入以下指令來清除您的 npm 快取:

$ npm cache clean

如果 Ethers.js 已成功安裝,接下來就來建立一個以太坊地址吧。

建立一個名為 address.js 的檔案,這將是一個簡短的腳本,用於產生一個隨機私鑰,並根據該私鑰建立一個以太坊地址;請將以下內容複製並貼上至您的 address.js 檔案中:

var ethers = require('ethers');  
var crypto = require('crypto');

var id = crypto.randomBytes(32).toString('hex');
var privateKey = "0x"+id;
console.log("請儲存但請勿分享此內容:", privateKey);

var 錢包 = new ethers.錢包(私鑰);
控制台.log("地址:" + 錢包.地址);

上述程式碼的說明

第 1-2 行:導入 Node.js 隨附的 ethers 函式庫和 crypto 模組

第 4 行:使用 crypto 物件產生一個隨機的 32 位元組十六進位字串,並將其儲存至id變數中。

第 4 行:在id中的字串前加上「0x」前綴,並將新字串儲存至名為privateKey 的變數中。

第 6 行:輸出我們的私密金鑰,並顯示警告訊息。

第 8 行:使用privateKey建立一個新錢包,並將其儲存至wallet變數中。

第 9 行:輸出新建立的錢包地址,並附上訊息「地址:」

儲存並執行您的腳本,以產生一個新的以太坊地址。

$ node address

如果您的程式碼執行成功,輸出結果將類似下方的螢幕截圖。第一行顯示的是私鑰,第二行則顯示您的新以太坊地址。

結論

您的以太坊地址即是您在以太坊網路上的身分識別。這是與網路互動並執行交易所必需的。若要繼續學習 Ethers.js,請參閱這篇《如何使用 Ethers.js 發送以太坊交易》指南。您可從 Ethers.js的官方文件中獲取更多相關資訊。 如您所見,透過 JavaScript 和最新函式庫,生成新的以太坊地址非常迅速。在以太坊區塊鏈上開發去中心化應用程式(dApp),有各式各樣的工具提供支援,這些工具由快速成長的以太坊社群持續更新與改進。請密切關注 Quicknode 提供的更多淺顯易懂的指南——Quicknode 是您經濟實惠且極速的以太坊節點供應商。了解如何開始使用 Quicknode,並在幾分鐘內設定您自己的以太坊端點。

訂閱我們的電子報,獲取更多關於以太坊的文章與指南。如有任何意見回饋,歡迎透過Twitter 聯絡我們。您隨時都可以在我們的Discord社群伺服器上與我們聊天,那裡聚集了您這輩子見過最酷的開發者們 :)

分享這份指南