Na przykład tokeny giełdowe, albo tokeny wyrażające udział w jakimś przedsięwzięciu swoją wartość utrzymają.
Krótkoterminowo tak. Długoterminowo? To zależy. Bo owszem, jest wiele powodów, dla których giełdy lubią mieć własne tokeny. Ale prawda jest też taka, że jeśli te giełdy dostaną w swoje ręce możliwość spięcia swoich własnych tokenów z Bitcoinem i to będzie tak silne połączenie, jak pomiędzy Lightning Network, a główną warstwą, to mogą się na to zgodzić.
Chodzi o to, że jeśli samo połączenie będzie wymagało na przykład jedynie podpisania swoich własnych Bitcoinów, to giełda może stwierdzić: w sumie czemu nie? Bo tak naprawdę, to jeśli masz własny token, to jego kurs może być bardzo różny. Ale jeśli zamiast tego pokażesz komuś: patrzcie, tutaj jest adres, na którym leży 1000 BTC i jest podpisany przez naszą giełdę, to już taka deklaracja wygląda znacznie poważniej. Zwłaszcza, że niektóre połączenia nie wymagają przesuwania monet, sam podpis jest w stanie udowodnić wiele.
Ograniczenie 1: System tylko dwustronny
Cała sieć Lightning Network jest "tylko dwustronna", bo mamy adresy 2-of-2 multisig. Dołożenie routingu rozwiązuje ten problem (i tworzy nowe, analogiczne do tych, które istnieją w LN).
ale jeszcze nie można tego uogólnić do kontekstu sidechain lub rollup
Można, jeśli mamy do czynienia z federacją, czyli sidechainem, w którym istnieją walidatorzy. Ogólnie rzecz biorąc, wszelkie systemy, w których są walidatorzy i które opierają się na Proof of Stake, mogłyby z łatwością wpiąć się do Bitcoina. Dobrym pytaniem jest: dlaczego tego nie robią? Bo nie ma technicznych przeszkód, żeby w systemie, gdzie jest na przykład 20 walidatorów, zrobić na przykład 11-of-20 multisig na Taproocie.
Oznacza to, że każda interakcja umowy inteligentnej między dwiema osobami musi być nową transakcją Bitcoinową.
Dokładnie w ten sam sposób każda zmiana stanu kanału w Lightning Network wymaga nowej transakcji off-chain. Piękno tego systemu polega na tym, że nie trzeba tych wszystkich transakcji wypychać na główny łańcuch. Co oznacza, że jeśli dwa węzły mają bezpośredni kanał, to mogą zrobić wszystko. Na przykład: jedna osoba może wykopywać DOGE, a druga płacić jej w millisatoshi za każdy share. Da się? Da się.
Rzeczywisty postęp nastąpi, gdy ktoś z zespołu badawczego stworzy istniejący język niskiego poziomu, który można bezpośrednio podłączyć do BitVM.
Pierwsze próby zbudowania takiego systemu istniały już od dawna. W prastarych czasach dyskutowało się na temat OP_EVAL, obecnie widziałem dyskusję na temat OP_FOLD. Najciekawszy wpis, który sobie przypominam, pojawił się w lutym 2022:
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-February/020021.htmlTo, że w ogóle można podzielić obliczenia między transakcjami (a może nawet adresami) jest szalone.
Wielu szaleńców robiło to od dawna. Jednym z przykładów szaleństwa w czystej postaci były próby społeczności BSV, która naiwnie ładowała ZK-proof w megabajtowych transakcjach, zamiast zrozumieć, że skoro ich Script ma aktywny OP_CAT, to mogą działać na prostych, 256-bitowych liczbach i klepnąć to przez zwyczajne OP_CHECKSIG, jedyne, czego potrzebują, to sprawdzić, czy R-value w sygnaturze jest takie, jakie ma być. Ale nie, oni wolą wypchnąć na łańcuch jedną transakcję o rozmiarze 10 MB, zamiast jednej transakcji z OP_CAT, która jeśli ważyłaby choćby 10 kB, to musiałaby być gigantyczna.
Podział obliczeń na wiele transakcji jest możliwy od dawna. Najprostszym dowodem tego jest federacja, gdzie obaj użytkownicy mogą podać swoje klucze publiczne i zablokować monety na adresie 2-of-2 multisig, oprócz tego dorzucając garść opkodów. Wtedy albo obie strony wykonają kontrakt, albo monety zostaną zablokowane. Żeby uniknąć blokady, można wykonać podejście a'la LN, czyli przygotować transakcje zamykające, zanim kontrakt zacznie być wykonywany. Ewentualnie można założyć timelocka, żeby ludziom się nie chciało czekać i wspólnie policzyli to, co trzeba, zanim timelock wygaśnie.
Najpierw pokaż, że to jest możliwe. Potem spraw, by to było bardziej wydajne. Teraz jesteśmy w fazie „zrobienia tego bardziej wydajnym”.
Ja tam wolę od razu skupić się na wydajności. Gdybym myślał inaczej, to mempool zajmowałby parę terabajtów. I tak dziwi mnie, że ludzie zrobili bramkę NAND aż tak późno, sam pamiętam, jak kiedyś robiłem takie rzeczy w regteście używając takiego zestawu czterech opkodów: OP_TRUE, OP_FALSE, OP_NOT, OP_EQUAL. Całość była w systemie czwórkowym, dwa bity na opkod i jazda. Wtedy jeszcze chciało mi się bawić w takie ezoteryczne języki, jak
Brainfork (do dzisiaj mam pliki tekstowe z rozszerzeniem *.bf oraz niedokończony "projekt BF", w którym chciałem pisać własny system operacyjny, oparty na "czterobitowej architekturze BF").
pierwszą implementację BitVM, która umożliwia dodawanie 32-bitowych liczb
Czekam, aż ludzie przestaną używać 32-bitowych kawałków i będą od razu ogarniać 256-bitowe fragmenty za pomocą OP_CHECKSIG. Przykładowo, jeśli chcemy coś liczyć na 256-bitowych liczbach, to możemy włożyć sygnaturę i zrobić "
OP_SWAP OP_CHECKSIG". Wtedy 257-bitowy klucz publiczny jest jedynym poprawnym rozwiązaniem.