当前位置:首页 >> 万物互联

橢圓曲線密碼學工作量證明

万物互联  |  2019-10-15  |  来源:潜江物联网云平台

  椭圆曲线密码学工作量证明

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

  本文由财经链上财经编译自Hackernoon,不代表财经链上财经观点

  作者:Gayan Samarakoon 编译:LornaQ

  椭圆曲线密码学(英语: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. 以多种不同的格式显示地址,最常见的是QR码

  区块如何相互链接

  每个区块都包含许多事务每一个区块包含有关该特定区块的特定信息区块的主要字段是该区块的区块头区块头包括上一个区块的哈希值(PreHash),本区块体的哈希值(Hash),和时间戳(TimeStamp),区块的难度,Root:StateDB中的“state Trie”的根节点的RLP哈希值Block中,每个账户以stateObject对象表示,账户以Address为唯一标示,其信息在相关交易(Transaction)的履行中被修改所有账户对象可以逐个插入一个Merkle-PatricaTrie(MPT)结构里,构成“state Trie”Nonce:一个64bit的哈希数,它被运用在区块的发掘阶段,并且在使用中会被修改

  区块链是一个链状结构,包括链条的头节点(第一个区块)和尾节点(最后一个区块)一旦有人计算出区块链最新数据信息的哈希值,相当于对最新的交易记录进行打包,新的区块会被创建出来,衔接在区块链的末尾

  工作量证明(POW)

  如上所述,工作量证明(POW)系统(或协议或功能)是对应服务与资源滥用、或是阻断服务攻击的经济对策

  工作原理:

  如上所述,区块头包括:上一个区块的哈希值(PreHash),本区块体的哈希值(Hash),和时间戳(TimeStamp),区块的难度,Root,Nonce

  执行PoW的关键元素是NoncePoW的运作由分散在各处的计算机,比赛谁能最早找出,搭配原本要打包的数据的穷举猜想值(Nonce),谁就等同取得该区块的打包权(记账权)此猜想值被找出后,与数据、散列值一起打包成块后广播,经多数节点确认与承认,打包者就能取得打包该区块所提供的嘉奖

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

  如下所示:

  然后,你需要做的是将所得结果与目标值进行对比目标值是一个变量,用于在开头定义数字或字母数数字串(例如wirug43xj)

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

  0057aas?hlqywirfdr334 所含的0与wirug43xj的0数量也不相同

  该过程延续进行(此过程中矿工每秒都会经历数百万次的计算,当所得结果错误时将再次进行尝试),直到取得目标的Nonce

  因此,所有矿工都在竞争,以便成为第一个找到目标Nonce的人,这也体现了PoW的劣势,即浪费能源

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

  作为嘉奖,获取该区块Nonce的矿工以两种方式接收比特币:

  1)该块中包括的交易所支付的费用

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

  矿工找到Nonce需要多长时间

  中本聪设计比特币时,加入挖矿难度调整机制是为了使得比特币出块时间能理想的恒定在10分钟左右比特币协议规定每隔2016个区块,将根据过去最近2016个区块出块总时间调剂,自动调整下一个2016个区块的挖矿难度理想情况下2016个块需要两周(2016*10s)时间,如果实际用时不到两周则增加难度,如果超过两周就下降难度

  增加难度意味着将在目标值的开头添加零;降低难度意味着在目标值的开头减少零

  工作量证明机制教师工作量证明椭圆曲线及其在密码学中的运用 导引椭圆曲线及其在密码学中的应用

微分销平台价格
11个月宝宝不爱吃饭怎么回事
小儿便秘带血是什么原因