
作者:0xShinChann,加密KOL;翻譯:0xjs@比特鏈視界
OP_CAT曾經是被中本聰從BTC腳本語言中刪除的操作碼,現在它又重新成為社區熱議中心(註:OP_CAT是Bitcoin Asia大會期間比特幣開發者們討論最多的)。
作為潛在的升級,它已獲得最初的正式指定比特幣改進提案(BIP)347。
OP_CAT是一項旨在提升比特幣智能合約功能(類似於以太坊)的舉措。本文詳解OP_CAT是什麼、工作機制、有哪些用例、社區有哪些爭議等。
1、一些背景知識:OP_CAT是如何出現的
OP_CAT 是比特幣中的早期操作碼。它最初是由比特幣創始人中本聰創建的一種編程快捷方式。但由於擔心高內存使用+潛在的安全漏洞,它於 2010 年被刪除。
2023 年 10 月,比特幣研究人員 Ethan Heilman 和 Armin Sabouri 提出了比特幣改進提案(BIP),建議將 OP_CAT 操作碼重新引入比特幣腳本語言。
此操作碼將允許開發人員在 Tapscript 中構建和評估 Merkle 樹和其他哈希數據結構,Tapscript 是用於在 Taproot 升級中啟用新交易類型的原生腳本語言。
2、OP_CAT 理論上如何發揮作用?
(i) 彈出值(Popping Values):首先從堆棧中刪除頂部的兩項(item)。
(ii) 連接:然後將這兩Item組合起來。如果x1和x2是item,x2是最後添加的item,OP_CAT將把它們連接起來形成x1x2。
(iii) 推回:然後將新組合的item放回到堆棧的頂部。
但是,如果堆棧上的item少於兩個,或者組合item的大小超過 520 字節(這是比特幣中腳本元素的限制),OP_CAT 將不起作用。如果通過軟分叉啟用,它將替換腳本中現有未使用的操作,使其處於活動狀態,而無需對網絡進行重大更改。
3、為什麼需要OP_CAT?它有什麼用?
簡化數據處理:OP_CAT 允許合併 Tapscript 中的兩個堆棧值。這簡化了複雜數據結構的創建+增強了腳本功能。
擴展比特幣功能:OP_CAT 引入了比特幣中不存在但在以太坊中至關重要的通用功能。這可以簡化 L2、DEX + dApp 的開發,使比特幣網絡具有多功能性。
多籤腳本:OP_CAT 可以幫助減少多籤腳本的大小,使它們更加高效且不那麼繁瑣。
促進複雜的合約:OP_CAT 支持金庫等高級合約,即使私鑰被洩露也能保護資金。
4、OP_CAT在比特幣中作用爭議:OP_CAT 完美嗎?
這個提案有點爭議,因為它影響了比特幣作為區塊鏈未來如何發展或不發展的路徑。
一個陣營認為比特幣應該保持原樣,保留其交易 BTC 的核心功能,而另一些人則認為比特幣還沒有僵化,看到了增強所有新興的可擴展性解決方案(如橋和L2 )蓬勃發展的空間。
問題的核心是一個關鍵的決定:比特幣是否應該擴展成一個更可編程的公鏈,或者仍然是一個 P2P 支付結算層。
BIP 347詳情請參閱這個地址:https://github.com/bitcoin/bips/blob/master/bip-0347.mediawiki