IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> ETH学习--相关的密码学与钱包 -> 正文阅读

[区块链]ETH学习--相关的密码学与钱包

以太坊背后的密码学

现代密码学:

  • 信息加密
  • 知识证明(数字签名)

但以太坊协议中本身并没有任何加密信息,全部公开可以读取

非对称加密

公钥是对私钥使用椭圆曲线的乘法运算得到的

数学基础:

单向数学函数:一类易于从一个方向进行计算,但反向计算困难的函数

  • 质因数分解问题
  • 离散对数难题:基于椭圆曲线上的算数运算,模乘运算简单,但模除运算(反向运算困难)

哈希函数

在公钥到地址转换中使用

将任意长度的数据映射到固定长度数据的数学函数,具有单向性

我们可以通过测试判断使用的是哪一个哈希函数

在这里插入图片描述

密钥与地址

账户:分为外部账户与合约账户

数字签名:

  • 交易消息与私钥结合创造出只能用私钥生成的代码,即所谓的数字签名

  • 实现资金的访问和控制权

  • 任何人可以验证交易的有效性,通过校验数字签名是否与交易细节以及要转移资产的地址相互匹配

私钥:

  • 提供账户控制权
  • 将一个很大的随机字符串放入256比特的哈希算法(Keccak-256/SHA256)中,便捷地产生一个256比特的数字,如果结果在有效范围中就有了一个合适的私钥,否则再次尝试,以十六进制表示

注意:使用密码学安全的伪随机数生成器

公钥:

  • 用于识别身份
  • 每个公钥都是椭圆曲线上的一个点,即一组x,y坐标,恰好满足椭圆曲线方程
  • 公钥由两个数字组合在一起,这两个数字由私钥经过单向计算得来(反方向不易得解)
  • 公钥通过对私钥使用椭圆曲线乘法运算得来,基本上该运算不可逆

地址:

以太坊地址是唯一的标识符,从公钥或者合约通过单向哈希函数Keccak-256计算而来,通过公钥哈希值保留后20位获得,加上0x前缀表示其采用十六进制表示方法。

以太坊地址中不存在校验信息,比特币地址中存在校验信息

一种校验方式EIP-55:大写校验

原因:ICAP与域名系统推进缓慢

简介:以太坊地址不区别大小写,对钱包而言,大小写都一样,使用大小写进行校验,而不支持此校验的钱包忽略即可

实现:

  • 对全部小写地址进行哈希运算
  • 取哈希值的前20为对应地址,如果对应哈希值>=8则改为大写

验证:

  • 先全部改成小写,计算哈希,对应后计算地址是否正确

钱包

存储和管理用户密钥的系统,当然有些钱包也充当DAPP入口功能

有一个常见的误区认为钱包中包含以太币或者代币,实际上钱包只保存密钥,而以太币保存在区块链上

分类

非确定性(随机)钱包

正在被确定性钱包取代,管理备份使用很麻烦,重用密钥是保护隐私的好办法,这样易丢失

确定性钱包

基于密码种子的钱包,包含从一个种子密钥所派生的私钥。种子密钥是随机生成的数字与其他数据(索引号/链码)一起生成私钥

助记词

  • 代表生成钱包中种子密钥的内容,可以用于恢复重建所有密钥

  • 助记词标准(BIP-39)这只是助记词标准的一种实现

生成助记词

从随机源获取随机数,添加校验码,再把这个数字映射为一串英文单词

在这里插入图片描述

从助记词到种子密钥

使用密钥扩展算法将随机数衍生成512bit的种子

密钥扩展算法需要两个参数:助记词和salt

  • 防止循环表格暴力破解
  • 引入额外密码保护密码种子(默认mnemonic进行扩展运算/用户可选)

在这里插入图片描述

层级式确定性钱包

钱包中每一个密钥都由之前种子密钥派生

大多数HD钱包遵循BIP-32标准,这实际上已经成为确定性钱包的事实性行业标准

拓展公钥和私钥

扩展密钥:密钥本身+链码混合后产生子密钥

HD钱包特性,可以使用父公钥派生子公钥,也可以用自私钥派生子公钥。这样极大的提供了安全性,在web等服务器中部署拓展公钥派生功能完成每一笔交易,而拓展私钥则隔离保管,可以使用生成地址对应的私钥并通过签名交易来花费地址上的代币。

改进

问题:扩展公钥中带有链码,如果:子私钥泄露+链码–>所有子私钥、父私钥泄露

解决:增强派生–使用父私钥产生子链码

标识符与树状结构

在这里插入图片描述

BIP-44 HD钱包结构

在这里插入图片描述

参考来源:《精通ETH》第3、4章

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章           查看所有文章
加:2022-02-14 21:11:42  更:2022-02-14 21:14:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 20:05:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计