LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > 比特币中的ECDSA是什么?

比特币中的ECDSA是什么?

2020-05-30 wanbizu AI 来源:区块链网络

1个

什么是ECDSA?

ECDSA(椭圆曲线数字签名算法的缩写,一种使用椭圆曲线构建数字签名的算法)是一种基于椭圆曲线的加密方案(椭圆曲线密码术或ECC)。

ECDSA算法使用椭圆曲线和有限域来创建数据签名,以便第三方可以验证签名的真实性,并且签名人保留创建签名的专有能力。就比特币而言,要签名的数据是所有权转让。

2

谁开发了ECC概念,何时开发?

数学家Neil Koblitz和Victor S.Miller于1985年独立提出了基于椭圆曲线的密码学概念。尽管他们的模型是密码学上的突破,但直到2000年代初Internet提供商引入ECC时,ECC才被广泛使用。

3

ECC如何在加密货币中使用?

密码学是加密货币数字签名方案的基础,它允许验证分散网络中两方之间的交易。

与RSA加密相比,ECC具有显着优势。用于ECC的密钥大小比RSA所需的密钥大小小得多。 ECC提供相同级别的安全性。尽管RSA加密如今已在Internet上广泛使用,但ECC是RSA的一种更有效形式,这就是在加密货币中使用此加密技术的原因。

4

谁开发了ECDSA,何时开发?

ECDSA的概念由加拿大数学家和密码学家Scott Vanstone于1992年提出。

5

ECDSA的任务是什么?

基于比特币的技术重新诠释了所有权的概念。在传统意义上,拥有某物-房屋,金钱等-意味着亲自(物理上/合法地)存储此对象,或将其转移到受信任的结构(例如银行)以进行保管。

就比特币而言,一切都不同。比特币本身既不集中存储也不是本地存储,没有结构可作为其托管人。

比特币作为区块链中的条目存在,其副本由连接的计算机网络分发。 “拥有”比特币意味着能够通过在区块链中创建转移记录,将控制权转移给另一位用户。是什么使这成为可能?访问ECDSA密钥对-公共和私有。

ECDSA有单独的签名和验证程序。每个过程都是由几个算术运算组成的算法。签名算法使用私钥,验证算法使用公钥。

6

什么是椭圆曲线?

代数椭圆曲线由以下形式的等式表示:y2 = x3 + ax + b对于a = 0和b = 7(比特币使用的版本),看起来像这样:

椭圆曲线具有有用的属性。例如,在两条点处与曲线相交的非垂直线将始终与曲线上的第三点相交。另一特性是一条非垂直线,在一条点处与曲线相切,正好与曲线上的另一点相交。您可以使用这些属性来定义两个操作:添加点和加倍点。

为了添加点,P + Q = R,绘制一条穿过点P和Q的线,该线在第三点R与曲线相交。

然后曲线上有一个点,相对于x轴,该点相对于第三点R对称。点R将被视为P和Q之和。例如:

类似地,当将点加倍时,将在点P处绘制与椭圆曲线相切的线,该线应在另一点R处与该线相交。

相对于x轴相对于R’对称的点R将被视为倍增点P。示例:

这两个运算一起用于标量的乘积运算,R = a P,定义为将一个点P加到自身时间上。例如:

R = 7P
R = P +(P +(P +(P +(P +(P + P)))))

通常通过将点的加法和加倍相结合来简化加到标量的过程。

例如:

R = 7P
R = P + 6P
R = P + 2(3P)
R = P + 2(P + 2P)

在此,7P分为两步,用于加倍点和两步,用于加点。

7

什么是叶田?

ECDSA上下文中的最后一个字段可以被视为每次计算应属于的给定正数范围。超出此范围的任何数字都会被换行,以使其落入该范围。如果运算结果超出此范围,则在该范围的末尾,它将返回到其开始,然后继续计算。

最简单的方法是将此过程视为“整数除法后的余数”或模数(mod)运算符的计算。例如,9/7给出1,其余数为2:9 mod 7 =2。这里的最后一个字段是从0到6,并且所有模取7的运算,无论执行多少,都将落入该范围内。

8

曲线如何与有限域结合?

ECDSA在有限域内使用椭圆曲线,这会显着改变其外观,但不会改变基本公式或特殊属性。上图中以最终场模67表示的相同方程式看起来像这样:

现在,这是一组点,其中所有x和y都是0到66之间的整数。同时,曲线仍然保持其水平对称性。

现在,点的加法和加倍已在视觉上发生了一些变化。此图上绘制的线将环绕该场,并保持相同的斜率。因此,点(2,22)和(6,25)的加法如下:

穿过这两个点的虚线最终与第三个点(47、39)邻接,并且它将相对于x轴(47、28)对称。这是操作的结果。

9

ECDSA如何在比特币中工作?

诸如比特币之类的协议为椭圆曲线选择一组参数并为其最终字段表示,这对于该协议的所有用户都是固定的。

参数包括方程式本身,场模的简单值以及曲线上的基点。基点的顺序(不是独立选择的,而是其他参数的函数)可以图形化地表示为该点对其自身的增加量,直到其斜率变为无限(垂直)线为止。选择基点以使阶数为大质数。

对于简单模块和订单的基点,比特币使用非常大的数字。算法的可靠性取决于这些值巨大的事实-这使得使用蛮力或工程分析不切实际。

如果是比特币:

椭圆曲线方程:y2 = x3 + 7

简单模块= 2256-232-29-28-27-26-24-1 = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F

基点= 04 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8

顺序= FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141

这种实现方式被称为secp256k1,并且是提议用于密码学的有限域领域中的椭圆曲线解决方案系列的一部分。

10

ECDSA的缺点是什么?

在ECDSA中,作为当前的签名方法,比特币没有对多重签名的本地支持,因此它们是使用标准化的按脚本哈希(P2SH)智能合约实现的,该合约仅在区块链中包含脚本哈希。

这个看似随机的数字决定了硬币的所有权。在消费时,持有人同时打开脚本和密钥以解密哈希。然后,每个用户都可以使用原始哈希值来验证脚本的真实性并满足支出条件。但是,与此同时,用户必须披露所有支出条件,包括未满足的条件。例如,当且仅当鲍勃和爱丽丝签署交易,或者爱丽丝在一周结束时亲自签署交易,或者鲍勃在提供秘密号码的同时签名时,才可以花费硬币。

这种模型的第一个问题是缺乏隐私。对于P2SH交易,地址必须以数字3开头。这为区块链分析师提供了识别网络上所有P2SH交易并确定多重签名中涉及的地址的机会。

第二个问题是要处理大量数据,因为P2SH需要了解所有多重签名参与者的公钥。

Schnorr签名方案和Taproot技术解决了这些问题。

—-

原文链接:https://forklog.com/chto-takoe-ecdsa-v-bitkoine/

原文作者:ForkLog

编译者/作者:wanbizu AI

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...