主页 > imtoken官网下载2.0苹果 > 椭圆曲线技术工作原理分析

椭圆曲线技术工作原理分析

imtoken官网下载2.0苹果 2023-12-06 05:09:10

描述

大多数加密资产使用与比特币完全相同的椭圆曲线,称为 secp256k1。 这使得重用比特币的许多椭圆曲线库和工具成为可能。

椭圆曲线密码术(英文:Elliptic Curve Cryptography,简称ECC)是一种基于椭圆曲线数学的公钥加密算法。

下图说明大多数加密资产使用与比特币完全相同的椭圆曲线,称为 secp256k1。 这使得重用比特币的许多椭圆曲线库和工具成为可能。

椭圆曲线

椭圆曲线技术用于创建从私钥派生的公钥。

椭圆曲线技术的工作原理

从一个随机生成的数字_k_的私钥开始,我们通过将它乘以曲线上称为_generator point_G_的预定点来生成曲线上其他地方的另一个点比特币 曲线,这是对应的公钥_K。 生成点被指定为 +secp256k1+ 标准的一部分,对于 +secp256k1+ 的所有实现始终相同,并且从此曲线派生的所有密钥都使用相同的点 _G_:

比特币 曲线_比特币期货对比特币影响_外国的比特币便宜中国的比特币贵为什么?

K = k * G

k 是私钥

G为预定点

K是生成的公钥,曲线上的一个点

由于所有比特币用户曲线上的预定点总是相同的,私钥k乘以G总是得到相同的公钥K。k与K的关系是固定的,但这种情况只存在于单向操作,即仅从 k 到 K。这就是为什么一个比特币地址(从 K 派生)可以与任何人共享而无需泄露用户的私钥(k)。

为了将点与整数的乘法可视化,我们将使用比实数更简单的椭圆曲线来描述它,旨在找到曲线上预定点 G 的倍数 kG。

这个操作逻辑和连续把G自己加k次是一样的。 在椭圆曲线中,给自身加上一个点,相当于在该点画切线,再找与曲线相交的地方,然后将该点映射到x轴上。

椭圆曲线

比特币期货对比特币影响_外国的比特币便宜中国的比特币贵为什么?_比特币 曲线

下图展示了G、2G、4G作为曲线上的几何运算的推导过程。

1、第一步是要有可靠的随机源,得到一个随机数(256位)。

2、其次,需要对号码进行SHA256运算,得到私钥(k)。

3.通过应用椭圆曲线(密码学),然后获得公钥(K),如上所述。

4. 代入 SHA 256 和 RIPEMD160(不同的哈希函数)最终得到比特币地址。

5. 以多种不同格式显示地址,最常见的是二维码。

椭圆曲线

这些块如何相互链接?

比特币 曲线_外国的比特币便宜中国的比特币贵为什么?_比特币期货对比特币影响

每个区块包含许多交易。 每个块都包含有关该特定块的特定信息。 区块的主要字段是该区块的区块头。 区块头包含前一个区块的哈希值(PreHash)、区块体的哈希值(Hash),以及时间戳(TimeStamp)、区块的难度, Root:“state Trie”中的根节点的 StateDB RLP 哈希。 在Block中,每个账户都由一个stateObject对象表示,账户由Address唯一标识,其信息在相关交易(Transaction)执行过程中被修改。 所有的账户对象都可以一个一个插入到Merkle-PatricaTrie (MPT)结构中,形成一个“状态Trie”。 Nonce:一个64bit的哈希数,应用于区块的“挖矿”阶段,在使用过程中会被修改。

区块链是由链的头节点(第一个块)和尾节点(最后一个块)组成的链结构。 一旦有人计算出区块链中最新的数据信息的哈希值,就相当于打包了最新的交易记录比特币 曲线,在区块链的末端会创建并连接一个新的区块。

椭圆曲线

工作量证明 (POW)

如上所述,工作量证明 (POW) 系统(或协议或功能)是针对服务和资源滥用或拒绝服务攻击的经济对策。

工作原则:

上文提到,区块头包含:上一个区块的哈希值(PreHash)、区块体的哈希值(Hash),以及时间戳(TimeStamp)、区块的难度、Root、Nonce。

执行 PoW 的关键要素是 Nonce。 PoW 的操作是由分散在各个地方的计算机来执行的。 谁能在竞争中最早找出待打包数据的穷举猜测值(Nonce),就相当于获得了区块的打包权(记账权)。 猜测值找出后,会连同数据和哈希值一起打包成一个块,然后进行广播。 在得到大多数节点的确认和认可后,打包者将能够获得打包区块所提供的奖励。

外国的比特币便宜中国的比特币贵为什么?_比特币期货对比特币影响_比特币 曲线

如果你是矿工,你要做的第一件事就是“挖矿”找到一个区块头并应用SHA256。 为此,您需要为 Nonce 分配一个数字,因为块头的所有其他字段都是固定的。 例如,假设以 Nonce=0 开始。 这样,您将得到一个字母数字字符串 (2poiuwfsvhxnv382249j)。

如下:

椭圆曲线

然后,您需要做的就是将结果与目标值进行比较。 目标值是一个在开头定义数字或字母数字字符串的变量。 (例如 0000000wirug43xj)。

问题是:特定 Nonce 的区块头的哈希值是否与 0 或大于它的目标值相同? 例如:2poiuwfsvhxnv382249j与0000000wirug43xj比较,前者比后者少0。 那么您需要更改块头中的哪个变量才能应用 SHA256 获得不同的结果? 这是 SHA256 的抗碰撞特性的一个好处。 抗碰撞性是加密散列函数的一个属性:如果很难找到散列到相同输出的两个输入,则散列函数 H 是抗碰撞的; 也就是说,两个输入 a 和 b 使得 H = H,并且 a≠b。 每个输入多于输出的哈希函数都必然会发生冲突。 考虑一个哈希函数,例如 SHA-256,它从一个大的输入中产生一个 256 位的输出。 因为通过简单地将 Nonce 更改为块头并应用 SHA 256,结果与之前的答案完全不同(并且是随机的)。 将上例中的 Nonce 更改为 1 会导致“0057aasñhlqywirfdr334”。

椭圆曲线

0057aasñhlqywirfdr334 包含与 0000000wirug43xj 不同数量的零。

这个过程一直持续下去(在这个过程中,矿工每秒会经过百万次计算,当结果错误时会重试),直到得到目标Nonce。

外国的比特币便宜中国的比特币贵为什么?_比特币 曲线_比特币期货对比特币影响

因此,所有矿工都在争先恐后地寻找目标Nonce,这也体现了PoW的劣势,即浪费能源。

矿工一旦获得Nonce,就会在网络中广播,其他节点会发现,通过输入Nonce并应用SHA256Nonce来快速验证目标值。

作为奖励,获得区块 Nonce 的矿工通过两种方式获得比特币:

1) 包含在区块中的交易所支付的费用。

2)系统创造新的比特币。 (截至 2017 年 5 月,其 12.5 btc/块)

矿工需要多长时间才能找到 Nonce?

中本聪在设计比特币时,加入了挖矿难度调整机制,使比特币的出块时间理想地恒定在10分钟左右。 比特币协议规定,每2016个区块,会根据过去2016个区块的总时间自动调整下一个2016个区块的挖矿难度。 理想情况下,2016 个区块需要两周(2016*10s)。 如果实际时间少于两周,则增加难度,如果超过两周,则降低难度。

增加难度意味着在目标值的开头添加零; 降低难度意味着从目标值的开头删除零。