比特幣簽名交易系列——03UTXO中爲何有腳本代碼?

前一篇文章講到UTXO結構的最後一個字段是腳本代碼。那這段代碼長什麼樣?中本聰爲什麼要設計一段腳本代碼在這裏?

先來解答第一個問題,這段代碼長啥樣?從區塊瀏覽器上找到一個普通的轉賬交易(從鏈接https://btc.com/7301b595279ece985f0c415e420e425451fcf7f684fcce087ba14d10ffec1121可以查看詳情),如下圖所示

可以看到有這麼一串類似彙編語言的代碼:

OP_DUP OP_HASH160 61cf5af7bb84348df3fd695672e53c7d5b3f3db9 OP_EQUALVERIFY OP_CHECKSIG

其中OP_DUP,OP_HASH160, OP_EQUALVERIFY, OP_CHECKSIG都是指令。比特幣協議描述這些指令的功能,見官方文檔:https://en.bitcoin.it/wiki/Script

例如這裏的OP_DUP表示把棧頂的數據複製一份。

這好像不通啊,什麼都沒有,怎麼就突然把棧頂的數據複製一份?棧頂的數據是什麼數據?

有這個疑問是對的。因爲這確實不通。這裏的這串腳本不能馬上拿來執行,它只是整個可執行腳本的一半。這就好比是四顆龍珠,必須集齊另外三顆龍珠才能發動召喚神龍。那另外一半在哪?另外一半就在這筆交易後來要花費的時候纔出現。當有人能拿出另一半腳本的時候,就證明這個人有資格花這筆UTXO。

所以中本聰設計這段腳本在UTXO的目的,就是爲了防止自己的UTXO被別人花了。這個UTXO裏的腳本就好比是一個謎語的謎面,而只有自己纔有謎底。當且僅當能提供謎底才能花這筆UTXO。

歸根結底,用腳本的方式是爲了給這個UTXO確權。誰能提供這個腳本的另外一部分代碼,誰就能夠花這筆UTXO。

 

(全文完)

參考鏈接

https://btc.com/7301b595279ece985f0c415e420e425451fcf7f684fcce087ba14d10ffec1121

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章