用 golang 从零开始构建简易的区块链,这是系列文章的第5篇 : 地址
简要介绍以太坊的签名算法secp256k1
密码学签名是区块链的关键技术之一,可以在不暴露私钥的前提下证明地址的所有权。该技术主要用来签署交易(当然也可以用来签署其他任意消息)。本文会讲解数字签名技术在以太坊协议中的用法。
有限域上的椭圆曲线是零知识证明的基础。零知识的实现是基于离散对数问题。从计算的角度来看,F_p是个有限域,在之基础上建立的椭圆曲线点的运算都是在这个域范围内。有限域上的椭圆曲线上有很多循环子群F_r,具有加法同态的特性。离散对数问题指的是,在循环子群上已知两点,却很难知道两点的标量。
前段时间跟行业内人士聊天的时候,聊到了一个有趣的话题,即以太坊中私钥,公钥和地址分别是什么关系?以及ECDSA是如何工作的?
程序员易懂的 ECDSA 原理简述