blockchain script 中文描述

script 總結(jié)
廢話不多說砸民,直接上干貨,每一個(gè)腳本的中文翻譯,可以當(dāng)個(gè)詞典查閱:

  • 常數(shù)
關(guān)鍵字 操作碼 十六進(jìn)制 輸入 輸出 描述
OP_0,OP_FALSE 0 0×00 一個(gè)字節(jié)空串被推到堆棧中(并非no-op操作崇众,有一個(gè)元素壓入堆棧)
N/A 1-75 0×01-0x4b (特殊) 數(shù)據(jù) 下一個(gè)操作碼字節(jié)是要被壓入堆棧的數(shù)據(jù)
OP_PUSHDATA1 76 0x4c (特殊) 數(shù)據(jù) 下一字節(jié)是要被壓入堆棧的數(shù)據(jù)的長(zhǎng)度
OP_PUSHDATA2 77 0x4d (特殊) 數(shù)據(jù) 下兩個(gè)字節(jié)是要被壓入堆棧的數(shù)據(jù)的長(zhǎng)度
OP_PUSHDATA4 78 0x4e (特殊) 數(shù)據(jù) 下四個(gè)字節(jié)是要被壓入堆棧的數(shù)據(jù)的長(zhǎng)度
OP_1NEGATE 79 0x4f -1 數(shù)字-1被壓入堆棧
OP_1,OP_TRUE 81 0×51 1 數(shù)字1被壓入堆棧
OP_2-OP_16 82-96 0×52-0×60 2-16 與關(guān)鍵名相對(duì)應(yīng)的數(shù)字被壓入堆棧
  • 流程控制
關(guān)鍵字 操作碼 十六進(jìn)制 輸入 輸出 描述
OP_NOP 97 0×61 無任何操作
OP_IF 99 0×63 <expression> if [statements] [else [statements]]* endif 如果棧項(xiàng)元素值不為0掂僵,語句將被執(zhí)行,棧項(xiàng)元素值被刪除顷歌。
OP_NOTIF 100 0×64 <expression> if [statements] [else [statements]]* endif 如果棧項(xiàng)元素值為0锰蓬,語句將被執(zhí)行,棧項(xiàng)元素值被刪除眯漩。
OP_ELSE 103 0×67 <expression> if [statements] [else [statements]]* endif 如果前述的OP_IF或 OP_NOTIF或OP_ELSE 未被執(zhí)行芹扭,這些語句就會(huì)被執(zhí)行;如果前述的OP_IF或 OP_NOTIF或OP_ELSE被執(zhí)行赦抖,這些語句就不會(huì)被執(zhí)行
OP_ENDIF 104 0×68 <expression> if [statements] [else [statements]]* endif 結(jié)束if/else語言塊
OP_VERIFY 105 0×69 True / false 無 / False 如果棧項(xiàng)元素值非真舱卡,則標(biāo)記交易無效。True會(huì)被刪除队萤,F(xiàn)alse不會(huì)被刪除轮锥。
OP_RETURN 106 0x6a 標(biāo)記交易無效
  • 堆棧
