http://www.7klian.com

利用Python生成比特币地点开拓教程

dcb30d406d24f76bcc2afe2ef550c9068b0a511fb
|___>SHA256 #2  :  b0a511fb05bcf1872be44d98dad592c9641fe47ee7f48f1e
Prepend Network Byte to RIDEMP160(SHA256(ECDSA Public Key)):  00daa

是2009年1月建设的一种。比特币地点是一个独一的标识符,用作可以发送或保存的虚拟位置。生意业务提供在拥有私钥和比特币地点的比特币钱包之间转移资产。私钥确保生意业务来自钱包的所有者。离线生成比特币地点也是大概的。这段代码表明白如何慢慢生成比特币地点。如下图所示,生成比特币地点时有一些操纵。

——————————————————
prependNetworkByte = ’00’ + ridemp160FromHash256.hexdigest()
——————————————————
cee18b6805bd4ba4
print(“Prepend Network Byte to RIDEMP160(SHA256(ECDSA Public Key)): “,
print(“RIDEMP160(SHA256(ECDSA Public Key)): “, 
步调7:我们得到在步调6中建设的4个字节的值作为校验和。
Bitcoin Address:  1Lw5rqh94dWzArQ9tDY6Ucswxo3Ums7VWi

hash = prependNetworkByte
print(“SHA256(ECDSA Public Key): “, hash256FromECDSAPublicKey)
binascii.unhexlify(hash256FromECDSAPublicKey))
print(“ECDSA Private Key: “, ecdsaPrivateKey.to_string().hex())
2e3b22e7978d304
 appendChecksum)
c6c569a4d0c06ab7b0bf2c7444f95064b5b4e9ed2ef2eb96425a3e9873315cbeb6a
步调6:我们将双SHA256应用于在步调5中建设的校验和值。
2ef550c9068
——————————————————
ecdsaPrivateKey = ecdsa.SigningKey.generate(curve=ecdsa.SECP256k1)
步调9:我们将Base58编码应用于在步调8中建设的值。Base58编码之后,我们获得的值是比特币地点。(在Python中,,b58encode功效应解码为utf-8以显示)
for x in range(1,3):
    hash = hashlib.sha256(binascii.unhexlify(hash)).hexdigest()
 prependNetworkByte)
步调8:我们将步调7中建设的校验和值附加到步调5中建设的值。
SHA256(ECDSA Public Key):  558f16eb2e93084f763b20a0005734ff32f134ef
|___>SHA256 #1  :  1d7d571d176f378eabd73b1e3ac0fb5a688855d41ae5ee89
——————————————————
print(“ECDSA Public Key: “, ecdsaPublicKey)
print(“Checksum(first 4 bytes): “, cheksum)
Checksum(first 4 bytes):
步调1:椭圆曲线数字签名算法用于生成私钥,因为公钥暗码术提供了比特币的签名道理。
b0a511fb
appendChecksum = prependNetworkByte + cheksum
RIDEMP160(SHA256(ECDSA Public Key)):  daa4e87dcb30d406d24f76bcc2afe
最后,生成的功效如下:
——————————————————
cheksum = hash[:8]
56afb9c13b5c7027
Append Checksum to RIDEMP160(SHA256(ECDSA Public Key)):  00daa4e87
ridemp160FromHash256 = hashlib.new(‘ripemd160’, 
bitcoinAddress = base58.b58encode(binascii.unhexlify(appendChecksum))
——————————————————
步调5:我们将00作为网络字节添加到在步调4中建设的值之前。
ECDSA Private Key:  58d31714300fcf58434422014defce57d53f4cc3b76314
——————————————————

print(“Bitcoin Address: “, bitcoinAddress.decode(‘utf8’))
53990da26273166bb7afc28c
ecdsaPublicKey)).hexdigest()
ridemp160FromHash256.hexdigest())
    print(“t|___>SHA256 #”, x, ” : “, hash)
——————————————————
步调4:我们将RIDEMP160应用于步调3中建设的值,并得到20字节的值。

让我们开始研究如何生成比特币地点;
d34dee729dcb7fc07e
ECDSA Public Key:  0478e410b429fcc6b9d46d30526fdb6d1fa292f38ce02bd2
步调2:由于
利用了公钥加密技能,我们需要依赖于私钥的公钥。因此我们也利用椭圆曲线数字签名算法来生成它。
步调3:我们将SHA256应用于步调2中建设的ECDSA公钥。
hash256FromECDSAPublicKey = hashlib.sha256(binascii.unhexlify(
print(“Append Checksum to RIDEMP160(SHA256(ECDSA Public Key)): “,
ecdsaPublicKey = ’04’ +  ecdsaPrivateKey.get_verifying_key().to_string().hex()
4e87dcb30d406d24f76bcc2afe2ef550c9068

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读