您的位置: 首页 > 软件教程 > 比特币 > 深入理解比特币交易的脚本 一起看看吧

深入理解比特币交易的脚本 一起看看吧

6.0分
出处:网络 时间:2018-03-02

您可能感兴趣的话题: 比特币  

核心提示:在比特币区块链中,每一个区块都指向上一个区块,这些通过SHA256计算的区块哈希链就是比特币账本不可篡改的基础。

  在比特币区块链中,每一个区块都指向上一个区块,这些通过SHA256计算的区块哈希链就是比特币账本不可篡改的基础。

  在一个区块中,比特币系统用交易(Transaction)来表示一笔比特币交易。一个区块包含至少一笔交易。这些Transaction的Hash通过Merkle Tree计算出所有交易的Merkle Hash,并被包含至区块Hash中,从而实现交易的不可修改。

  如果我们仔细观察每一笔交易,可以发现,除了第一笔交易是矿工的挖矿所得外,每一笔交易都拥有一个或多个输入(TxIn),以及一个或多个输出(TxOut):

深入理解比特币交易的脚本 一起看看吧

  第一笔矿工挖矿的收入交易通常被称为coinbase,它没有输入,所以TxIn的Hash总是被标记为00000000...0000。

  其他的交易,任何一个TxIn都会唯一追溯到区块链上在本区块之前的某个交易Hash,以及索引:

深入理解比特币交易的脚本 一起看看吧

  通过交易Hash和索引(从0开始),即可唯一确定一个未花费的交易输出——UTXO(Unspent Transaction Output)。这样,每一个Tx Input都和之前的某个Tx Output关联了起来。

  我们假设在上一笔交易中,Bob给Alice支付了0.15个BTC。

  由于比特币并没有账户的概念,这一笔交易的输出并没有写上Alice的名字,也没有写上Alice的公钥。

  那么,Alice想要花费这0.15个BTC,她应该如何证明自己拥有这个UTXO,并且,其他人无法假冒Alice来花费这个UTXO呢?

  答案是比特币的交易创建的输出其实并非一个简单的公钥地址,而是一个脚本。在Bob给Alice支付0.15个BTC的这个交易中,Bob创建的输出脚本类似:

  OP_DUP OP_HASH160 abcd1234...9876 OP_EQUALVERIFY OP_CHECKSIG

  其中,abcd1234...9876是Alice的公钥Hash。整个脚本的意思是,谁能够提供一个签名和一个公钥,让这个脚本运行通过,谁就能花费这笔交易的0.15个BTC。

  由于创建签名只能使用Alice的私钥,非Alice的私钥创建的签名将无法通过这个脚本的验证,所以,其他人无法假冒Alice来花费这笔输出。

  一旦Alice提供了一个签名和自己的公钥,她实际上已经创建了另一笔交易来花费这个输出。

  所有人都可以验证Alice创建的这个新交易是否有效。如果有效,该交易就会被矿工打包进新的区块,从而成为区块链上不可更改的一部分。

网友评论
精品软件课程
更多 >
快播播放器(Qvod Player)是一款基... [详细]
360安全卫士是当前功能最强、效果最好、最受... [详细]
会声会影(Corel VideoStudio... [详细]
腾讯QQ支持在线聊天、视频电话、点对点断点续... [详细]
搜狗拼音输入法是网上最流行、功能最强大的拼音... [详细]
Windows 7 是由微软公司开发的,具有... [详细]