關(guān)鍵字 操作碼 十六進(jìn)制 輸入 輸出 描述
OP_TOALTSTACK 107 0x6b x1 (alt)x1 把輸入壓入輔堆棧的項(xiàng)部,從主堆棧刪除要尔。
OP_FROMALTSTACK 108 0x6c (alt)x1 x1 把輸入壓入主堆棧的項(xiàng)部舍杜,從輔堆棧刪除。
OP_IFDUP 115 0×73 x x / x x 如果棧項(xiàng)元素值不為0赵辕,復(fù)制該元素值
OP_DEPTH 116 0×74 <堆棧大小> 把堆棧元素個(gè)數(shù)壓入堆棧
OP_DROP 117 0×75 x 刪除棧頂元素
OP_DUP 118 0×76 x x x 復(fù)制棧頂元素
OP_NIP 119 0×77 x1 x2 x2 刪除棧頂?shù)南乱粋€(gè)元素
OP_OVER 120 0×78 x1 x2 x1 x2 x1 復(fù)制棧頂?shù)南乱粋€(gè)元素到棧頂
OP_PICK 121 0×79 xn … x2 x1 x0 <n> xn … x2 x1 x0 xn 把堆棧的第n個(gè)元素拷貝到棧頂
OP_ROLL 122 0x7a xn … x2 x1 x0 <n> … x2 x1 x0 xn 把堆棧的第n個(gè)元素移動(dòng)到棧頂
OP_ROT 123 0x7b x1 x2 x3 x2 x3 x1 棧頂?shù)娜齻€(gè)元素向左翻轉(zhuǎn)
OP_SWAP 124 0x7c x1 x2 x2 x1 棧頂?shù)膬蓚€(gè)元素交換
OP_TUCK 125 0x7d x1 x2 x2 x1 x2 把棧頂元素拷貝并插入到棧頂下一個(gè)元素之后既绩。注意:原文為“插入到棧頂下一個(gè)元素之前”,可能有誤还惠,翻譯時(shí)改為“之后”
OP_2DROP 109 0x6d x1 x2 刪除棧頂兩個(gè)元素
OP_2DUP 110 0x6e x1 x2 x1 x2 x1 x2 復(fù)制棧頂兩個(gè)元素
OP_3DUP 111 0x6f x1 x2 x3 x1 x2 x3 x1 x2 x3 復(fù)制棧頂三個(gè)元素
OP_2OVER 112 0×70 x1 x2 x3 x4 x1 x2 x3 x4 x1 x2 把棧底的兩個(gè)元素拷貝到棧頂
OP_2ROT 113 0×71 x1 x2 x3 x4 x5 x6 x3 x4 x5 x6 x1 x2 以一對(duì)元素為單位饲握,向左翻轉(zhuǎn)。注意:原文大意“把第五和第六元素移動(dòng)到棧頂”吸重,明顯有誤
OP_2SWAP 114 0×72 x1 x2 x3 x4 x3 x4 x1 x2 以一對(duì)元素為單位互拾,交換棧頂?shù)膬蓪?duì)元素的位置。
  • 字符串

如果標(biāo)記為已禁用的操作碼出現(xiàn)在交易中嚎幸,必須終止和失敗返回颜矿。

關(guān)鍵字 操作碼 十六進(jìn)制 輸入 輸出 描述
OP_CAT 126 0x7e x1 x2 out 連接兩個(gè)字符串,已禁用
OP_SUBSTR 127 0x7f in begin size out 返回字符串的一部分嫉晶,已禁用
OP_LEFT 128 0×80 in size out 在一個(gè)字符串中保留左邊指定長(zhǎng)度的子串骑疆,已禁用
OP_RIGHT 129 0×81 in size out 在一個(gè)字符串中保留右邊指定長(zhǎng)度的子串,已禁用
OP_SIZE 130 0×82 in in size 把棧頂元素的字符串長(zhǎng)度壓入堆棧(無需彈出元素)
  • 位邏輯

如果標(biāo)記為已禁用的操作碼出現(xiàn)在交易中替废,必須終止和失敗返回箍铭。

關(guān)鍵字 操作碼 十六進(jìn)制 輸入 輸出 描述
OP_INVERT 131 0×83 in out 所有輸入的位取反,已禁用.
OP_AND 132 0×84 x1 x2 out 對(duì)輸入的所有位進(jìn)行布爾與運(yùn)算椎镣,已禁用
OP_OR 133 0×85 x1 x2 out 對(duì)輸入的每一位進(jìn)行布爾或運(yùn)算诈火,已禁用
OP_XOR 134 0×86 x1 x2 out 對(duì)輸入的每一位進(jìn)行布爾異或運(yùn)算,已禁用
OP_EQUAL 135 0×87 x1 x2 True/false 如果輸入的兩個(gè)數(shù)相等状答,返回1冷守,否則返回0刀崖。
OP_EQUALVERIFY 136 0×88 x1 x2 True/false 與OP_EQUAL一樣,之后運(yùn)行OP_VERIFY 拍摇。
  • 算術(shù)邏輯

注意:算術(shù)邏輯的輸入限于有符號(hào)32位長(zhǎng)整數(shù)亮钦,但輸出有可能會(huì)溢出。
如果任何命令的輸入值長(zhǎng)度超過4字節(jié)充活,腳本必須中止和失敗返回蜂莉。如果標(biāo)記為已禁用的操作碼出現(xiàn)在交易中,也必須終止和失敗返回

