当前位置:首页 > 物联网 > 区块链
[导读] 哈希函数 哈希函数(Hash Function),也称为散列函数,给定一个输入x,它会算出相应的输出H(x)。哈希函数的主要特征是: 1.输入x可以是任意长度的字符串 2

哈希函数

哈希函数(Hash Function),也称为散列函数,给定一个输入x,它会算出相应的输出H(x)。哈希函数的主要特征是:

1.输入x可以是任意长度的字符

2.输出结果即H(x)的长度是固定的

3.计算H(x)的过程是高效的(对于长度为n的字符串x,计算出H(x)的时间复杂度应为O(n))

椭圆曲线加密算法

椭圆曲线在密码学中的使用是在1985年由Neal Koblitz和Victor Miller分别独立提出的。它的主要优势是在某些情况下它比其他的算法(比如RSA)使用更小的密钥但提供相当的或更高等级的安全性。

比特币使用了基于secp256k1椭圆曲线数学的公钥密码学算法。它包含私钥与公钥,私钥用于对交易进行签名,将签名与原始数据发送给整个比特币网络,公钥则用于整个网络中的节点对交易有效性进行验证。签名算法保证了交易是由拥有对应私钥的人所发出的。

BASE58编码

Base58是用于Bitcoin中使用的一种独特的编码方式,主要用于产生Bitcoin的钱包地址

相比Base64,Base58不使用数字“0”,字母大写“O”,字母大写“I”,和字母小写“l”,以及“+”和“/”符号

1.比特币所用字母表:

123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

2.Monero所用字母表:

123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

3.Ripple所用字母表:

rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz

私钥

实际上是长度为256bit的二进制数,256 bit = 1.15e+77

宇宙中所有原子的总数大概是10的80次方。如果我们进行2256+1次随机生成私钥,那么必然会生成一个此前出现过的私钥;甚至从概率的角度看,进行2130次私钥生成就会有99%的可能得到已有私钥,但是这个情况目前极难出现。

公钥

使用椭圆曲线加密算法(ECDSA-secp256k1)计算私钥所对应的非压缩公钥,该过程不可逆。

公钥的长度为65bytes:

头部标识:1byte(0x04)

X-integer:32bytes(BE)

Y-integer:32bytes(BE)

地址

将公钥经过多次哈希散列及处理生成btc地址。

非压缩公钥生成地址的过程:

1.将完整公钥(头部标识 + X-integer + Y-integer)进行一次sha256()运算, 在对结果进行一次ripemd160()运算,结果a的长度为20bytes

2.在步骤1得到的结果前加上Network ID Byte:

Main Network: 0x00

Test Network: 0x6f

Namecoin Net: 0x34

得到的b长度为21bytes

3.对步骤2得到的结果进行连续两次的sha256()运算,然后只取运算结果的前4bytes作为Checksum

4.在步骤2的b末尾添加上步骤3得到的Checksum, 得到c, 长度为25bytes

5.对步骤4生成的c进行Base58编码, 即得到地址

步骤图示:

对于压缩公钥生成地址时,在步骤一中只取公钥的标识头+X-integer部分即可。

私钥,公钥和地址在比特币转账中的作用

在发起比特币的转账时,把私钥看作账户的密码,账单填写完毕后,需要用私钥对账单的内容签名,得到签名信息SIG ,然后将SIG附加在账单上:

SIG = H(detail, PRIVATE_KEY)

已知SIG和账单内容,是无法反推出私钥的。那么,别人在拿到账单信息和SIG后,如何验证该SIG确实是由发送方地址对应的私钥签署的呢?

这就是公钥的作用,账单上还要附加上公钥,别人在拿到账单时,可以验证SIG是否合法

true = VALIDATE(detail, SIG, PUBLIC_KEY)

私钥-》公钥-》地址是单向不可逆的过程, 在签署交易信息时只会暴露公钥, 私钥是安全的:

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

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 隧道灯 驱动电源
关闭