织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 比特币 > 比特币资讯

以太坊上的数字签名

时间:2020-10-22 16:33来源:未知 作者:admin 点击:
密码学签名是区块链的关键技术之一,可以在不暴露私钥的前提下证明地址的所有权。该技术主要用来签署交易(当然也可以用来签署其他任意消息)。本文会讲解数字签名技术在以太

密码学签名是区块链的关键技术之一,可以在不暴露私钥的前提下证明地址的所有权。该技术主要用来签署交易(当然也可以用来签署其他任意消息)。本文会讲解数字签名技术在以太坊协议中的用法。

免责声明:密码学很难。请不要将本文的任何内容作为参考,来实现您自己的密码学函数。虽然我们已经进行了广泛的研究,但是文本所提供的信息可能仍有不准确之处。本文仅用作教育用途。

什么是密码学签名?

当我们讨论密码学中的签名时,我们其实是在讨论所有权、有效性和完整性证明。举例来说,这些签名可以用来:

  • 证明你拥有地址的私钥(即认证功能);

  • 确保信息(例如,邮件)没有被篡改;

  • 验证你下载的 MyCrypto 版本是合法的。

密码学签名是基于数学公式的。我们拥有一个输入消息、一个私钥和一个(通常情况下是秘密的)随机数,就可以得到一串数字作为输出值,也就是签名。使用另一个数学公式可以进行反向计算,在不知道私钥和随机数的情况下进行验证(译者注:即验证该签名是否出自跟某个公钥对应的私钥)。这类算法有很多,如 RSA 和 AES,但是以太坊(和比特币)采用的都是椭圆曲线数字签名算法(ECDSA)。请注意,ECDSA 只是签名算法。与 RSA 和 AES 不同,这种算法不能用于加密。

- 椭圆曲线的例子之一。以太坊采用的是 SECP256k1 曲线。 -

通过椭圆曲线点乘算法(elliptic curve point manipulation),我们可以使用私钥计算出一个不可逆向计算的值(译者注:即 “公钥”,公钥无法逆向计算出私钥)。这样一来,我们就可以创建出安全且不可篡改的签名。能够生成不可逆向计算的值的函数叫做 “陷门函数(trapdoor function)”:

陷门函数指的是在一个方向上易于计算,但是在缺少特殊信息(即,陷门)的情况下很难反向计算的函数。

使用 ECDSA 签名并验证

ECDSA 签名由两个数字(整数)组成:r 和 s。以太坊还引入了额外的变量 v(恢复标识符)。签名可以表示成 {r, s, v}。

在创建签名时,你要先准备好一条待签署的消息,和用来签署该消息的私钥(d?)。简化后的签名流程如下: (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容