区块链中的密码学与网络技术
1. 交易中的数字签名
数字签名在交易中有着重要的应用,它能确保交易内容的完整性以及交易中任何事件的不可抵赖性。嵌入到区块中的交易包含特定的操作,该操作由拥有私钥的人进行签名,持有私钥就证明了签名者的身份。
以下是一个简单的交易类代码,包含交易 ID、签名和公钥:
import random
import hashlib
import binascii
from ecdsa import SigningKey, VerifyingKey, SECP256k1
from ecdsa.keys import BadSignatureError
class Transaction:
def __init__(self, public_key):
self.id = random.randint(1, 10**5)
self.signature = None
self.public_key = public_key
def sign(self, private_key):
data_to_sign = hashlib.sha256(str(self.id).encode()).digest()
sk = SigningKey.from_string(bytes.fromhex(private_key), curve=SECP256k1)
self.signature = binascii.b2a_hex(sk.sign(data_to_sign)).decode()
def
区块链密码学与P2P网络解析
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



