以太坊签名从数学原理到安全应用

Posted 阿菜种菜的菜园子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以太坊签名从数学原理到安全应用相关的知识,希望对你有一定的参考价值。

前言

最近审计的时候有涉及到签名与验签的内容,所以想着补一下这方面的知识。但是因为签名涉及到密码学的内容,以及对自己的实力有着清楚的认识,所以本篇文章第一部分提供一个学习路线,第二部分是在随着学习路线一直深入过程中的一些疑问,以及关于这些疑问的一些文章。希望对你有帮助。

技术路线

  1. 离散数学-群论

  2. 椭圆曲线

  3. ECC 椭圆曲线加密算法 -> ECDSA 加密算法 -> secp256k1 签名算法

  4. Solidity 实现签名与验签

  5. 密码学层面的安全事件

参考文章

每篇文章所涉及的知识点,以及它能够解答你的哪些疑问:

  1. 离散数学(群、环、域) - 离散数学定义
    1. 代数系统与群的定义;
    2. 群的性质与运算;
  2. 有限域上的椭圆曲线 - 椭圆曲线运算
    1. 椭圆曲线的数学定义,椭圆曲线长什么样子;
    2. 在椭圆曲线上的运算在群上是如何进行的;
  3. 【知乎】ECC椭圆曲线加密算法:介绍 - 椭圆曲线,群论,ECC
    1. 椭圆曲线和群论结合起来的形式;
    2. 代数加法与标量积的计算过程;
  4. 以太坊的数字签名算法 secp256k1 - secp256k1,RSV格式
    1. secp256k1 算法在以太坊上的应用情况;
    2. secp256k1 的返回值RSV格式与含义;
    3. secp256k1 的校验;
  5. ECC椭圆曲线加密算法:ECDH 和 ECDSA - ECDSA 加密算法,RS
    1. 椭圆曲线为什么可以应用在密码学上;
    2. ECDH 和 ECDSA 两个算法的使用过程及算术推导;
    3. 返回值RS的含义;
  6. 一个数字引发的探索——ECDSA解析 - ECDSA 加密算法,V
    1. secp256k1 曲线中 p 值和 n 值的大小关系;
    2. 为什么根据签名结果RS可以倒推出4个公钥,而不是其他的数量;
    3. 返回值V的含义及作用;
  7. WTF Solidity极简入门: 37. 数字签名 Signature - Solidity 实现签名与验签
    1. 以太坊上信息签名与交易签名的区别;
    2. 签名与验签在solidity上的实现;
    3. 签名在实际场景的使用案例;
  8. 利用随机数冲突的ECDSA签名恢复以太坊私钥 - 安全漏洞实践
    1. 使用相同随机数如何导致漏洞;
    2. 私钥推导过程;

以上是关于以太坊签名从数学原理到安全应用的主要内容,如果未能解决你的问题,请参考以下文章

用Go来做以太坊开发④智能合约

以太坊工作原理之交易生命周期

javascript 将已签名的交易发送到以太坊的合同

运行公共以太坊节点是不是安全?

以太坊之使用truflle和infura部署以太坊合约|猿创征文

北京大学肖臻老师《区块链技术与应用》公开课笔记:以太坊原理:以太坊概述账户状态树交易树和收据树