当前位置:主页 > 区块链 > 区块链技术 > 非确定性钱包介绍

两种钱包之非确定性钱包(keystore管理私钥)

2026-02-28 12:36:50 | 来源: | 作者:佚名
本文讲解非确定性钱包,因为比较简单,下面会直接给出代码实现,下一篇文章会详细讲解分层确定性钱包,这个已经成为了行业标准,我会重磅介绍,并对比两种钱包的适用场景

以太坊上有 2 种钱包:

  • 非确定性钱包,也叫随机钱包,每个账户通过独立的随机数生成器创建,使用keystore管理账户,没有助记词
  • 分层确定性钱包,也叫HD Wallet,每个账户通过固定的种子(seed)派生,使用助记词管理所有账户。

本文讲解非确定性钱包,因为比较简单,下面会直接给出代码实现。下一篇文章会详细讲解分层确定性钱包,这个已经成为了行业标准,我会重磅介绍,并对比两种钱包的适用场景。

概念

随机数生成器:如Web3专题(一) 助记词和生成私钥、公钥、地址的基本原理所说,私钥是 256 位随机数字,需要使用安全的随机源生成,并经过一系列算法生成公钥、地址。

keystore:是一种文件格式,称为存储机制,主要目的是提供一种安全的方式来保管私钥,需要用户提供密码来解锁私钥。

通常,用 keystore 文件加密私钥等信息,来保护非确定性钱包

使用 Go 语言开发一个非确定性钱包

  • 需要引入的包
import (
	"github.com/ethereum/go-ethereum/accounts/keystore"
	"github.com/ethereum/go-ethereum/common"
	"github.com/ethereum/go-ethereum/crypto"
)
  • 创建 keystore 对象,所有的私钥都由这个 keystore 对象管理。在这里,我们指定./keystore文件夹保存账户。

特别提醒
NewKeyStore 方法只会加载目录,并监控目录的变化,不会创建账户,创建账户在下面第 3 步。
NewKeyStore 方法内部会自动扫描./keystore文件夹,并加载这个文件夹下的所有账户到 keystore 对象

// 第一个参数:./keystore 指定账户所在的文件夹
ks := keystore.NewKeyStore("./keystore", keystore.StandardScryptN, keystore.StandardScryptP)
  • 创建一个新账户

NewAccount 会利用你指定的密码在./keystore 目录下创建一个 json 文件,这个文件包含了加密过的私钥、公钥、地址等。
每执行一次 NewAccount 都会创建一个新账户。因此,如果只需要加载已有账户,则不需要执行这个方法。
所有的 json 文件都会存放在./keystore 文件夹。

acc, err := ks.NewAccount("your password")
if err != nil {
    panic(err)
}
  • 获取已创建的账户,会从./keystore 文件夹内拿到所有账户

ks对象是第2步创建的,会自动扫描./keystore 文件夹,拿到所有账户。

for _, acc := range ks.Accounts() {
    fmt.Println("账户地址:", acc.Address.String())
}
  • 如果希望签名交易的话,可以使用钱包
for _, wallet := range ks.Wallets() {
    // 这里每个钱包获得的第一个account和上面第4步的账户是一一对应的
    _, _ = wallet.SignTx(wallet.Accounts()[0], nil, nil)
    _, _ = wallet.SignData(wallet.Accounts()[0], "", nil)
}
  • 如果希望导出私钥,则需要密码才可以。PASSWORD是上面第3步创建新账户设置的密码。
// 先把账户的 json 文件导出为[]byte
kjson, err := ks.Export(ks.Accounts()[0], PASSWORD, PASSWORD)
if err != nil {
    panic(err.Error())
}
// 通过kjson+密码可以解密私钥
key, err := keystore.DecryptKey(kjson, PASSWORD)
if err != nil {
    panic(err.Error())
}
privateKey := key.PrivateKey
fmt.Println(common.BytesToHash(crypto.FromECDSA(privateKey)).String())

至此,我们已经学会了如何使用 Go 语言创建非确定性钱包

免责声明:本文只为提供市场讯息,所有内容及观点仅供参考,不构成投资建议,不代表本站观点和立场。投资者应自行决策与交易,对投资者交易形成的直接或间接损失,作者及本站将不承担任何责任。!

你可能感兴趣的文章

