手机版
扫描查看手机站
首页 > 文章 > 加密世界 > 正文

区块链钱包原理科普:关于钱包的基础密码学

时间:2025-07-03 15:35:39来源:525游

通过区块链,人类历史上首次通过技术彻底、纯粹地保障「私有财产神圣不可侵犯」。

让人沉思,让人兴奋的一段话。

可在这背后的基础技术「密码学」是如何工作,以及保障数字资产的安全呢?无论你是爱好者亦或投资客,应该需要多少了解背后的原理,免得误解,轻则闹笑话,重则损失资产。因为我们总会听到一些鬼扯的故事(帮我找回密码吧!私钥发到群里了诶!),皆是由于对钱包本质的不了解。

本文仅谈论钱包原型涉及的相关密码学,不包含 keystore,助记词,转账交易等。

钱包如何生成

区块链钱包原理科普:关于钱包的基础密码学

这是以太坊黄皮书关于钱包(私钥、公钥、地址)的描述,仅仅 2 行文字。主要讲解私钥通过 ECDSA(椭圆曲线签名算法)推导出公钥,继而经过 Keccak 单向散列函数推导出地址。

分解为 3 个步骤:

1. 创建随机私钥 (64 位 16 进制字符 / 256 比特 / 32 字节)

2. 从私钥推导出公钥 (128 位 16 进制字符 / 512 比特 / 64 字节)

3. 从公钥推导出地址 (40 位 16 进制字符 / 160 比特 / 20 字节)

区块链钱包原理科普:关于钱包的基础密码学

这是我从 ethereumjs/keythereum 中剥离出来的 JavaScript 代码,关于黄皮书上的公式的具体实现,仅仅 6 行代码。

这是一件很奇妙的事情,2 行文字,6 行代码承载着亿万级别的资产,但往往越简单,越奥妙。以上的 6 行代码,就已经囊括密码学中大多数技术,比如随机数生成器、非对称加密,单向散列函数等。以下我会为大家解剖这 6 行代码,逐一介绍背后相关的密码学知识。

随机数

随机数用于生成私钥,若随机数可以被预测或重现,则私钥就会立刻形同虚设。所以保证随机数拥有下列三项特征,至关重要:

随机性:不存在统计学偏差,完全杂乱的数列

不可预测性:不能从过去的数列推测下一个出现的数

不可重现性:除非将数列保存下来,否则不能重现相同的数列

软件本身是无法生成具有不可重现性的随机数,因为运行软件的计算机本身仅具备有限的内部状态。所以通过确定性的代码,在周期足够长的情况下,必然会出现相同的随机数。因此要生成具备不可重现性的随机数,需要从不确定的物理现象中获取信息,比如周围温度、环境噪音、鼠标移动,键盘输入间隔等。

在 Linux 内核中维护了一个熵池用来收集来自设备驱动程序和其它来源的环境噪音。熵(entropy)是描述系统混乱无序程度的物理量,一个系统的熵越大则说明该系统的有序性越差,即不确定性越大。

所以在选择生成私钥的随机数方法时,需要选择满足密码学强度的随机数方法,比如 Node 中的 crypto.randomBytes。当你调用 crypto.randomBytes(32) 方法时,它会等待熵池搜集足够的信息后,返回 64 位的随机数,即私钥。

const privateKey = crypto.randomBytes(32)

// privateKey.toString('hex'): ea4692a11d962b249f8f0439d642a9013a1a08807649311d3672886d72d1fe51

另外,在以太坊中想要获得随机数是一件不容易的事情,因为矿工需要得到同样的结果,并经过验证提交到区块链上。但如果 EVM 存在 random opcode,矿工会生成不一致随机数,无法达成共识。

目前社区也提出相应的方案,Mist 的作者 Alex van de Sande 提出使用 blockhashes 生成随机数,但由于矿工拥有操纵区块数据的能力,如果有能力且愿意放弃 5 个区块的奖励,理论上可以间接影响随机数,所以不是完全足够安全可靠。

