美文网首页
BTC科普系列:签名与验证

BTC科普系列:签名与验证

作者: DBOYKAD | 来源:发表于2018-02-14 16:35 被阅读48次

本文由币乎社区(bihu.com)内容支持计划奖励。

1)让我们再深一点,了解BTC的交易过程。

储备知识:BTC科普系列:最浪漫的事

储备知识:BTC科普系列:交易

2)复习:最浪漫的事其实是讲BTC的地址的相关知识:

地址里概念:私钥——公钥——公钥哈希——地址

相互关系:

从私钥(SK)计算出公钥(PK)(不可逆过程)

公钥(PK)计算出公钥哈希(不可逆过程)

公钥哈希前面加地址版本号,对此运算两次Hash结果的取前前4个字符作为验证码

得到版本号+公钥哈希+验证码,Base转换为BTC地址(可逆过程)

图片来自http://www.bitcoin86.com/teach/6494.html

3)复习:交易的过程

首先,验证一下,拥有者1是否有这笔钱(验证拥有者0的签名是否正确,来源是否已得到授权);

接着,拥有者1对你的地址进行签名(将这笔钱授权给你,你得到拥有者1签名,这时一笔交易已经结束);

接着,你再想花钱时,同样会先验证你这笔钱的来源是否真实(验证拥有者1的签名);

然后,你会对拥有者3的地址进行签名(确认用你的签名发给拥有者3,将这笔钱授权给拥有者3);

交易过程看上去很繁杂,但是你操作时,和使用支付宝差不多,只是将转帐的对象换成了地址,输入发多少BTC,然后输入密码即可;

因此,当你要消费BTC时,并不是消费你手上有多少BTC,而消费上一个拥有者对你输入的BTC;

而且,所有的交易相互串联,可以一直向上追溯,直到这笔钱被矿工挖出为止(矿工负责BTC的发行);

而为了让我直观的看到自己地址上的余额,通过交易的输入、输出即可计算出地址上的BTC余额。

4)新知识:

交易构造过程:

listunspent 查找unspent:

找出UTXO,即别人发给你的:Tx1=[输入:(交易内容(Tx0)+公钥(PK1)+签名1

createrawtransaction 构造原始交易:

Tx2=[输入:(交易内容(Tx1)+输出:(下一个接收者地址+数量)]

signrawtransaction 签名交易:

对原始交易进行签名,确认你同意这笔交易(交易内容(Tx1)+公钥(PK2))进行签名2,这个过程先插入公钥(PK2)再签名,一个输出签名一次,历遍所有输入;

当对一个输入签名时,其它输入的签名处全部留空;

Tx2=[输入:(交易内容(Tx1+公钥(PK2)+签名2))+输出:(下一个接收者地址+数量)]

sendrawtransactioin 广播交易:

将Tx2=[输入:(交易内容(Tx1+公钥(PK2)+签名2))+输出:(下一个接收者地址+数量)]过程转换为精简模式

5)补充说明:

私钥与公钥间为非对称加密:可以实现私钥签名,公钥验证,公钥加密,私钥解密;

发送者A在交易的过程中公布到全网的信息为:输入(Tx0)+公钥(PK1)+签名1,输出数量+接收地址;

交易内容(Tx0)可以理解为:发送者A的钱的来源+接收者A的地址+金额数量

发送者A用私钥(SK1)对交易内容(Tx1)进行签名,得到签名;

矿工收到交易内容(Tx0)+公钥(PK1)+签名1,可以用公钥(PK1)对签名1进行验证签名是否对应该交易内容(Tx1),从而确认交易,加入区块;

在这里,交易者并没有公开私钥(SK),而是公开了公钥(PK),即可验证这笔交易是由他发出的;

而接收者B,要发起新的交易时,同样,向全网发送:交易内容(Tx1)+公钥(PK2)+签名2

在交易内容(Tx2)中B的钱的来源即是A的交易内容(Tx1)+公钥(PK1)+签名1

公钥(PK2)用来给C交易时作验证用,签名2相当于确认了所属权的转移

接收者C发起交易(交易内容(Tx2)+公钥(PK3)+签名3)后,即可以再交易给别人

下面是个交易的例证:看完你将更加理解BTC的交易过程

{  "txid": "50dc0b6d578494542cea9fb68f472a5e260377afa78aa5bcfbcccc8bc38dc2d9",(交易ID)  "size": 271,  "version": 1,  "locktime": 0,  "vin": [(别人发给你的钱,你的交易输入)    {      "txid": "a9f150e64e24fe31050d3170be39714f20bed53708601aa8352d4aae443390fe(输入,你钱的来源)",      "vout": 0,      "scriptSig": {(你的交易签名与公钥)        "asm": "3045022100bb003af7fc84eccb8eb1510ef1acedcf9ccce3bf9dcc1e5b0adcd8dc5377b47702205c2c37090b4cef1966b871acd1541996c37e9cb90290aa0f8a7a7123c9d95dd3(签名)[ALL](公钥)",        "hex": "483045022100bb003af7fc84eccb8eb1510ef1acedcf9ccce3bf9dcc1e5b0adcd8dc5377b47702205c2c37090b4cef1966b871acd1541996c37e9cb90290aa0f8a7a7123c9d95dd301"      },      "sequence": 4294967295    },    {      "txid": "c40f5cd5b4cb6e523d6a0e1e68ff502bafedf9495849e8617b0ff3b504795a03(输入,你钱的来源)",      "vout": 0,      "scriptSig": {(你的交易签名与消息)        "asm": "3044022001de07b8463a2dd3ab1c000240815bc1297b068bc61b2e17a07f82907d99aa4202205d19e7ce4104b39d8bae932ddb9aff0b6c6bb5627d87eed588899064f5e8558b(签名)[ALL](公钥)",

       "hex": "473044022001de07b8463a2dd3ab1c000240815bc1297b068bc61b2e17a07f82907d99aa4202205d19e7ce4104b39d8bae932ddb9aff0b6c6bb5627d87eed588899064f5e8558b01"      },      "sequence": 4294967295    }  ],  "vout": [(你发出的交易,你的交易输出)    {      "value": 100.00000000,(你发出币的数量)      "n": 0,      "scriptPubKey": {(你把钱发到别人的公钥哈希上)        "asm": "OP_DUP OP_HASH160 3dd80429758dc027c5720bd8883b05e86c072ebd OP_EQUALVERIFY OP_CHECKSIG",        "hex": "76a9143dd80429758dc027c5720bd8883b05e86c072ebd88ac",        "reqSigs": 1,        "type": "pubkeyhash",        "addresses": [          "mm9xHpzw3T1LK3fFdsUJgf6jBkwPVpkEJJ"(别人的接收地址)        ]      }    }  ]}

引自:https://bitshuo.com/topic/584e487763baf1df6cad0d91

5)更深一步的学习可以参见

https://bitshuo.com/topic/584e487763baf1df6cad0d91

http://blog.csdn.net/q4878802/article/details/49638457

http://www.cnblogs.com/liuhaitao/p/4917718.html

http://www.cnblogs.com/liuhaitao/p/4917788.html

感谢您的关注!

相关文章

  • BTC科普系列:签名与验证

    本文由币乎社区(bihu.com)内容支持计划奖励。 1)让我们再深一点,了解BTC的交易过程。 储备知识:BTC...

  • BTC科普系列:信任

    本文由币乎(bihu.com)内容支持计划赞助 谨以此文献给一位生命中的战友及其可爱的家人! 白皮书原版:http...

  • BTC科普系列:初心

    本文由币乎社区(bihu.com)内容支持计划奖励。 1)今天看了猫爷的文章:该来的终会来 区块链市场的一些投资原...

  • BTC科普系列:大门

    本文由币乎社区(bihu.com)内容支持计划奖励。 1)警告:本篇文章内容极具知识难度、隐含极大风险,有概率造成...

  • BTC科普系列:BTS

    本文由币乎社区(bihu.com)内容支持计划奖励。 1)BTS叫比特股,由BM开发的去中心化交易所,其设计初心是...

  • BTC科普系列:石油

    本文由币乎(bihu.com)优质内容计划支持。 1)最近全球股市、币市大崩,而币市更是腰斩后再腰斩,这才是币市的...

  • BTC科普系列:交易

    本文由币乎(bihu.com)内容支持计划赞助 白皮书原版:https://bitcoin.org/bitcoin...

  • BTC科普系列:假期

    本文由币乎社区(bihu.com)内容支持计划奖励。 1)听说唐朝宋朝时期一周只有一天休息,而到明朝时,由于皇帝朱...

  • BTC科普系列:安全

    本文由币乎社区(bihu.com)内容支持计划奖励。 1)一大早打开微信,公众号赤兔金马奖发布一条重要警示《震惊:...

  • BTC科普系列:进化

    本文由币乎社区(bihu.com)内容支持计划奖励。 1)高中时,有一次和WJ同学在足球场边散步,我们的足球场种的...

网友评论

      本文标题:BTC科普系列:签名与验证

      本文链接:https://www.haomeiwen.com/subject/fqjktftx.html