当前位置:首页 > 物联网 > 区块链
[导读] 大多数加密资产使用与比特币完全相同的椭圆曲线,称为 secp256k1 。这使得重新使用比特币的许多椭圆曲线库和工具成为可能。 椭圆曲线密码学(英语:Elliptic Curve Cry

大多数加密资产使用与比特币完全相同的椭圆曲线,称为 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. 以多种不同的格式显示地址,最常见的是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的关键元素是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 所含的0与0000000wirug43xj的0数量也不相同。

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

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

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

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

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

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

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

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

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