Este deja arhicunoscut ca tranzactiile Bitcoin contin semnaturi criptografice prin care este foarte usor de demonstrat ca detinatorul unei chei publice doreste sa cheltuiasca Bitcoin prin acea tranzactie. Dar, contrar credintelor multor utilizatori, nu toata tranzactia este semnata. Partea care este de fapt semnata este semnalata intr-o tranzactie prin indicativul “sighash flag”.
Upgrade-ul Noinput Class
O noua clasa de “sighash flag”- uri este propusa de Christian Decker (dezvoltator de la Blockstream) si Xapo’s Towns. Acestia propun SIGHASH_NOINPUT, SIGHASH_ANYPREVOUT si SIGHASH_ANYPREVOUTANYSCRIPT. Toate aceste noi tipuri de flag-uri (steaguri) ofera o solutie similara. Ne vom referi la ele in acest articol drept “Noinput Class”.
Daca includem intr-o tranzactie una dintre metodele de semnare de mai sus, vom indica faptul ca iesirile (outputs – partea de “primire” a tranzactiei) cat si alte date din tranzactie vor fi semnate folosind cheia privata si nu intrarile (inputs- partea de “trimitere” a tranzactiei). Datorita faptului ca nu semnam “input”-urile, este posibil sa preluam tranzactia si sa o schimbam cu un “input” diferit si compatibil.
De obicei nu exista un alt input compatibil avand in vedere ca semnatura corespunde unei chei publice unice si acesta cheie publica detine controlul asupra unei cantitati unice de Bitcoin. Schimband input-ul, modificarile asupra tranzactiei o fac sa devina invalida.
Pe de alta parte, exista situatii in care inputul poate fi modificat. Tranzactiile Bitcoin pentru noul tip de protocol de plati LN (nr: Lightning Network), numit Eltoo, poate accepta modificarea “input”-ului (partea de intrare din tranactie) cu un altul compatibil. Acest lucru simplifica foarte mult crearea de canale de plata. Este de notat ca bug-urile si alte greseli nu vor duce catre pierderea fondurilor dintr-un canal iar userii nu vor fi nevoiti sa salveze atat de des datele pentru o eventuala recuperare a canalelor si respectiv a bitcoinului.
Ce este Lightning Network si cum functioneaza?
Pana acum, punctul negativ pentru folosirea Noinput Class a fost ca SIGHASH_NOINPUT poate fi nesigura daca nu se stie exact cum se foloseste. SIGHASH_ANYPREVOUT si SIGHASH_ANYPREVOUTANYSCRIP T rezolva aceasta problema (se rezolva si compatibilitatea Taproot – vezi prima parte) dar sunt putin mai complex de folosit.
Cu toate acestea, alti dezvoltatori au mentionat ca OP_CHECKTEMPLATEVERIFY sau chiar OP_cat (un cod OP care a fost exclus din cod dar care ar putea fi reintrodus odata cu Tapscript) ar putea oferi aceleasi beneficii ca aceste noi upgrade-uri propuse.
OP_CHECKTEMPLATEVERIFY (CTV) ne este cunoscut ca OP_SECURETHEBAG din variantele anterioare ale codului. OP_CHECKTEMPLATEVERIFY este un nou cod OP propus de Jeremy Rubin care are ca principal avantaj diminuarea taxelor platite minerilor si mentinerea operativitatii retelei in momentul in care survin foarte multe tranzactii in asteptare. Vom discuta mai pe larg in articolul viitor.
Tu ce parere ai despre Upgrade-ul Noinput Class, pastram sau modificam?