币圈快讯

  • Uniswap拟将协议费用收取及UNI销毁机制扩展至RobinhoodChain

    2026-07-15 20:28
    Uniswap发起治理提案,拟将协议费用收取及UNI销毁机制扩展至RobinhoodChain,涵盖v2、v3和v4三个版本。根据提案,RobinhoodChain上产生的协议费用将汇入该链上的TokenJar合约,Searcher可通过将UNI桥接回以太坊主网并发送至销毁地址的方式兑换费用。
  • 美国6月CPI环比下降0.4%BTC升至6.49万美元

    2026-07-15 20:27
    美国6月CPI环比下降0.4%,为2020年4月以来最大月度降幅;年率从5月的4.2%降至3.5%,低于3.8%的预期。核心CPI降至2.6%,低于预期,环比持平。主要加密资产在数据公布后上涨,BTC从约6.2万美元升至6.49万美元,ETH上涨7%至1884美元,约3亿美元空头头寸被清算。美联储主席KevinWarsh在国会作证时表示,美联储对持续高通胀“零容忍”;若政策正确,过去五年的通胀上升将成为过去。他在被问及CPI数据时表示,不认同“任务完成”的判断,并未给出下一步政策指引。
  • BackedFi以500枚HYPE购买solana现货交易代码价值3.42万美元

    2026-07-15 20:25
    HyperliquidNews在X平台发文表示,BackedFi以500枚HYPE购买新的solana现货交易代码solana:Xsc9qvGR1efVDFGLrVsmkzv3qi45LTBjeUKSPmx9qEh,价值3.42万美元。
  • 英国欺诈审查建议法官接受加密洗钱与AI诈骗培训提及逾6.1万枚BTC扣押案

    2026-07-15 20:22
    英国政府委托的一项欺诈审查建议,JudicialCollege应为英格兰和威尔士所有法官及治安法官提供培训,以应对涉及AI诈骗和使用加密货币洗钱的案件增加。该报告认为,2006年《欺诈法》整体可用于处理AI诈骗,问题在于审理相关案件的法院准备不足。报告建议评估现有“长期和复杂审判”课程是否应更新或替换为欺诈及相关犯罪专项模块,并考虑对可能审理复杂欺诈案件的法官强制培训。报告称,欺诈可能很快占英格兰和威尔士全部犯罪的一半,截至2025年6月的一年内估计发生410万起案件,影响每14名成年人中的1人和每4家企业中的1家。FinancialOmbudsmanService估计,目前超过一半投资诈骗涉及加密资产。报告还提及QianZhimin案,其在中国运营庞氏骗局,诈骗超过12.8万名受害者约50亿英镑,并将收益洗入比特币。该案产生英国史上最大已确认比特币扣押,规模超过6.1万枚BTC,QianZhimin于11月在SouthwarkCrownCourt被判处11年8个月监禁。
  • Multicoin合伙人看涨HYPE至319美元建议投资者分批建仓

    2026-07-15 20:21
    MulticoinCapital管理合伙人TusharJain在参加“WhenShiftHappens”播客时,详细分享了对HYPE的估值逻辑和投资框架。认为HYPE当前被严重低估,基准估值应当为319美元,并建议采用务实的建仓策略来应对波动。Tushar坦言,试图精准抄底几乎不可能,推荐的框架是:第一个三分之一:立即买入(即刻入场);第二个三分之一:按固定时间表定投(例如1-2个月内分批);第三个三分之一:逢低机动加仓。这种方法能显著减少心理负担,同时在长期看好标的时实现良好平均成本。Tushar的估值模型基于以下四个较为保守的假设:未来两年加密衍生品交易量保持35%年复合增速;DeFi衍生品市场占比提升至32%;USDC抵押物余额与交易量同步增长;部分项目方目前依靠补贴刷出来的“虚假繁荣”将在补贴退去后消失,Hyperliquid的真实市占率将进一步提升。即使采用这些保守假设,HYPE当前价格仍具有显著上行空间,部分乐观情景下可能超过600美元。Tushar认为Hyperliquid远不止是一个高速增长的永续合约平台,而是有望成为加密金融基础设施的核心。
  • 查看更多
更多

热门币种

  • 币种
    最新价格
    24H涨跌幅
  • bitcoin BTC 比特币

    BTC

    比特币

    $ 64746.39¥ 438760.38
    +3.02%
  • ethereum ETH 以太坊

    ETH

    以太坊

    $ 1883.17¥ 12761.48
    +4.72%
  • tether USDT 泰达币

    USDT

    泰达币

    $ 0.999¥ 6.7698
    +0.02%
  • binance-coin BNB 币安币

    BNB

    币安币

    $ 578.99¥ 3923.58
    +1.45%
  • usdc USDC USD Coin

    USDC

    USD Coin

    $ 1.0006¥ 6.7806
    -0.03%
  • ripple XRP 瑞波币

    XRP

    瑞波币

    $ 1.1081¥ 7.5091
    +3.34%
  • solana SOL Solana

    SOL

    Solana

    $ 77.5064¥ 525.22
    +2.79%
  • tron TRX 波场

    TRX

    波场

    $ 0.328¥ 2.2227
    +0.77%
  • hyperliquid HYPE Hyperliquid

    HYPE

    Hyperliquid

    $ 68.4309¥ 463.72
    +7.15%
  • dogecoin DOGE 狗狗币

    DOGE

    狗狗币

    $ 0.073854¥ 0.5004
    +2.18%