为了解决矿工有可能作恶的问题,国内社区提出 RANDAO: A DAO working as RNG of Ethereum 项目,构建一个人人可以参与的 DAO,通过经济激励,由所有参与者共同决定一个随机数。在 RANDAO 的基础上,Vitalik Buterin 也提出 RANDAO++ 方案,感兴趣可以看看。

非对称加密

在对称密码中,由于加密和解密的密钥相同,所以必须向接收者配送密钥用于解密。但发送密钥过程中,窃听者可以窃取密钥解密,不发送密钥吧,接收者无法解密,密钥必须发送,但又不能发送,这问题称为密钥配送问题。一般采取事先共享密钥、密钥分配中心、Diffie-Hellman 密钥交换等方案来解决,但直到非对称加密方案的出现,无需向接收者配送解密密钥,密钥配送问题才完美解决。

在非对称加密中,将密钥分为加密密钥和解密密钥,也就是我们常说的公钥和私钥。公钥和私钥一一对应,由公钥加密的密文,必须使用公钥配对的私钥才可以解密。

看似有点复杂,我们祭出密码学的男女主角 Alice 和 Bob,来通俗地梳理一下:

发送者: Bob,接收者:Alice,窃听者:Eve

1. Alice 生成密钥对(私钥和公钥),私钥由 Alice 自身妥善保管

2. Alice 将自己的公钥发送给 Bob,即使被 Eve 窃取也没关系

3. Bob 使用 Alice 的公钥对消息加密,发送给 Alice

4. 密文可能被 Eve 窃取,但他无法使用公钥解密

5. Alice 使用自己的私钥解密密文

区块链钱包原理科普:关于钱包的基础密码学

当我们调用 secp256k1.publicKeyCreate 获得公钥时,实际使用的是非对称加密中的椭圆曲线算法。通过该算法可以从私钥推导出公钥,这是一个不可逆的过程:K = k * G。给出常数点 G 时,使用已知私钥 k 求公钥 K 的问题并不困难,但反过来,已知公钥 K 求私钥 k,则非常困难。这就是椭圆曲线算法上的离散对数问题,也是为什么你可以分享地址(或公钥)给别人,但不能暴露自己的私钥。

const publicKey = secp256k1.publicKeyCreate(privateKey, false).slice(1)

// publicKey.toString('hex'): 1e3f1532e3285b02...45d91a36a8d78cb6bef8

为了形象的表现椭圆曲线算法如何将私钥推导出公钥,我们将使用简单的整数作为私钥 k,找到公钥 K = k * G,也就是 G 相加 k 次(数学原理一致)。在椭圆曲线中, 点的相加等同于从该点画切线找到与曲线相交的另⼀点, 然后映射到 x 轴。下图展示了从曲线上获得 G、2G、4G、8G 的几何操作。

区块链钱包原理科普:关于钱包的基础密码学

单向散列函数

单向散列函数 (one-way hash function) 有一个输入和一个输出,其中输入称为消息 (message) ,输出称为散列值 (hash value) 。散列值也称为消息摘要 (message digest) 或者指纹 (fingerprint) 。单向散列函数可以根据消息的内容计算出散列值,而散列值就可以用来检查消息的完整性。

单向散列函数拥有下列四项特征:

1. 根据任意长度的消息计算出固定长度的散列值

2. 能够快速计算出散列值

3. 具备单向性

4. 消息不同散列值也不同

当我们调用 createKeccakHash("keccak256") 方法时,Keccak 使用海绵函数,对公钥与初始的内部状态做 XOR 运算得到 32 字节散列值,取其后 20 字节,转成 40 位的 16 进制字符,即为地址。

const address = createKeccakHash("keccak256").update(publicKey).digest().slice(-20)
// address.toString("hex"): 7a48ac1bf3943b2ca7a4ca4999cbcbb0e999950c

在以太坊中还有许多地方应用了单向散列函数,例如:

1. 矿工需要不断计算特定数据的散列值,当散列值满足难度要求时,矿工便可以广播该区块,获得奖励。

2. 根据默克尔树根哈希的值前后是否一致来判断区块中的交易是否被篡改

