Warstwa zerowa, czyli sidechainy budowane do góry nogami

Wygadany
Awatar użytkownika
Posty: 593
Rejestracja: 8 lutego 2020
Reputacja: 1114
Reputacja postu: 
5
Napiwki za post: 0 BTC
Lokalizacja: 7-bit secp256k1

Warstwa zerowa, czyli sidechainy budowane do góry nogami

Postautor: garlonicon » wtorek, 26 lipca 2022, 06:31

Ludzie narzekają na BTC i na to, jak ta moneta wygląda i jak działa. Narzekają na zbyt małe bloki, na zbyt długi czas pomiędzy blokami, mogą narzekać na programistów Core, a także na miliony innych rzeczy. Jednym z pomysłów na rozwiązanie tego typu problemów są sidechainy, na przykład opisane w ten sposób: https://www.truthcoin.info/blog/sc-vision/

Problem z sidechainami jest taki, że na przykład BIP-300 albo BIP-301, to są soft-forki. Oznacza to tyle, że społeczność BTC musiałaby się zgodzić na wprowadzenie takich rzeczy, można je odrzucić, po prostu i zwyczajnie nie aktualizując softu i nie instalując nowszej wersji. Jeśli większość mocy obliczeniowej byłaby przeciwko, to ciężko byłoby przepchnąć coś takiego. Powstałby kolejny, niepotrzebny podział, gdyby ktoś się uparł na wprowadzenie takich zmian, bez uzyskania konsensusu.

To nas prowadzi do interesującego pytania: jeśli sidechainy są dobre, to dlaczego Bitcoin nie jest sam w sobie sidechainem? Otóż okazuje się, że idąc tym tokiem rozumowania, dochodzimy do koncepcji, którą ja nazywam "warstwą zerową". Wynika to z tego, że Bitcoin jako łańcuch jest uznawany za warstwę pierwszą, podobnie zresztą postępuje sporo altcoinów, które nie mają nad sobą żadnego innego łańcucha i nie są wpięte nigdzie indziej. W takim kontekście sidechainy zwykle stanowią warstwę drugą, natomiast Lightning Network to taka "warstwa półtora", bo nie jest wystarczająco samodzielna, aby mogła stanowić warstwę drugą w ścisłym znaczeniu tego słowa (na przykład, nie można przesłać monet komuś bezpośrednio, jeśli nie poinformujemy o tym fakcie warstwy głównej, tworząc odpowiedni kanał).

Zwykle ludzie myślą o sidechainach w kontekście warstwy drugiej lub niższej, to znaczy: myślą o zmianie warstwy pierwszej, żeby umożliwić wprowadzenie warstwy drugiej. Koncepcja warstwy zerowej zakłada odwrotne podejście: należy napisać taki kod, który umożliwiłby wciągnięcie istniejącego łańcucha jako sidechain do tego, co powstanie. W ten sposób, warstwa niższa nie jest w stanie tego w żaden sposób zablokować. Żeby to zatrzymać, należałoby zepsuć wiele innych rzeczy, na przykład uniemożliwić ludziom przesyłanie monet tam, gdzie chcą, ewentualnie zabronić podpisywania im takich wiadomości, jakich chcą. Dlatego ten pomysł jest ekstremalnie trudny do ocenzurowania.

Z technicznego punktu widzenia, taki łańcuch zawierałby ciąg nagłówków bloków, które pasowałyby do podanego algorytmu, na przykład SHA-256d. Co więcej, nawet Script zawiera opkod OP_HASH256, więc dałoby się to egzekwować na poziomie Scriptu, jeśli byłaby taka potrzeba. Ponieważ jednak warstwa niższa może być dowolnie prosta, nawet łańcuch oparty tylko na P2PK dałoby się wciągnąć pod spód.

Na warstwie zerowej, transakcje zawierałyby nagłówki bloków. Najprostszy możliwy model może zakładać, że po prostu śledzimy same nagłówki i że każdy może zajrzeć do środka, używając czegoś w rodzaju dowodów SPV:

hash bloku -> nagłówek bloku -> merkle root -> merkle proof -> ... -> merkle proof -> hash transakcji -> dane transakcji -> wyjście transakcji
(32 bajty)    (80 bajtów)       (32 bajty)     (64 bajty)             (64 bajty)      (32 bajty)         (N bajtów)         (N bajtów)

W ten sposób, warstwa górna może się opierać na dowolnym modelu. Może ustalić swoją podaż tak, aby wszystkie kwoty były w przedziale [0;100] i stanowiły "procent posiadanych monet". Może aktywować dowolne zmiany z dowolnych łańcuchów. Wszystko zależy od twórcy warstwy górnej, natomiast warstwa dolna jest jedynie śledzona. Docelowo, jeśli warstwa górna stałaby się lepsza, ludzie mogliby się całkowicie tam przerzucić. Nawet nie trzeba palić monet, wystarczy je podpisać we właściwy sposób, aby w razie potrzeby był możliwy powrót do warstwy dolnej, gdyby jednak warstwa górna zawiodła.

Co więcej, na warstwie zerowej cała zabawa się nie kończy: można iść do warstwy minus pierwszej, minus drugiej, i tak dalej, kompresując dane coraz bardziej i zostawiając problem ich przechowywania warstwom niższym oraz jej użytkownikom.

Wygadany
Awatar użytkownika
Posty: 593
Rejestracja: 8 lutego 2020
Reputacja: 1114
Reputacja postu: 
0
Napiwki za post: 0 BTC
Lokalizacja: 7-bit secp256k1

Warstwa zerowa, czyli sidechainy budowane do góry nogami

Postautor: garlonicon » wtorek, 26 lipca 2022, 18:29

Inaczej mówiąc: który token byłby 'twarzą' takiego projektu.
Ten, do którego pójdą użytkownicy, podpisując odpowiednie transakcje.
Czy w przypadku istnienia warstwy 0 - łańcuchy warstwy pierwszej nie ulegają marginalizacji.
Konkurencja jest potrzebna, większa decentralizacja również. Zarówno jeśli chodzi o kopanie, jak i o same programy. Poza tym, to jest właśnie ten problem bizantyjskich generałów, który Bitcoin rozwiązuje: masz na przykład trzech generałów, którzy wydają różne rozkazy. Wtedy hashrate decyduje. Jeśli większość mocy obliczeniowej jest w rękach atakujących, to taki system nie jest odporny na ataki i wtedy trzeba na przykład śledzić najsilniejszy łańcuch i przyznawać proporcjonalnie mniej monet uczciwym węzłom. Inaczej to wygląda na udawanie, że ataki nie istnieją, co jest słabe.
Wątpie, żeby bitcoinowi maksymaliści na to poszli
Właśnie o to chodzi, że jeśli to nie jest ani hard-fork, ani soft-fork, to zależy tylko od użytkowników. To kwestia napisania odpowiedniego softu (co też nie jest trywialne, no ale jeśli coś nie wymaga dotykania konsensusu, to nie trzeba nikogo pytać o zgodę).

Wróć do „Bitcoin”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 38 gości