關(guān)鍵字 操作碼 十六進(jìn)制 輸入 輸出 描述
OP_1ADD 139 0x8b in out 輸入值加1
OP_1SUB 140 0x8c in out 輸入值減1
OP_2MUL 141 0x8d in out 輸入值乘2混卵,已禁用
OP_2DIV 142 0x8e in out 輸入值除2映穗,已禁用
OP_NEGATE 143 0x8f in out 輸入值符號(hào)取反
OP_ABS 144 0×90 in out 輸入值符號(hào)取正
OP_NOT 145 0×91 in out 如果輸入值為0或1,則輸出1或0幕随;否則輸出0男公。I
OP_0NOTEQUAL 146 0×92 in out 輸入值為0輸出0;否則輸出1合陵。
OP_ADD 147 0×93 a b out 輸出a+b
OP_SUB 148 0×94 a b out 輸出a-b
OP_MUL 149 0×95 a b out 輸出a*b枢赔,已禁用
OP_DIV 150 0×96 a b out 輸出a/b, 已禁用
OP_MOD 151 0×97 a b out 輸出a/b的余數(shù),已禁用
OP_LSHIFT 152 0×98 a b out 把a(bǔ)向左移動(dòng)b位拥知,保留符號(hào)踏拜,已禁用
OP_RSHIFT 153 0×99 a b out 把a(bǔ)向右移動(dòng)b位,保留符號(hào)低剔,已禁用
OP_BOOLAND 154 0x9a a b out 如果a和b都不為0速梗,輸出1,否則輸出0
OP_BOOLOR 155 0x9b a b out 如果a或b不為0襟齿,輸出1姻锁,否則輸出0
OP_NUMEQUAL 156 0x9c a b out 如果a=b則輸出1,否則輸出0猜欺。
OP_NUMEQUALVERIFY 157 0x9d a b out 與OP_NUMEQUAL一樣位隶,之后要運(yùn)行OP_VERIFY
OP_NUMNOTEQUAL 158 0x9e a b out 如果a!=b則輸出1,否則輸出0开皿。
OP_LESSTHAN 159 0x9f a b out 如果a<b則輸出1涧黄,否則輸出0。
OP_GREATERTHAN 160 0xa0 a b out 如果a>b則輸出1赋荆,否則輸出0笋妥。
OP_LESSTHANOREQUAL 161 0xa1 a b out 如果a<=b則輸出1,否則輸出0
OP_GREATERTHANOREQUAL 162 0xa2 a b out 如果a>=b則輸出1窄潭,否則輸出0
OP_MIN 163 0xa3 a b out 輸出a,b中的最小值
OP_MAX 164 0xa4 a b out 輸出a,b中的最大值
OP_WITHIN 165 0xa5 x min max out 如果x在min和max之間春宣,則輸出1,否則輸出
  • 加密
關(guān)鍵字 操作碼 十六進(jìn)制 輸入 輸出 描述
OP_RIPEMD160 166 0xa6 in hash 輸入用RIPEMD-160算法HASH
OP_SHA1 167 0xa7 in hash 輸入用SHA-1算法HASH.
OP_SHA256 168 0xa8 in hash 輸入用SHA-256算法HASH.
OP_HASH160 169 0xa9 in hash 輸入被HASH兩次,先用 SHA-256月帝,再用 RIPEMD-160.
OP_HASH256 170 0xaa in hash 輸入用SHA-256算法HASH兩次.
OP_CODESEPARATOR 171 0xab 所有簽名檢查只需匹配最近一次執(zhí)行的OP_CODESEPARATOR 操作數(shù)據(jù)的簽名即可材义。
OP_CHECKSIG 172 0xac sig pubkey True / false 全部交易的輸出、輸入和腳本(從最近執(zhí)行的OP_CODESEPARATOR操作到最)都被HASH嫁赏,OP_CHECKSIG使用的簽名必須是該HASH值和公鑰的有效簽名,如果是真則返回1油挥,否則返回0潦蝇。
OP_CHECKSIGVERIFY 173 0xad sig pubkey True / false 與OP_CHECKSIG一樣,但之后執(zhí)行 OP_VERIFY
OP_CHECKMULTISIG 174 0xae x sig1 sig2 … <number of signatures> pub1 pub2 <number of public keys> True / False 對(duì)于每個(gè)簽名和公鑰對(duì)深寥,OP_CHECKSIG 都會(huì)被執(zhí)行攘乒,如果公鑰列得比簽名多,一些公鑰/簽名對(duì)會(huì)失敗惋鹅。所有的簽名要與公鑰匹配则酝。如果所有簽名有效,輸出1闰集,否則返回0沽讹。因?yàn)榇嬖贐UG,一個(gè)未使用的外部值會(huì)從堆棧中刪除武鲁。
OP_CHECKMULTISIGVERIFY 175 0xaf x sig1 sig2 … <number of signatures> pub1 pub2 … <number of public keys> True / False 與 OP_CHECKMULTISIG,一樣爽雄,但是之后運(yùn)行 OP_VERIFY。
  • 偽關(guān)鍵字

