如果不是中本聪,你可能永远不会听说secp256k1椭圆曲线密码学(ECC)方法。但是,中本聪用它来获取私钥,然后生成一个公共标识符。 采用比特币的核心是使用ECDSA(椭圆曲线数字签名算法),并且可以通过公共比特币标识符来验证交易。secp256k1标准已发布:https:www.secg.orgsec2-v2.pdf。 这是椭圆曲线的Weierstra …
secp256k1
一个交易,从原始数据到签名数据,经历了什么?向以太坊网络发起一笔交易时,需要使用私钥对交易进行签名。 那么从原始的请求数据到最终的签名后的数据,这中间的数据流转是怎样的,经过了什么过程,今天从go-ethereum源码入手,解析下数据的转换。 # 一、准备工作 我以一个简单合约为例,调用合约的`setA`方法,参数为`123`。合约代码如下。 ``` pra …
对于签名后的交易是如果从中还原出账号地址,进入放入到交易池中?上篇文章《[以太坊交易签名过程源码解析](https:learnblockchain.cnarticle1225)》从源码角度分析了一个合约调用的的签名过程,签名后的交易发送到以太坊节点后,节点需要从签名交易中还原出公钥(从公钥中单向计算出账号地址),进而将交易放入交易池中。 本文从go-ethe …
本节主要讲了secp256k1的参数,点表示形式和由签名试图恢复公钥的原理## 写在前面 上一节讲了[Schnorr离散对数签名及素数阶群构造(Schnorr群)](https:learnblockchain.cnarticle1527),相对于结合椭圆曲线的算法,更简洁,更易理解。 之前有不少篇幅讲有限域上椭圆曲线的概念和运算规则【群,加解密,签名验签等】 …
回到在这篇公钥恢复的文章,讲了secp256k1曲线根据签名结果反推公钥的原理,本篇在这个基础上继续说实现的部分。## 写在前面 上一节讲了[Cipolla算法补充说明](https:learnblockchain.cnarticle1518),我们知道了一种求解二次剩余根的方法。 回到在[这篇](https:learnblockchain.cnarticl …
本文简记一下椭圆曲线算法中的另外一个小的话题:签名的可锻性。## 写在前面 上一节说了[从凭证角度详细说明了Miller Rabin算法思路和实现](https:learnblockchain.cnarticle1499), 并加以实例说明。 本文简记一下椭圆曲线算法中的另外一个小的话题:签名的可锻性。 ## 比特币交易可锻性攻击 今天偶尔看到了以太坊早期一 …
- 1