题外话,有一阵子我很好奇单向散列函数或哈希函数中的”Hash“ 代表什么意思呢?后来经过查询得知,”Hash“ 在古法语中的原意时「斧头」,后来被引申为「剁碎」,正好形象的比喻单向散列函数,将消息剁碎,混合成固定长度的散列值。后来通过 Herbert Hellerman 的《Digital Computer System Principles》成为广为流传的术语。

以上就是区块链钱包原理科普:关于钱包的基础密码学的详细内容,更多关于关于钱包的基础密码学的资料请关其它相关文章!


合成资产是什么意思?一文读懂DeFi合成资产 冰原守卫者木梭在哪里搞(冰原守卫者游戏视频) 科普:比特币地址的类型和钱包的用法 区块链入门:什么是公有链、联盟链和私有链? 金铲铲之战蛮王主C阵容怎么玩 蛮王主C阵容攻略 BNB/币安币发行日期是哪天?2021年币安币前景分析 通俗解释元宇宙与Web3时代的重要基础设施:Rollup/波卡/Cosmos 电脑版cf躲猫猫模式在哪里(电脑版cf躲猫猫在哪里玩) imToken钱包如何备份EOS钱包? imToken冷钱包怎么创建?imToken冷钱包设置图解教程 热血江湖怀旧复古版手游:我怀旧爆款来袭 消逝的光芒2集市保险箱密码是多少(消逝的光芒2彩蛋) 梦幻新诛仙璇玑石怎么获得(梦幻新诛仙玄机石) 芝麻交易所gate官网在线登陆,芝麻交易所gate官网app下载 上公链后意味着什么 上公链带来了什么影响和挑战 派币对接中国四大银行_派币对接中国四大银行最新消息 王者荣耀怎么共享皮肤(王者荣耀怎么共享皮肤生日) 有什么欧美风格游戏好玩(风靡欧美的游戏) 和平精英最高kd是多少(和平精英最高kd值) 和平精英举报后多久才能收到结果(和平精英举报以后,多久能恢复正常) 梦幻新诛仙元宝怎么用划算(梦幻新诛仙元宝换银币表) Uniswap是什么交易所?Uniswap交易所全面介绍 比特币是什么?比特币合法吗?是不是骗局? DNF3牛每周可以打2次么(dnf3牛和2牛奖励) 我的世界岩浆英文是什么(我的世界岩浆英语怎么说?) 内置作弊菜单的游戏手游有哪些(内置作弊菜单的单机游戏) 区块链概念股是什么?区块链概念股有什么作用? 英雄联盟手游排位可以跨几个段位(英雄联盟手游可以跨段位排位吗) 28岁的字节工程师离世在冬夜,字节跳动被传猝死员工已离世 比特币期货在哪个交易所上市?BTC比特币期货交易所app官网入口 浅谈各大职业利弊与推荐(热血江湖手游职业推荐2021) 全国车商都在用的四大软件(车商都在用什么软件) 有情侣可以玩的模拟经营类手游吗(情侣玩的模拟经营游戏) USDC币怎么兑换人民币?USDC币兑换成法币操作方法 PDEX币在哪些交易所可以购买?PDEX币上线交易所大盘点 中国最火的元宇宙平台有哪些?元宇宙最厉害三个平台分享 NFT概念股是什么意思?通俗解释NFT概念股 王者荣耀全国大赛怎么参加(王者荣耀全国大赛怎么参加团队赛) 艾尔登法环冰枪用什么武器(法师冰枪不破冰环) 王者荣耀真我杯是什么赛事(真我是什么游戏) 有什么新出免费的回合网游游戏(免费回合制网游排行榜前十名) ERC20协议是什么意思?一文读懂ERC20协议 Cryptonator是什么钱包?Cryptonator钱包全面介绍 SERO是什么币种?超零币SERO币前景怎么样? 第五人格慈善家怎么加点(第五人格慈善家天赋怎么点) 冰原守卫者黑龙值得练吗(冰原守卫者冰龙怎么获得) HARE币怎么买?野兔币/HARE币买入和交易教程介绍 火焰纹章封印之剑值得培养的强力伙伴有哪些 ?角色推荐 如何获得比特币BTC?Bitcoin虚拟币交易所平台购买地址 消逝的光芒武器伤害怎么上万(消逝的光芒武器伤害过一万五都是一样吗) 黑色沙漠手游奶油芝士面包在哪(黑色沙漠牛奶做什么料理) 抹茶怎么购买ass驴币 MXC抹茶交易所ass购买流程 有哪些经典人气高的武侠手游(2020年武侠手游排行榜前十名) 宝可梦unite所在地区无法登陆怎么办(宝可梦unit地区选择) 问道手游宠物飞升材料怎么获得(问道手游宠物飞升道具) Trezor硬件钱包多少钱?Trezor硬件钱包价格介绍 对比分析:DOT币和FIL币哪个更值得投资? 三国志幻想大陆战魂怎么选(三国志幻想大陆战魂选择) Coinfield是什么交易所?Coinfield交易所介绍 win7怎样设置远程桌面连接?远程桌面连接出现身份验证错误 我的世界神奇宝贝大师球怎么获得(我的世界神奇宝贝大师球获得方式) 欧易OKX交易所如何进行币币闪兑?欧易币币闪兑新手教程 第五人格有哪些监管者(第五人格有哪些监管者可以直接淘汰的) 普通人如何挖比特币?挖比特币的原理以及详细流程 有什么魔幻类手游玩的人多(大型魔幻手游哪个最火) 中币提现qc应该怎么操作?中币提现QC教程 有哪些无需wifi网络能玩的游戏(不用无线网就能玩的游戏) 创造与魔法章鱼刷新地在哪(创造与魔法章鱼刷新时间) 帝国战纪红将秘籍装备怎么弄的(帝国战纪手游装备怎么升星) Doge狗狗币挖矿赚钱吗?2025最新狗狗币挖矿教程(Windows) 有什么好玩的内置菜单游戏(2021内置菜单版的游戏) c盘清理垃圾而不误删文件?免费的c盘清理垃圾 宝可梦剑盾锐利之爪能给谁进化(神奇宝贝剑盾锐利之爪) 有啥可以解压的休闲手游(有什么休闲解压的小游戏) 一文读懂FISCO BCOS的联盟链开源生态 狗狗币最早多少钱一个?狗狗币下个牛市能涨到多少 宝可梦阿尔宙斯能用手机玩么(阿尔宙斯不能联机) 泰拉瑞亚神圣之地有什么用(泰拉瑞亚神圣之地有什么东西) 如何进行合约交易?合约交易新手教程 宝可梦剑盾沙奈朵哪里抓(宝可梦剑盾沙奈朵捕捉地点) 2023超火爆的手游有哪些(今年最火爆的手游) 策略版三国题材手游有哪些(策略类三国手游) BTCChina交易平台可靠吗?BTCChina交易平台官网下载 okex交易所怎么样?okex交易所靠谱吗? 币世界App是哪个公司的?币世界数字货币交易App下载入口 蜀门手游商店在哪(蜀门手游在哪里交易) 火币期权怎么操作?火币期权上手攻略 Bitpie知识库:TF版本使用迁移工具恢复到iOS比特派正式版APP教程 显卡天梯图2020移动和桌面,笔记本电脑显卡天梯图排行榜 区块链科普:什么是以太坊私钥储存(Keystore)文件? 暗区突围机密文件在哪刷(暗区突围机密文件在哪刷新概率高) 第五人格排位难玩吗(第五人格排位胜率低) dnf结婚豪华和普通有什么区别(dnf结婚豪华婚礼是要每人一个嘛) 虚拟币交易所平台有哪些?中国十大数字货币交易所排行榜 imToken钱包如何进行转账/收款? 有什么好玩不费钱的武侠手游(不用氪金的武侠手游) 比特币挖矿为什么不环保?比特币挖矿的风险及对环境危害分析 新买的路由器怎么设置(新买路由器如何用手机安装和使用) 蜀门手游支线任务怎么取消(蜀门主线任务) 文件在另一个程序中打开怎么删除?三个方法轻松解决文件夹删除不了

热门文章

推荐专题

更多>>

游戏推荐

更多>>