最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

當前位置:主頁 > 區(qū)塊鏈 > 區(qū)塊鏈技術(shù) > Web3助記詞和生成私鑰、公鑰、地址

Web3錢包中助記詞和生成私鑰、公鑰、地址的基本原理

2026-02-28 12:44:22 | 來源: | 作者:佚名
為了學習錢包、助記詞、私鑰、公鑰、地址的知識,我瀏覽了大量的網(wǎng)頁、博客、社區(qū),沒發(fā)現(xiàn)一篇令我滿意的文章,能夠用最簡潔的方式 + 實例代碼把知識講解清楚

于是乎,我決定自己寫一個系列文章。記錄我的學習研究成果。

我認為,用代碼一步步生成一個私鑰、公鑰、地址,是更好的學習方式,接下來就使用 Go 語言來做到這一點。

寫代碼之前,先補充一些必備知識。

1. 橢圓曲線是什么?

以太坊和比特幣使用完全相同的橢圓曲線:secp256k1,公鑰就是這個橢圓曲線上的(x, y)坐標,x,y 數(shù)值通過私鑰唯一確定。

x、y 各 32 字節(jié),故公鑰為 64 字節(jié)。你可能會看到 65 字節(jié)表示的公鑰,這是由 SECG 發(fā)布的行業(yè)標準的一種序列化編碼方式,在最前面加一個字節(jié)的前綴,04 表示公鑰為非壓縮格式,即完整存儲了 x 和 y 的坐標各 32 字節(jié)。

為什么要分為 壓縮公鑰 和 非壓縮公鑰 呢?

因為在secp256k1的橢圓曲線方程里,只要知道其中一個坐標值,另一個坐標值可以通過解方程得出,因此可以只存儲其中一個坐標,這樣就可以節(jié)約 32 個字節(jié),從而引入了壓縮格式的公鑰,前綴為 02 或 03。

故非壓縮格式的公鑰 65 字節(jié)(前綴 04 + 64 字節(jié)的實際公鑰),壓縮格式的公鑰 33 字節(jié)(前綴 02 或 03 + 32 字節(jié)的一個坐標值)。

推薦閱讀:吳軍《數(shù)學之美》第 31 章 橢圓曲線加密原理

2. 私鑰的簡單介紹

以太坊私鑰只是一個隨機生成的數(shù)字。這個數(shù)字是 256 位的,且必須是完全隨機的,你可以投擲硬幣 256 次,得到一個二進制數(shù)字作為私鑰。只要不可預測且不可重復,具體怎么得到這個 256 位的隨機數(shù)字并不重要。

大多數(shù)情況下,我們都是寫代碼生成私鑰,這時候最重要的就是找到密碼學安全的隨機源,千萬不要自己生成隨機數(shù)或使用編程語言自帶的簡單隨機數(shù),你使用的隨機數(shù)一定要是密碼學安全的,這一點至關(guān)重要。

私鑰的重要性不言而喻。需要強調(diào)的是,私鑰絕對不可以丟失,和銀行卡密碼不一樣,私鑰如果丟失無法像找回密碼那樣還能恢復,這是去中心化的特點。

在中心化世界里,我們用銀行卡不擔心密碼丟失,因為可以找回,但是消費記錄、數(shù)據(jù)隱私無法保證,好比在互聯(lián)網(wǎng)上裸奔。

在去中心化世界,數(shù)據(jù)倒是可以做到隱私(雖然目前來看,大家并不關(guān)心隱私),但是很不方便,比如保存私鑰就是個很麻煩的問題。

我不是想談數(shù)據(jù)隱私、保存私鑰的話題,因為目前沒什么好的解決方案。而是想引出我一直以來的想法,就是任何事物都具有兩面性。正所謂 "禍兮福所倚,福兮禍所伏",當你學習有負面情緒,堅持不下去的時候,想一想負面情緒的好處。我認為正是因為有了負面情緒的存在,才擋住了很多比我們更聰明的人的腳步,讓我們得以有機會超越他們。如果學習沒有負面情緒,那所有人都堅持學習了,那大家只能看誰最聰明了,這樣哪還有普通人的機會。從這個角度,我們需要感謝負面情緒。

