Introducere

Este posibil să fi auzit despre reactivarea OP_CAT ca o potențială actualizare pentru limbajul de script al bitcoin. În funcție de unde primiți știrile dvs., OP_CAT a fost numit „doar 10 linii de cod”, „cel mai bun mod de a permite experimentarea cu legăminte”, „prea puternic”, „periculos și care duce la centralizarea minerilor” sau „garantat pentru a duce la o furculiță moale controversată”. Voi susține că toate aceste perspective sunt greșite. OP_CAT este foarte util, poate fi folosit ca un legământ și nu (singur) cea mai bună mișcare următoare pentru bitcoin. Nimic mai mult și nimic mai puțin.

Pentru a face acest caz, voi explora mai multe subiecte (aparent disjunse), dintre care unele erau noi pentru mine cu câteva luni în urmă. Voi încerca să aranjez acest lucru într-un mod care să ofere fundalul necesar într-un singur loc.

Cum și ce face OP_CAT

Introspecție cu CAT

Să abordăm întrebarea arzătoare pe care mulți o au atunci când au fost expuși pentru prima dată la OP_CAT. Cum pot câteva linii de cod care combină două elemente din stivă într-unul singur (A B CAT -> AB) să permită ceva interesant? Andrew Poelstra a explicat elocvent în interviurile recente și am postat o explicație prostească și scurtă:

Bitcoin este puțin ciudat, așa că poate împărți și lucruri. Apoi SHA256 ne permite să anulăm hashurile. Apoi, deoarece criptografia este doar matematică și știm cum să șlefuim, CAT ne permite să extragem un hash dintr-o verificare a semnăturii. Și, ca rezultat, putem inspecta orice picat în interiorul unei semnături...

— Rearden 🍯🦡 🦢 | îmbrățișează furculițele (@reardencode) 17 mai 2024

Deoarece scriptul bitcoin este strict un limbaj de verificare, fiecare opcode poate fi folosit înainte sau invers. Un script poate primi un hash și necesită o preimagine sau o preimagine și necesită un hash folosind OP_SHA256. Această perspectivă ne oferă primele două părți ale modului în care funcționează acordurile OP_CAT.

Dacă un script bitcoin ar putea avea acces la un hash al tranzacției pe care o verifică, ar putea solicita ca stiva de cheltuieli să furnizeze preimaginea hash, să fie împărțită în orice mod necesită scriptul și apoi să valideze orice parte anume a acelei imagini prealabile. Acesta este exact ceea ce este un legământ – validarea unei părți a tranzacției cheltuind niște bitcoin.

Este grozav, dar bitcoin nu are un opcode precum OP_TXHASH pentru a oferi acces scriptului la hash-ul tranzacției. Aici, profităm de ecuația de verificare a semnăturii BIP340 Schnorr pentru a solicita utilizatorului să furnizeze hash-ul. Dacă utilizatorul furnizează o valoare care va fi un hash de tranzacție valid dacă scriptul concatenează octetul 0x00 până la sfârșitul acestuia, acea valoare va fi, de asemenea, o parte a unei semnături BIP340 valide (cu anumiți alți parametri fixați) dacă scriptul concatenează octetul 0x01 la acesta.

Combinând aceste tehnici, OP_CAT poate verifica orice parte a tranzacției sale de cheltuieli care poate fi semnată și chiar să se uite înapoi la tranzacțiile-mamă în anumite moduri limitate. Cu un codecraft atent, se poate construi Purrfect Vaults, CatVM și multe altele.

Alte utilizări pentru CAT

Dar nu ar trebui. Construirea acestor lucruri cu OP_CAT duce la abominații dificil de întreținut. În schimb, ar trebui să folosim OP_CAT pentru ceea ce este bun și există multe: permite echivalentul OP_CHECKSEPARATESIG, verificarea dovezilor de includere Merkle, combinarea datelor pentru verificarea semnăturii cu OP_CHECKSIGFROMSTACK și multe altele.

Probleme cu CAT

Acum că știm ce face CAT, care este problema? De ce au spus oamenii (inclusiv eu) că este o fiară periculoasă? Folosind tehnica de introspecție descrisă mai sus, CAT permite două construcții specifice: escrows Hashrate și (se presupune) creatori de piață automati (AMM). Până de curând, ambele au fost considerate riscuri semnificative ale aducerii centralizării MEV la bitcoin.

Centralizarea MEV, MEVil și Miner

