閱讀時間 4 分鐘
概覽
Python 是目前用途最廣泛的程式語言之一,擁有豐富的應用場景;我們可以利用 Python 開發從前端到後端的各種應用程式。在本指南中,我們將介紹如何使用Web3Py函式庫在 Python 中建立以太坊地址。
先決條件
- 您的系統中已安裝 Python(版本 3.6 以上)以及 Pip3。
- 一個文字編輯器。
什麼是以太坊地址?
當您登入任何網路平台時,都需要使用使用者名稱和密碼的組合。請將以太坊地址視為使用者名稱,而對應的私鑰則視為密碼。透過這組地址與私鑰的組合,您便能與以太坊區塊鏈進行互動。 以太坊地址是您在區塊鏈上的身分識別。它看起來像這樣:「0xd5e099c71b797516c10ed0f0d895f429c2781142」。以太坊地址是公開的,可以分享,但私鑰必須始終保密。以太坊地址是透過私鑰生成的。以下是以太坊地址的生成過程:
- 產生一個長度為 (64 個十六進位字元 / 256 位元 / 32 位元組) 的隨機私密金鑰
0xf4a2b939592564feb35ab10a8e04f6f2fe0943579fb3c9c33505298978b74893
- 公鑰是透過橢圓曲線數位簽章演算法(ECDSA),從私鑰(128 個(十六進位)字元/512 位元/64 位元組)衍生而來
0x04345f1a86ebf24a6dbeff80f6a2a574d46efaa3ad3988de94aa68b695f09db9ddca37439f99548da0a1fe4acf4721a945a599a5d789c18a06b20349e803fdbbe3
- 接著對 (128 個字元 / 64 位元組) 的公鑰套用 Keccak-256 雜湊函數,產生一個 (64 個字元 / 32 位元組) 的雜湊字串;其中最後 40 個字元 / 20 位元組在前面加上 0x 後,即為以太坊地址。
0xd5e099c71b797516c10ed0f0d895f429c2781142
以下是幾項需要以太坊地址的事項:
- 接收/發送 ETH。
- 簽署/發送交易。
- 連線至應用程式。
什麼是 Python?
Python是一種通用程式設計語言,應用範圍廣泛。它具備高階資料結構,採用動態類型系統,並具有動態綁定等多項功能,使其成為開發複雜應用程式的得力工具,同時也常被用於腳本編寫或作為連接不同元件的「黏合程式碼」。此外,它幾乎能在所有作業系統上執行系統呼叫。 由於 Python 能夠在幾乎所有系統架構上運行且無所不在,因此被視為一種通用語言。Python 是一種詮釋式、互動式且面向物件的程式設計語言。
什麼是 Web3Py?
Web3.py 是一個 Python 函式庫,可協助您與以太坊區塊鏈進行互動;透過 Web3.py,開發者能為其去中心化應用程式(dApps)建立後端客戶端,以處理與區塊鏈的互動、從區塊鏈讀取資料、寫入交易,或執行智慧合約邏輯。其原始 API 源自 Web3.js 的 JavaScript API,但隨著時間推移不斷改進,以更好地滿足 Python 開發者的需求。
由於我們這裡使用的是 Python,因此將採用 Web3.py。
現在,讓我們來看看如何在 Python 中生成一個新的以太坊地址。
在 Python 中產生一個以太坊地址
在此,我們的第一步是檢查您的系統上是否已安裝 Python 3.6 或更高版本;您可以透過在終端機/命令提示字元中輸入以下指令,來確認系統是否已安裝 Python:
$ python --version
若尚未安裝,您可以依照Python 官方網站「下載」頁面上的說明進行操作。
我們將使用Web3Py,這是一個用於與以太坊互動的 Python 函式庫。我們將透過 PIP 安裝 Web3Py,請在終端機/命令提示字元中輸入以下指令:
$ pip install web3
注意:Python 及其他函式庫的版本差異常會導致常見的安裝問題。因此,若您遇到任何問題,請嘗試建立虛擬環境,並針對 web3.py 的安裝進行疑難排解。
如果一切順利,Web3.py 將會安裝到您的系統中。
現在,讓我們建立一個 Python 檔案,並將其命名為 address.py,然後將以下程式碼複製並貼上到該檔案中:
來自 eth_account import Account
import secrets
priv = secrets.token_hex(32)
private_key = "0x" + priv
print ("請儲存但切勿分享此內容:", private_key)
acct = Account.from_key(私密金鑰)
print("地址:", acct.地址)
上述程式碼的說明
第 1 行:從 Web3.py 的 eth_account 模組導入 Account
第 2 行:導入 Python 的 secrets 模組,這將有助於我們產生一個隨機的十六進位字串。
第 3 行:產生一個長度為 32 位元組/64 個字元的隨機十六進位字串,並將其儲存至 priv 變數中
第 4 行:將 0x 前綴附加至儲存於 priv 中的 64 個字元十六進位字串,並將新字串儲存至變數 private_key 中。
第 5 行:輸出我們的私鑰並顯示警告訊息。
第 6 行:使用 private_key 建立新帳戶,並將其儲存至變數 acct 中。
第 7 行:將儲存於 acct 變數中的帳戶地址,搭配字串「地址:」一起輸出
現在,讓我們執行我們的 Python 程式。
$ python address.py
如果您正確地按照指示操作,輸出結果應該會類似如下所示。第一行是私鑰,第二行則是以太坊地址。
結論
現在您已擁有自己的以太坊地址(及私鑰),即可發送交易並與智慧合約互動,更多資訊請參閱Web3.py 的官方文件。
訂閱我們的電子報,獲取更多關於以太坊的文章與指南。如有任何意見回饋,歡迎透過Twitter 聯絡我們。您隨時都可以在我們的Discord社群伺服器上與我們聊天,那裡聚集了您這輩子見過最酷的開發者們 :)