3. 助記詞

助記詞涉及到錢包的行業(yè)標準了,我會在本系列第三篇進一步講解?,F(xiàn)在,簡單了解一下,前面說了,私鑰是隨機生成的一個數(shù)字,那如果需要 10 個賬戶?100 個賬戶?甚至 1000000 個賬戶呢?就要隨機生成 1000000 個私鑰嗎?這么多私鑰怎么管理?怎么保存?基于此,助記詞誕生了。

助記詞可以管理成千上萬個私鑰,這就需要了解以太坊的 2 種錢包了,從下一篇文章開始,我將連續(xù)介紹錢包及開發(fā)一個錢包。

使用 Go 語言生成私鑰、公鑰、地址

下圖是生成私鑰、公鑰、地址的基本原理,現(xiàn)在根據(jù)這個原理圖,寫出相應的代碼。

需要引入的包

import (
    "crypto/elliptic"
    "crypto/rand"
    "encoding/hex"
    "github.com/ethereum/go-ethereum/common"
    "github.com/ethereum/go-ethereum/crypto"
    "github.com/ethereum/go-ethereum/crypto/secp256k1"
)

生成一個橢圓曲線。

curve := secp256k1.S256()

生成私鑰(32byte)

b := make([]byte, curve.Params().N.BitLen()/8)
io.ReadFull(rand.Reader, b)
key := new(big.Int).SetBytes(b) // key就是私鑰
// 打印私鑰
fmt.Println("key:", len(key.Bytes()))
fmt.Println("key:", hex.EncodeToString(key.Bytes()))

生成公鑰:對私鑰進行橢圓曲線加密,生成公鑰(64byte)

X, Y := curve.ScalarBaseMult(key.Bytes())
pubKey := elliptic.Marshal(curve, X, Y)
fmt.Println("pubKey:", pubKey)

生成地址:去掉公鑰第一個字節(jié) 04,再使用 keccak256 算法壓縮公鑰,最后的 20byte 就是地址

compressPubKey := crypto.Keccak256(pubKey[1:])
addr := common.BytesToAddress(compressPubKey[12:])
fmt.Println("addr:", addr.String())

驗證私鑰和地址匹配

將第 3 步產(chǎn)生的私鑰導入 metamask
查看 metamask 生成的地址,和第 5 步計算出的地址是否匹配

總結(jié)

記住上面的基本原理流程圖,就算是學會了本文最重要的內(nèi)容。

免責聲明:本文只為提供市場訊息,所有內(nèi)容及觀點僅供參考,不構(gòu)成投資建議,不代表本站觀點和立場。投資者應自行決策與交易,對投資者交易形成的直接或間接損失,作者及本站將不承擔任何責任。!
Tag:助記詞   生成私鑰   公鑰   地址  

你可能感興趣的文章