Termenul MEV (Miner Extractable Value) este puțin confuz. În cea mai simplă interpretare, ar include taxele de tranzacție, pe care, desigur, dorim să le plătească minerilor pentru a ajuta la asigurarea securității bitcoin mult timp în viitor. MEV este, în general, folosit pentru a însemna o valoare suplimentară pe care minerii o pot extrage din blocurile lor dincolo de taxele vizibile pe rețeaua de releu publică. Acest lucru ar putea veni sub formă de plăți în afara benzii, minerii care participă la contracte și reordonează tranzacțiile în moduri care să se favorizeze sau chiar furtul de bunuri și servicii de către mineri care exploatează blocuri care reorganizează și dublează o plată confirmată către un comerciant. Toate aceste forme de MEV pot fi considerate în general dăunătoare pentru participanții la rețea, deoarece minerii își folosesc poziția în rețea în beneficiul lor în detrimentul altor participanți la rețea. Cu toate acestea, MEV singur nu prezintă o problemă sistemică prin centralizarea minerilor, ci doar o problemă locală pentru participanții afectați în mod specific.

MEVil este un termen care este folosit uneori pentru MEV, care conduce la centralizarea minerilor – prefer termenul de centralizare MEV și îl voi folosi în continuare. Sunt necesare mai multe lucruri pentru a schimba MEV în centralizarea MEV:

  1. Trebuie să fie suficient de dificil de extras încât un generator de șabloane de bloc cu sursă deschisă să nu îl poată extrage în mod rezonabil

  2. Valoarea totală care poate fi extrasă trebuie să crească odată cu rata hash-ului bitcoin a unui miner

  3. Valoarea extractibilă trebuie să justifice costul extracției

Dacă toate aceste cerințe sunt îndeplinite, atunci doar un miner suficient de mare va avea stimulentul să înceapă extragerea MEV. Odată ce o vor face, vor putea depăși creșterea colegilor lor mai mici datorită veniturilor suplimentare extrase. Cu cât extragerea MEV este mai costisitoare (până în punctul în care nu merită pentru niciun miner), cu atât presiunea de centralizare pe care o creează este mai proastă.

Evitarea centralizării MEV atunci este (într-un anumit sens) simplă: asigurați-vă că orice oportunități pentru MEV există pe bitcoin sunt fie atât de ușor de extras încât toată lumea o face, fie costă mai mult decât valorează (fie pentru că sunt atât de mici, fie pentru că sunt atât de costisitoare).

Pentru mai multe informații, consultați postarea recentă a @TheBlueMatt.

Hashrate Escrows (născută Drivechains)

Cu mulți ani în urmă (înainte de Lightning Network sau de idei precum Ark, Timeout Trees, roll-ups, BitVM sau CatVM) sidechain-urile erau considerate soluția supremă de scalare pentru bitcoin. Ideea era simplă din punct de vedere conceptual: blocurile bitcoin trebuie să rămână limitate ca dimensiune pentru toate motivele obișnuite de descentralizare, dar putem atașa sidechain-uri la bitcoin și acestea pot avea blocuri mai rapide, blocuri mai mari, mai multe calcule sau orice altceva. În practică, însă, implementarea sidechain-urilor nu a fost atât de ușoară. Acordul final al Bitcoin este legat în mod fundamental de dovada muncii, un cost nefalsificabil pentru reordonarea tranzacțiilor, cum moștenește un sidechain asta? De asemenea, cum poate fi transferat bitcoin către și de la sidechain? Cea mai cunoscută propunere pentru a răspunde la aceste două întrebări se numește Drivechains (BIPs 300 și 301). Nu vă voi plictisi cu detaliile Drivechain-urilor, dar este suficient să spun că există doar două rezultate ale unor astfel de sisteme sidechain: fie sunt relativ neutilizate (și, prin urmare, inutile), fie sunt utilizate pe scară largă și devin de facto o dimensiune de bloc. creștere pentru bitcoin. O creștere de facto a dimensiunii blocului de acest fel este o formă de centralizare a MEV în care numai minerii mai mari vor putea participa în mod rentabil la oportunitățile suplimentare de venituri oferite de blocurile sidechain potențial mari și complexe.

Hashrate escrows, care pot fi construite cu OP_CAT, sunt o mică parte din propunerile Drivechains. Acesta este un sistem de restricționare a retragerilor din sidechain prin utilizarea unui contor a cărui valoare poate fi modificată doar de mineri, începe de la o valoare ridicată și trebuie să ajungă la zero înainte ca o retragere sidechain să poată fi procesată. Acesta se pretinde a fi un transfer „fără încredere” dintr-un sidechain, dar creează de fapt o federație de mineri cu control asupra tuturor bitcoinului deținut în sidechain.

