OP_CAT to proponowany opcode dla Tapscript, który łączy dwa ciągi bajtów, jeśli wynikowy element nie przekracza limitu 520 bajtów; nie jest jeszcze aktywny w mainnet.
Specyfikacja ponownie definiuje OP_SUCCESS126 w Tapscript. Operacja zdejmuje dwa górne elementy stosu, łączy je w kolejności stosu i odkłada wynik na stos. [1]
Pierwotny OP_CAT wyłączono we wczesnym Bitcoin wraz z innymi opcodes. Nowa propozycja ogranicza się do Tapscript i zachowuje obecny limit 520 bajtów dla pojedynczego elementu stosu. [2]
Łączenie pozwala budować w script dane strukturalne i obliczać ich hashe. Zwolennicy wywodzą z tego covenants, drzewa transakcji, vaults i dowody właściwości przyszłej transakcji. [1]
Sam opcode nie określa ani jednej konkretnej aplikacji, ani uniwersalnej maszyny wirtualnej. Bezpieczeństwo danego protokołu zależy od sposobu połączenia OP_CAT z hashami, podpisami i regułami wydawania. [1]
BIP ma status Complete, który opisuje dojrzałość dokumentu, a nie aktywację w konsensusie. Węzły mainnet uznają dziś OP_SUCCESS126 za pomyślne zakończenie script zgodnie z regułami Tapscript. [3]
Aktywacja byłaby soft fork: nowe reguły zawęziłyby zbiór wcześniej poprawnych wydań Tapscript. Wymagałaby osobnego procesu wdrożenia i szerokiej oceny technicznej. [1]
OP_CAT wiąże się z CTV, covenants i Simplicity, ale nie jest ich synonimem. Każda propozycja zapewnia inną ekspresyjność, koszt analizy i przestrzeń dla niezamierzonych konstrukcji. [1]
Przy weryfikacji trzeba oddzielić istniejącą specyfikację i implementacje eksperymentalne od faktycznych reguł mainnet. Wallet nie może zakładać dostępności OP_CAT bez aktywacji. [4]
Pełniejszy obraz uzyskasz, czytając to hasło razem z Bitcoin Script, Taproot, Covenants, OP_CHECKTEMPLATEVERIFY, Soft Fork, BIP (Bitcoin Improvement Proposal).
01Czy OP_CAT jest dziś aktywny w mainnet Bitcoin?+
Nie. BIP 347 jest ukończoną specyfikacją propozycji, ale zmiana nie została aktywowana jako reguła konsensusu mainnet.
02Czy OP_CAT oznacza smart contracts ogólnego przeznaczenia?+
Nie. Dodaje jedną operację łączenia danych; możliwości i ryzyka wynikają z konkretnych scripts i protokołów, które jej używają.