幣圈快訊

  • Monad宣布將出塊時間降低至300毫秒

    2026-07-27 04:56
    7月27日,EntropyAdvisors數(shù)據(jù)主管TomWan在社交媒體上發(fā)文表示,Monad剛剛宣布將出塊時間降低至300毫秒;Solana也正在從400毫秒向200毫秒目標推進。截至目前,Arbitrum和RobinhoodChain仍然保持最快出塊速度領(lǐng)先地位,分別達到250毫秒和100毫秒。
  • “?;鹌陂g”發(fā)勝利AI圖伊媒指特朗普“投資”虛擬火力

    2026-07-27 04:48
    7月27日,美國總統(tǒng)特朗普在社交平臺接連發(fā)布了多張AI生成的圖片,展示美國軍隊轟炸伊朗的霍爾木茲島并扣押伊朗油輪。這些帖子發(fā)布于當?shù)貢r間周日下午,正值美伊部隊據(jù)報道進入暫時停火狀態(tài),過去48小時內(nèi)沒有發(fā)生攻擊。伊朗PressTV發(fā)文置評稱,隨著美國媒體報道美軍彈藥庫存告急,特朗普似乎正在投資另一種“火力”——為其最新的想象中戰(zhàn)場勝利,購買更多AI圖像生成服務。(金十)
  • Bankr開發(fā)者:Bankr官方X遭遇入侵平臺不存在漏洞被利用

    2026-07-27 04:47
    7月27日,Bankr開發(fā)者@0xDeployer發(fā)文表示,Bankr的基礎設施并未遭到入侵,也沒有任何Bankr漏洞被利用。攻擊者攻破的是Bankr的X(原Twitter)賬號。如果你是Bankr用戶,請在你的Bankr賬戶中開啟多因素認證(MFA)。這樣,即使你的X賬號被入侵,你的Bankr賬戶仍然可以保持安全。目前,Bankr團隊仍在等待X官方團隊的回復,后續(xù)將發(fā)布進一步更新。
  • WSJ:特朗普否認彈藥短缺是個問題堅稱美國擁有的彈藥遠超世界上任何國家

    2026-07-27 04:06
    7月27日,據(jù)華爾街日報:特朗普否認彈藥短缺是個問題,他堅稱,美國擁有的彈藥遠超世界上任何國家,也遠超實際需求。(金十數(shù)據(jù)APP)
  • 紐約梅隆銀行計劃在2027年推出全天候代幣化美國國債結(jié)算服務

    2026-07-27 03:35
    7月27日,據(jù)CoinBureau披露,管理資產(chǎn)總額達62.6萬億美元的紐約梅隆銀行(BNYMellon)計劃2027年推出全天候(24/7)的代幣化美國國債結(jié)算服務,并將于今年年底前開始進行私有區(qū)塊鏈試點。
  • 查看更多
更多

熱門幣種

  • 幣種
    最新價格
    24H漲跌幅
  • bitcoin BTC 比特幣

    BTC

    比特幣

    $ 64660.91¥ 437767.29
    +0.5%
  • ethereum ETH 以太坊

    ETH

    以太坊

    $ 1912.93¥ 12950.91
    +2.21%
  • tether USDT 泰達幣

    USDT

    泰達幣

    $ 0.9993¥ 6.7654
    +0.02%
  • binance-coin BNB 幣安幣

    BNB

    幣安幣

    $ 573.06¥ 3879.73
    +0.8%
  • usdc USDC USD Coin

    USDC

    USD Coin

    $ 1.0008¥ 6.7756
    +0%
  • ripple XRP 瑞波幣

    XRP

    瑞波幣

    $ 1.1027¥ 7.4654
    +0.37%
  • solana SOL Solana

    SOL

    Solana

    $ 75.3077¥ 509.84
    +1.2%
  • tron TRX 波場

    TRX

    波場

    $ 0.332¥ 2.2477
    +0.39%
  • hyperliquid HYPE Hyperliquid

    HYPE

    Hyperliquid

    $ 58.9018¥ 398.77
    +1.3%
  • dogecoin DOGE 狗狗幣

    DOGE

    狗狗幣

    $ 0.07256¥ 0.4912
    +0.07%
东丰县| 米脂县| 磐安县| 昌宁县| 昌乐县| 高密市| 临沂市| 铜川市| 新宾| 民权县| 洪湖市| 阿克陶县| 延津县| 松滋市| 台前县| 周口市| 松阳县| 宁晋县| 沾益县| 石门县| 社会| 万源市| 泸定县| 台州市| 琼中| 探索| 苍梧县| 扶沟县| 宜川县| 德江县| 旅游| 长岛县| 宝鸡市| 清流县| 伊宁县| 镇巴县| 泊头市| 东乡县| 深圳市| 托里县| 苍南县|