De la dezvoltarea propunerilor Drivechains, a devenit (în detrimentul nostru) obișnuit să ne referim la orice propunere care poate fi folosită pentru a crea o retragere bazată pe un contor controlat de miner ca „Drivechains”. Sperăm că este clar în acest moment de ce această scurtătură neadecvată este inutilă – Drivechain-urile sunt fie lipsite de valoare, fie periculoase, dar escrows hashrate sunt doar o modalitate de a transfera controlul rezultatului unei tranzacții către federația implicită a minerilor.

Jetoane și AMM-uri

Jetoane

Din motive care nu vor fi niciodată complet clare pentru mine, oamenii iubesc un simbol bun (sau un simbol rău sau într-adevăr doar simboluri). Aproape de la începutul bitcoin s-a vorbit despre cum să se încorporeze alte jetoane în protocol, de la Colored Coins și Counterparty, la cele mai recente Taproot Assets și Runes. Toate aceste protocoale au un lucru în comun: necesită un index extern al tranzacțiilor cu bitcoin, care fie are cunoștințe despre date externe, fie prelucrează date din secvența tranzacțiilor bitcoin pentru a determina transformările token-urilor în cadrul protocolului. Punctul esențial pentru acest articol este că scripturile de blocare bitcoin nu sunt complet conștiente de existența token-urilor și chiar și nodurile bitcoin care validează tranzacțiile nu cunosc token-urile (adică chiar dacă un script de blocare bitcoin a avut acces deplin la setul complet Bitcoin UTXO , nu a putut descoperi starea niciunuia dintre aceste jetoane).

Creatori de piață automati (AMM)

Pe alte sisteme blockchain, este obișnuit ca contractele cunoscute sub numele de AMM-uri să fie folosite pentru a stabili (de exemplu) raportul dintre două jetoane prin cumpărarea și vânzarea la un preț fix. Regulile care pot fi codificate într-un AMM depășesc domeniul de aplicare al acestui articol. Este suficient să spunem că AMM-urile creează oportunități uriașe pentru MEV și, din cauza relațiilor private de schimb necesare pentru a maximiza rentabilitatea acelui MEV, centralizează și MEV. Acest lucru a fost adesea folosit ca argument împotriva construirii de scripturi bitcoin mai expresive - dorim cu adevărat să evităm expunerea rețelei bitcoin la capriciile centralizării MEV. Cu toate acestea, așa cum am descris mai sus, pur și simplu nu există o modalitate practică pentru scripturile bitcoin, oricât de expresive, de a evalua starea oricărui token, altul decât bitcoin. Scripturile Bitcoin nu pot localiza un sat rar. Ei nu pot găsi un echilibru rune. Ei nu pot identifica un activ Taproot.

Fără acces la orice informații despre dispoziția activelor non-bitcoin, întregul concept de AMM bazat pe script bitcoin încetează să mai aibă sens. Locațiile jetonelor pot fi atestate printr-o semnătură de la un oracol, dar atestările oracol nu fac un AMM. Ele pot fi folosite pentru a facilita tranzacțiile manuale specifice, dar nu un sistem automatizat durabil. Mai mult, un astfel de sistem bazat pe oracol ar putea fi construit astăzi fără modificări la bitcoin.

Concluzie

După cum puteți vedea, CAT nu este o fiară atât de înfricoșătoare. Nu este deloc o fiară prea mare. Nu are nici capacitate infinită, nici puteri magice. Este doar un mic opcode care poate fi de mare ajutor. Singurul lucru pe care probabil că vrem să îl evităm este să activăm OP_CAT fără o altă modalitate de a face introspecția tranzacției, cum ar fi OP_TXHASH, OP_TX sau ambele. Chiar și activarea acestuia cu LNHANCE este o îmbunătățire numai pentru OP_CAT, deoarece reduce dimensiunea și complexitatea scripturilor necesare pentru a realiza multe protocoale de introspecție OP_CAT.

Cred că în acest moment, „CAT introduce totul infinit” a fost redus la ~nimic.

Introduce o introspecție utilă într-un mod de rahat pe care nimeni nu ar trebui să-l folosească. Pentru a ajuta oamenii să nu-l folosească, ar trebui să activăm CAT împreună cu TXHASH sau similar.https://t.co/nvnxYn66Um https://t.co/1Ag5TwjuUw

— Rearden 🍯🦡 🦢 | îmbrățișează furculițele (@reardencode) 17 mai 2024

Aceasta este o postare pentru oaspeți de Brandon Black. Opiniile exprimate sunt în întregime proprii și nu reflectă neapărat cele ale BTC Inc sau Bitcoin Magazine.

Sursa: Bitcoin Magazine

Postarea OP_CAT și Nimicul Infinit a apărut mai întâi pe Crypto Breaking News.