1、以太坊椭圆曲线加密r,s,v

https://crypto.stackexchange.com/questions/59506/ecdsa-recover-on-arbitrary-values

https://crypto.stackexchange.com/questions/18105/how-does-recovering-the-public-key-from-an-ecdsa-signature-work/18106

在以太坊加密中,通过r,s能够恢复出两种可能性的公钥地址,分别为

  R,G,z为固定参数

因此需要通过v(奇偶校验位)还原出特定的公钥地址。

如果固定v,只通过r,s只有50%可能性还原出正确的公钥地址。

2、EIP155

https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md

不同的共有链定义不同的chainId, 防止同一笔交易在不同的共有链上进行两次交易,防止重放攻击

v = 35 + chainId *2 | v = 36 + chainId * 2

不同的chainId会得到不同的v,还原出来的公钥也会不同

因为只通过r,s恢复公钥有两种可能,所以每个chainId也该拥有两个不同的v,代表两个不同的地址

参考资料:

wiki百科椭圆曲线加密

https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm

国外密码学论坛

https://crypto.stackexchange.com/

【以太坊源码阅读】椭圆曲线加密和EIP155相关推荐

  1. 以太坊源码阅读3——MPT原理

    以太坊源码阅读3--MPT原理 介绍 MPT(Merkel-Patricia Tree),翻译为梅克尔-帕特里夏树 MPT提供了一个基于密码学验证的底层数据结构,用来存储键值对( key-value) ...

  2. 以太坊源码阅读2——RLP编码

    以太坊源码阅读2--RLP编码 RLP介绍 目前网上的资料都是RLP(Recursive Length prefix),叫递归长度前缀编码,但目前源码的doc.go的第20行里面的注释写的是 The ...

  3. 以太坊源码阅读5——POW源码分析

    以太坊源码阅读5--POW源码分析 介绍 POW,proof of work,即工作量证明,是著名公bitcoin所采用的共识算法.简单来说,pow就是一个证明,由矿工使用算力进行计算(挖矿),竞争记 ...

  4. 以太坊源码阅读【环境安装MAC】

    系统环境 Go SDK 1.16 1, 下载源码 git clone https://github.com/ethereum/go-ethereum.git 2,配置idea go环境 GOPROXY ...

  5. 3 v4 中心节点固定_死磕以太坊源码分析之p2p节点发现

    死磕以太坊源码分析之p2p节点发现 在阅读节点发现源码之前必须要理解kadmilia算法,可以参考:KAD算法详解. 节点发现概述 节点发现,使本地节点得知其他节点的信息,进而加入到p2p网络中. 以 ...

  6. 以太坊源码分析-交易

    以太坊源码分析-交易 机理 先说一点区块链转账的基本概念和流程 用户输入转账的地址和转入的地址和转出的金额 系统通过转出的地址的私钥对转账信息进行签名(用于证明这 笔交易确实有本人进行) 系统对交易信 ...

  7. 以太坊源码学习(一) 正本清源

    以太坊源码学习(一)正本清源 背景 geth源码一直在不断增加,优化,发展到现在已经非常庞大,第一次看geth源码,会有不小的难度.虽然如此,还是可以从geth仓库的第一个commit开始,这时的代码 ...

  8. 以太坊源码分析(2)——以太坊APP对象

    前言 从这一节开始,我将开始以太坊代码全覆盖讲解,讲解的流程是: 以太坊程序入口 基本框架 以太坊协议 发送一笔交易后发生了什么 启动挖矿 以太坊共识 p2p 网络 阅读本系列文章,将默认读者具备一定 ...

  9. 以太坊源码学习 -- EVM

    以太坊源码学习 – EVM 学习文档链接:here 一.虚拟机外 主要功能: 执行前将Transaction类型转化成Message,创建虚拟机(EVM)对象,计算一些Gas消耗,以及执行交易完毕后创 ...

最新文章

  1. sql语句中having的作用是?
  2. Navicat for SQL Server 文件属性有哪些
  3. Windows 技术篇-设置dns提升网速,刷新dns缓存
  4. iOS之深入解析高阶容器的原理和应用
  5. poj2942(双联通分量,交叉染色判二分图)
  6. Linux_异常_03_Failed to restart iptables.service: Unit not found.
  7. 【白皮书分享】2020年5G应用创新发展白皮书.pdf(附下载链接)
  8. 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  9. andriod之配置文件保存与读取
  10. Spring缓存切面源码解析
  11. filmimpact安装教程,PR插件『FilmImpact.net』下载与安装教程
  12. 基于xsh的vbs脚本的使用(语法)
  13. 入侵检测工具AIDE极简教程
  14. TwinCAT3网卡驱动无法安装解决办法
  15. 全国计算机等级考试二级 C 语言 程序设计考试大纲
  16. macOS 访达的显示模式(如图标大小)“用作默认”(应用到所有子文件夹)的运作逻辑
  17. 未能写入输出文件..”--“拒绝访问。”的解决办法 [转]
  18. 马化腾2015港大演讲。
  19. 输出100以内所有能被7整除的数
  20. matlab在时间序列分...,matlab在时间序列分析

热门文章

  1. cms文章 mysql存储,帝国CMS万能标签调用随机文章的方法
  2. Spring-tx-TransactionAnnotationParser接口
  3. 计算机系统-电路设计04-全加器的内部电路实现
  4. MySQL02:DQL语言的学习
  5. java juc 包_JUC java并发包
  6. python制作合同模板带图片_办公自动化7_用Python操作Word批量生成合同
  7. html如何让图片背景透明,html – 如何让我的网站的背景透明,而不使内容(图像和文字)也是透明的?...
  8. 随手练——打印折痕方向
  9. 使用nodejs爬前程无忧前端技能排行(半半成品)
  10. KnockoutJS 3.X API 第五章 高级应用(2) 控制后代绑定