zoukankan      html  css  js  c++  java
  • 比特币的锁定脚本与解锁脚本

    锁定脚本:这笔钱发送给A(包含A的共钥);

    解锁脚本:我是A,这笔钱是我的;

    锁定脚本:我要验证你的身份;

    解锁脚本:这个是我用我的私钥签名的上一笔交易信息的签名;

    矿工:

    1、使用解锁脚本关联的公钥的地址的hash信息与锁定脚本的地址hash比较;

    2、如果一致;

    3、获取共钥,使用公钥+上一笔交易信息+解锁脚本的私钥签名结果进行验签;

    4、验签通过,说明这笔钱是A的,可以使用这笔钱。

    总结:

    1、锁定脚本包含验签过程;

    2、解锁脚本包含签名过程;

    3、矿工负责整合资源完成验签。

    4、签名的原信息为上一笔交易的交易信息。

    难点:

    1、签名与验签倒置;

    2、锁定脚本中只包含验签函数。只是打包到交易数据中,等到下一次交易时,由矿工使用。

    https://blog.csdn.net/wen294299195/article/details/80220651

    下图,是一笔交易的完整过程。这里面交易有两种类型,一种是Coinbase交易,也就是挖矿奖励的比特币,由于没有发送人,所以比较特殊。另一种就是我们常见的普通交易了,包含输入和输出的。

    20180317215503_69483.png

    https://bbs.huaweicloud.com/blogs/d4c97558190611e89fc57ca23e93a89f

    解锁脚本:<Sig> <PubKey>  

    解锁脚本是由签名与公钥组成,这就保证了必须拥有私钥的用户才能对某一笔交易进行解锁。

    锁定脚本:OP_DUP OP_HASH160 <PubkeyHash> OP_EQUALVERIFY OP_CHECKSIG                   

    锁定脚本是由一连串堆栈命令和公钥哈希组成,公钥哈希即RIPEMD160(SHA256(公钥)),大小20字节;由第二节的知识可知比特币地址实际是由该公钥Hash进行Base58check编码而来,所以必须拥有该地址的私钥才能将锁定脚本解锁。

    http://www.cryptocapitalism.center/bitcoin-crash-course/

    Bitcoin’s two most basic scripts: ‘ScriptPubKey’ locks bitcoin into the recipient’s wallet, and ‘ScriptSig’ unlocks the funds by checking the digital signature

    scriptsig_scriptpubkey_lock_unlock.png

  • 相关阅读:
    day10servlet编程
    day9http协议
    day8 服务器
    day4 DOM,BOM
    k均值
    asp.net mvc 下拉列表
    asp.net mvc  Ajax.BeginForm 异步上传图片的问题
    sqlserver 存储过程 游标实例
    中篇: php 微信支付 基于Thinkphp3.2开发
    下篇: php 微商城 基于Thinkphp3.2框架开发
  • 原文地址:https://www.cnblogs.com/feng9exe/p/9890639.html
Copyright © 2011-2022 走看看