美文网首页区块链
比特币交易脚本是什么

比特币交易脚本是什么

作者: 92b0f2b9b6f8 | 来源:发表于2018-05-21 01:13 被阅读13次

比特币基于UTXO模型,记住这一点在理解比特币各个环节都大有裨益。

UTXO是指未花费的交易输出(Unspent Transaction Output),也就是没有什么比特币只有UTXO。

这个名词是基于交易而来,对于一笔交易,至少有一笔或若干交易收入,即钱从哪里来,并有一笔或若干笔交易输出,即未花费的交易输出。

交易脚本又分为输入脚本和输出脚本,其中输入脚本存在于交易输入中,输出脚本存在于UTXO中。

为便于理解我们先看只有一笔输入一笔输出的比特币交易。

如图,三笔交易的关系如下:首先Alice转账给Bob一笔交易,假设为1btc,Bob又用收到的这笔钱付给Carol,然后Carol又付给了DAve。即:交易a,Alice转账给Bob;交易b,Bob转账给Carol;交易c,Carol转账给Dave。

在每笔交易中,输入交易表明钱从哪里来,输出交易表示钱要付给谁。后一笔交易的交易输入都要引用前一笔交易的交易输出。

在交易b中,Bob若想成功的付款给Carol,就需要引用交易a的交易输出,即用交易b的输入脚本去验证交易a的输出脚本。若验证成功,说明Bob拥有这1btc,可以付款给Carol。

若把输出交易比作题,则输入交易则是该题的解。如下图,相同颜色的输入输出交易才是一对题和解,准确的说是其脚本。

比特币脚本是一种堆栈结构,即先进后出的容器。

[输出脚本]内容为四个脚本指令和一个公钥哈希,对于交易a的输出脚本来说,该公钥哈希为Bob公钥的哈希。

[输入脚本]内容为签名和公钥,对于交易b的输入脚本来说,签名是用Bob的私钥对交易a进行签名,并附上Bob的公钥。

如下图:


接下来以交易a的输出脚本和交易b的输入脚本为例说明其是如何执行的。

  1. 首先将输入脚本的签名和公钥压入栈。
  1. 执行输出脚本的第一个指令OP_DUP——复制栈顶元素并放在栈顶。
  1. 执行第二条指令OP_HASH160,对栈顶的Bob公钥进行哈希运算得到Bob的公钥哈希。
  1. 将输出脚本中的公钥哈希入栈,记为pubkeyhash’。
  1. 执行指令OP_EQUALVERIFY验证栈顶两元素是否相等,若相等则删除并继续执行。
  1. 执行最后一个指令OP_CHECKSIG对栈中最后两个元素进行签名的验签操作。

其中第3步pubkeyhash与pubkeyhash’相等说明Alice要转账付款的对象正是Bob提供的地址。第6步签名验签成功说明Bob拥有这个地址对应的私钥,即拥有这个地址和这个地址收到的btc。

若成功完成这六部,说明输入脚本可以验证输出脚本,Bob拥有Alice付给其的1btc,可以继续用这1btc与Carol进行交易。

作者:透明人(bbcstdy)
参考:http://www.8btc.com/understand-bitcoin-script

相关文章

  • PalletOne技术讲堂之比特币与区块链特辑(二)

    比特币与区块链技术进阶 AGENDA 交易脚本 扩容与分叉 交易脚本 比特币的交易验证引擎依赖于两类脚本来验证比特...

  • 以太坊入门之概念篇

    以太坊由来 比特币的局限性: 比特币本身的设计就是货币交易 使用比特币脚本难以开发应用 以太坊是什么: 为了解决比...

  • 零基础搞懂比特币的交易创建

    为了让你了解比特币交易的构造,我提供了以下最小必要知识: 比特币交易的组成元素 交易脚本中的构成元素 比特币交易的...

  • PalletOne技术讲堂之比特币与区块链特辑(二)

    原创:曾毅Pallet6月20日 比特币与区块链技术进阶 AGENDA 交易脚本 扩容与分叉 交易脚本 比特币的交...

  • 锁定和解锁

    比特币的交易验证引擎依赖于两类脚本来验证比特币交易:锁定脚本和解锁脚本。 锁定脚本是一个放置在输出上面的花费条件:...

  • 关键词|比特币

    目录 前言 比特币是什么比特币出现的背景比特币 比特币和中本聪中本聪比特币交易概念推动比特币发展中本聪的退场比特币...

  • 比特币交易脚本是什么

    比特币基于UTXO模型,记住这一点在理解比特币各个环节都大有裨益。 UTXO是指未花费的交易输出(Unspent ...

  • 比特币脚本指南(二)

    比特币脚本交易:幕后故事 交易代码长这样: 好比Alice想给Bob发0.0015 BTC。 根据上面若干交易条件...

  • 什么是比特币交易,比特币交易流程、平台及类型

    很多人对比特币有一定的了解, 但是对比特币交易不甚了解, 本文将对什么是比特币交易,比特币如何交易、比特币交易流程...

  • [区块链 Sec4] 比特币的运行机制

    前文泛谈了区块链和比特币的一些知识和概念,本章将从数据结构,脚本和语言上更加精准地描述比特币。 1 比特币的交易 ...

网友评论

    本文标题:比特币交易脚本是什么

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