這些關(guān)鍵字僅供內(nèi)部使用沐鼠,用輔助進(jìn)行交易匹配挚瘟,如果使用在實(shí)際的交易中則是無效的。

關(guān)鍵字 操作碼 十六進(jìn)制 描述
OP_PUBKEYHASH 253 0xfd 表示公鑰用OP_HASH160操作碼HASH
OP_PUBKEY 254 0xfe 表示與OP_CHECKSIG.兼容的一個(gè)公鑰
OP_INVALIDOPCODE 255 0xff 匹配任何未指定的操作碼
  • 保留關(guān)鍵字
關(guān)鍵字 操作碼 十六進(jìn)制 描述
OP_RESERVED 80 0×50 交易無效饲梭,除非發(fā)生在未執(zhí)行的OP_IF 分支
OP_VER 98 0×62 交易無效乘盖,除非發(fā)生在未執(zhí)行的OP_IF 分支
OP_VERIF 101 0×65 交易無效,即使發(fā)生在未執(zhí)行的OP_IF 分支
OP_VERNOTIF 102 0×66 交易無效憔涉,即使發(fā)生在未執(zhí)行的OP_IF 分支
OP_RESERVED1 137 0×89 交易無效订框,除非發(fā)生在未執(zhí)行的OP_IF 分支
OP_RESERVED2 138 0x8a 交易無效,除非發(fā)生在未執(zhí)行的OP_IF 分支
OP_NOP1-OP_NOP10 176-185 0xb0-0xb9 這些關(guān)鍵字被忽略

本文由Copernicus 團(tuán)隊(duì) 冉小龍 總結(jié)兜叨,轉(zhuǎn)載無需授權(quán)布蔗。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市浪腐,隨后出現(xiàn)的幾起案子纵揍,更是在濱河造成了極大的恐慌,老刑警劉巖议街,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件泽谨,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)吧雹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門骨杂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人雄卷,你說我怎么就攤上這事搓蚪。” “怎么了丁鹉?”我有些...
    開封第一講書人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵妒潭,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我揣钦,道長(zhǎng)雳灾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任冯凹,我火速辦了婚禮谎亩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宇姚。我一直安慰自己匈庭,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開白布浑劳。 她就那樣靜靜地躺著嚎花,像睡著了一般。 火紅的嫁衣襯著肌膚如雪呀洲。 梳的紋絲不亂的頭發(fā)上紊选,一...
    開封第一講書人閱讀 51,775評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音道逗,去河邊找鬼兵罢。 笑死,一個(gè)胖子當(dāng)著我的面吹牛滓窍,可吹牛的內(nèi)容都是我干的卖词。 我是一名探鬼主播,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼吏夯,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼此蜈!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起噪生,我...
    開封第一講書人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤裆赵,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后跺嗽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體战授,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡页藻,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了植兰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片份帐。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖楣导,靈堂內(nèi)的尸體忽然破棺而出废境,到底是詐尸還是另有隱情,我是刑警寧澤筒繁,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布噩凹,位于F島的核電站,受9級(jí)特大地震影響膝晾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜务冕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一血当、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧禀忆,春花似錦臊旭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至戴涝,卻和暖如春滋戳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背啥刻。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工奸鸯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人可帽。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓娄涩,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親映跟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蓄拣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356