对于比特币(Blockchain)领域的公钥密码学,我有一个基本的困惑。
例如,我了解到,在比特币中,Bob想要进行交易时,他会发送一个包含以下内容的事务:
我知道整个比特币网络都将基于Bob的公钥和数字签名来验证这个交易,这个数字签名和普通的交易信息一起在整个网络中广播。
但是,如果上述事务( Bob向Alice 5比特币发送的)是由Eve启动的呢?Eve广播普通的交易消息,她的公钥,用她的私钥签名的数字签名。整个比特币网络似乎也将根据提供的信息对交易进行验证。
你能澄清我的错误想法是什么吗?
非常感谢!
干杯,M。
发布于 2020-02-19 22:18:54
一切都是正确的。但是,Bob不能发送任何公钥。他必须提供与地址相关的Pubkey,他从该地址取5 BTC以供进一步发送。在Bitcon设计中,地址是Pubkey的散列。
因此,伊芙不知道鲍勃的地址,她无法发送交易,这花费了鲍勃的钱。但是,当然,她能够发送交易与公开的地址,她拥有。换句话说,伊芙可以自己花钱,这没什么。
如果您将看到比特币脚本的详细信息,您将看到典型的支出脚本:
ScriptPubKey = OP_DUP OP_HASH160 OP_EQUAL OP_CHECKSIG
此脚本复制公键,散列一个副本,将散列复制与btc_address进行比较,如果相同,则检查签名。如你所见,没有任何公共场合可以接受。
https://stackoverflow.com/questions/60282659
复制相似问题