比特币中的公钥真实性

问题描述 投票:0回答:1

我对比特币(区块链)字段中的公钥密码学有根本的困惑。

例如,我了解到,在比特币中,当Bob想要进行交易时,他发出了包含以下内容的交易:

  • 普通交易消息(例如Bob向爱丽丝发送5比特币)。
  • 鲍勃的公钥
  • 交易的数字签名,使用Bob的私钥签名

[我了解整个比特币网络将基于Bob的公钥和数字签名来验证此交易,并与整个网络中的普通交易信息一起广播。

但是,如果上述交易(鲍勃发送给艾丽斯5比特币的交易)是由夏娃发起的?夏娃广播普通的交易消息,她的公钥,使用她的私钥签名的数字签名。似乎整个比特币网络也将根据所提供的信息来验证交易。

您能说明我的错误思维类型吗?

非常感谢!

干杯,M。

cryptography blockchain digital-signature bitcoin public-key
1个回答
0
投票

一切都正确。但是,鲍勃无法发送任何公钥。他必须提供与地址相关的公钥,并从中收取5 BTC的费用。在Bitcon设计中,地址是Pubkey的哈希。

结果,夏娃不知道鲍勃地址的公钥,因此她无法发送交易,而这花费了鲍勃的钱。但是,当然,她能够用自己的地址发送带有pubkey的交易。换句话说,夏娃可以花自己的钱,这没关系。

如果您会看到Bitcoin script的详细信息,则会看到典型的支出脚本:

ScriptPubKey = OP_DUP OP_HASH160 OP_EQUAL OP_CHECKSIG

此脚本复制pubkey,哈希一个副本,将哈希副本与btc_address进行比较,如果相等,则检查签名。如您所见,没有任何可接受的公钥。

© www.soinside.com 2019 - 2024. All rights reserved.