位元幣腳本執行環境
位元幣提供一種程式執行環境,它有
- 分割為兩段的腳本
- 多個腳本運算子
- 兩個堆疊,叫做主堆疊(MainStack)和從堆疊(AltStack)
廢話不多說,直接看程式,只需基礎的程式知識就可以理解,
兩段腳本
下面一段完整的腳本執行2+3=5
OP_2
OP_3
OP_ADD
OP_5
OP_EQUAL
這是一種基于堆疊的計算方式,猜測就可以知道寫的2 3 + 5 =
這種沒有括號,數字在前面,運算子在后面的寫法叫做逆波蘭運算式,有人說這證明了中本聰是日本人,因為日語就是 名詞在前面,動詞在后面,其實計算機在解釋編譯數學運算式,程式語言的時候都使用的這種方式,
在位元幣中分割這個腳本為下面兩段,一個叫做解鎖腳本,一個叫做鎖定腳本,
第一段
OP_2
第二段
OP_3
OP_ADD
OP_5
OP_EQUAL
第一段叫做解鎖腳本,第二段叫做鎖定腳本,
鎖定腳本的意思是:什么東西加上3等于5?
解鎖腳本回答:2
解鎖腳本同鎖定腳本連起來結果為“真”,說明解鎖成功,
這里的解鎖腳本答案顯然是唯一的,只有2加3才為5,
第二種分法
第一段解鎖腳本
OP_2
OP_3
第二段鎖定腳本
OP_ADD
OP_5
OP_EQUAL
鎖定腳本的意思是:哪兩個數加起來等于5?
這時候就有多個答案,2+3=5, 3+2=5, 1+4=5,4+1=5,0+5=5, 5+0=5,這些都是答案
所以解鎖腳本就可以有6種,比如 1+4=5
OP_1
OP_4
第三種分法
第一段解鎖腳本
OP_2
OP_3
OP_ADD
第二段鎖定腳本
OP_5
OP_EQUAL
鎖定腳本的意思是:什么東西等于5?
顯然5等于5,而不是第一段的2+3,最簡單的解鎖腳本是
OP_5
合起來運行就是
OP_5
OP_5
OP_EQUAL
第一段的2+3說明解鎖可以是個函式,甚至很復雜,只要結果等于5,解鎖腳本可以是任何東西,比如6-4+3=5
OP_6
OP_4
OP_SUB
OP_3
OP_ADD
換一種語言
上面的腳本使用原生的位元幣腳本關鍵字,不容易記憶理解,下面使用forth語言重寫,
: main
1 2 +
5 =
;
上面的程式使用mini forth語法書寫,
: main表示:主函式,程式從main函式開始執行
1 2 +表示:進行 1+2操作
5 =表示:判斷是否等于5
;表示:函式結束
改成兩段腳本
: unlock
2 3
;
: locking
+ 5 =
;
: main
unlock
locking
;
上面的程式創造了兩個函式,unlock是解鎖函式,locking是鎖定函式,
main函式順序呼叫解鎖和鎖定兩個函式,將把兩個函式連接在一起執行,
locking函式表示“哪兩個數加起來等于5?”
unlock函式提供了2和3兩個數字
顯然locking的函式語意用其他的高級語言難以描述,這就是forth語言的奇妙之處,
解鎖函式
: unlock
6 4 -
3 +
;
: locking
5 =
;
: main
unlock
locking
;
這段代碼實作了 6-4+3=5
解鎖腳本不只是資料,而是一個函式, 解鎖代碼提供了6-4+3這個答案,
享受位元幣帶來的安全自由, 關注使用NoteSV
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/41743.html
標籤:其他
上一篇:秋招總結(面經)
下一篇:電腦玩不了手游電腦版
