Bitcoin UTxO Wyjaśnione: Unspent Transaction Outputs

Wszystko, co musisz wiedzieć o modelu UTxO Bitcoina i czym dokładnie są tzw. Unspent Transaction Outputs.
bitcoin

W tradycyjnych finansach banki stosują model kont, w którym salda użytkowników są po prostu zwiększane, gdy otrzymują płatność i zmniejszane, gdy dokonują płatności.

Wiele kryptowalut, takich jak Bitcoin, nie wykorzystuje takiego modelu konta do śledzenia i rejestrowania transakcji użytkowników, ale raczej tak zwany model UTxO.

Czym Jest UTxO?

Termin UTxO to skrót od Unspent Transaction Output, czyli wydawalnej jednostki Bitcoinów, którą można porównać do pojedynczego papierowego banknotu lub monety znanej z tradycyjnej gotówki.

W przeciwieństwie do gotówki, Bitcoin UTxO może pomieścić dowolną ilość Bitcoinów, np. 0.0015 lub 21.21 BTC, i nie ma stałych nominałów znanych z tradycyjnych papierowych banknotów i monet.

Oznacza to, że użytkownicy Bitcoina posiadają w rzeczywistości wiele różnych UTxO, które razem składają się na ich całkowite saldo Bitcoina, podobnie jak wszystkie papierowe banknoty i monety razem składają się na kwotę pieniędzy, którą masz w portfelu.

W związku z tym w sieci Bitcoin nie ma kont, które rejestrowałyby liczbę Bitcoinów posiadanych przez poszczególnych użytkowników. Zamiast tego, całkowite saldo Bitcoin użytkownika wyświetlane przez jego portfel kryptowalutowy jest określane przez sumę wszystkich jego Bitcoin UTxO.

Jak Powstaje UTxO?

Jak sugeruje nazwa Unspent Transaction Outputs, UTxO są tworzone jako rezultat transakcji na blockchainie.

Użytkownik, który wysyła ci Bitcoiny, wydaje jedno lub więcej swoich UTxO, aby stworzyć jedno lub więcej nowych UTxO dla ciebie jako wynik swojej transakcji. Nadawca może również stworzyć UTxO dla siebie, aby odzyskać pozostałą kwotę bitcoinów, która nie została wykorzystana w jego transakcji.

Bitcoin UTxO w Transakcji
Bitcoin UTxO w Transakcji

UTxO Bitcoin nigdy nie są zatem przekazywane bezpośrednio, ale są najpierw zużywane, a następnie tworzone: gdybyś na przykład wysłał wszystkie swoje Bitcoiny do siebie 10 razy, twoje aktywa byłyby w innym UTxO Bitcoin po każdej z tych dziesięciu transakcji.

Po tym, jak UTxO zostaną wydane, ponieważ ich właściciele wysłali bitcoiny, stają się one po prostu Spent Transaction Outputs (STxO), które są pustymi UTxO bez wartości bitcoinów.

Bitcoin nie usuwa jednak wydanych UTxO, dzięki czemu wszystkie transakcje są naprawdę osadzone w kamieniu i pozostają na zawsze identyfikowalne.

W ten sposób Bitcoiny każdego UTxO można prześledzić wstecz do jego całkowitego pochodzenia, gdzie został pierwotnie wypłacony górnikowi Bitcoin jako nagroda za wydobycie.

Kontrola dostępu

Aby móc wydawać UTxO, nadawca musi oczywiście w jakiś sposób udowodnić sieci blockchain, że naprawdę jest właścicielem tych UTxO. W przeciwieństwie do banków, nie można jednak polegać na swojej prawdziwej tożsamości na pseodonimowych blockchainach, ponieważ nasza tożsamość w blockchainie składa się tylko z liczb i cyfr.

To tutaj właśnie kryptografia asymetryczna składająca się z kluczy prywatnych i publicznych wchodzi do gry.

Kiedy otrzymujesz od kogoś Bitcoiny, nadawca kryptograficznie blokuje UTxO utworzone dla ciebie za pomocą twojego publicznego klucza Bitcoin lub adresu odbiorczego utworzonego na jego podstawie, tak abyś tylko ty mógł wydawać te UTxO za pomocą swojego prywatnego klucza.

Jeśli chcesz odblokować i wydać swoje UTxO w przyszłości, musisz dostarczyć podpis cyfrowy do sieci Bitcoin, który automatycznie utworzy twój portfel z twoim kluczem prywatnym, a tym samym udowodni, że jesteś prawdziwym właścicielem tych Bitcoinów.

Bitcoin UTxO: Praktyczne Przykłady

Posiadanie UTxO o wartości 100 Bitcoinów jest podobne do posiadania banknotu o wartości 100 euro: jeśli chcesz kupić coś za 5 euro, ale posiadasz tylko banknot o wartości 100 euro, zapłaciłbyś swojemu odbiorcy 100 euro i otrzymał 95 euro reszty.

W przypadku Bitcoina, jeśli chcesz zapłacić komuś 5 Bitcoinów, ale masz tylko UTxO ze 100 Bitcoinami, wydasz to UTxO ze 100 Bitcoinami, aby stworzyć nowe UTxO z 5 Bitcoinami dla odbiorcy i nowe UTxO z 95 Bitcoinami dla samego siebie.

Ten proces wydawania istniejących UTxO w celu stworzenia nowych UTxO nazywany jest transakcją Bitcoin.

💡

Nie możesz wydać ułamka UTxO, tak jak nie możesz przedrzeć banknotu 10 euro na pół, aby zapłacić komuś 5 euro. W związku z tym transakcje bitcoinowe w przeglądarce bitcoin mogą mieć dwóch odbiorców, nawet jeśli wysyłasz bitcoiny tylko do jednej osoby. W takim przypadku to ty jesteś drugim odbiorcą swojej własnej transakcji, ponieważ wypłacasz pozostałą kwotę jako resztę.

Posiadanie UTxO o wartości 2 Bitcoinów i UTxO o wartości 0.5 Bitcoina jest porównywalne do posiadania monety o wartości 2 € i 0,5 €. Gdybyś chciał wysłać komuś 2.5 Bitcoina, po prostu połączyłbyś UTxO o wartości 2 Bitcoinów i UTxO o wartości 0.5 Bitcoina, aby utworzyć nowe UTxO o wartości 2.5 Bitcoina dla odbiorcy.

UTxO są więc jak papierowe banknoty i monety w prawdziwym portfelu. Można je wydawać niezależnie lub łączyć z innymi UTxO, aby płacić wyższe kwoty.

Zalety UTxO

Trzy największe zalety modelu UTxO to łatwiejsza weryfikowalność, wyższa skalowalność i prywatność środków użytkowników na publicznym blockchainie.

Weryfikowalność

UTxO tworzą przejrzysty "łańcuch wartości", w którym każde nowo stworzone UTxO jest powiązane z transakcją, która je stworzyła.

Ułatwia to śledzenie Bitcoinów każdego użytkownika z powrotem do ich dokładnego pochodzenia oraz weryfikację, że środki są ważne i zgodne z zasadami sieci Bitcoin.

Jest to przeciwieństwo modelu konta: aby sprawdzić środki użytkownika na blockchainach z modelem konta (ang. account model), takim jak Ethereum, cały blockchain musi zostać przeszukany od początku do końca pod kątem możliwych transakcji, ponieważ nie istnieją połączone UTxO.

Z perspektywy informatyki model UTxO łączy przepływy środków w formie listy powiązanej, która jest łatwa do przeglądania. Natomiast w modelu kontowym przepływy środków są uporządkowane chronologicznie w blockchainie, podobnie do posortowanej tablicy.

Skalowalność

Ponieważ UTxO tworzą niezależny łańcuch wartości indywidualnych funduszy, transakcje na blockchainach opartych na UTxO, takich jak Bitcoin, są wysoce enkapsulowane, ponieważ nigdy nie zmieniają całych kont ani globalnych stanów całego łańcucha bloków.

Dzięki temu wysyłanie i odbieranie bitcoinów jest tak proste, jak wydawanie UTxO i tworzenie nowego. Weryfikacja takiej transakcji wymaga jedynie kilku łatwych do przeprowadzenia kontroli kryptograficznych dostarczonych podpisów cyfrowych.

Z drugiej strony, transakcje na blockchainach opartych na kontach, takich jak Ethereum, wymagają złożonych kontroli i aktualizacji globalnych stanów kont, z potencjalnymi konfliktami między różnymi transakcjami i wieloma różnymi przypadkami brzegowymi, które zwiększają zapotrzebowanie obliczeń.

Teoretycznie oznacza to, że blockchainy oparte na UTxO przenoszą mniejsze obciążenie obliczeniowe, dzięki czemu są bardziej wydajne i łatwiejsze dla użytkowników do uruchomienia pełnego węzła.

Prywatność

Model UTxO Bitcoina zwiększa również prywatność całej sieci Bitcoin.

Dzieje się tak, ponieważ UTxO jest powiązane tylko z jednym adresem odbiorcy, a nie z całym kontem. A ponieważ użytkownicy Bitcoin mogą generować dowolną liczbę adresów odbiorcy, mogą otrzymywać każdy pojedynczy Bitcoin UTxO z nowo wygenerowanym adresem.

Na przykład, jeśli otrzymałeś Bitcoin 100 razy ze 100 różnymi adresami odbiorcy wygenerowanymi przez twój portfel Bitcoin, wszystkie twoje 100 różnych UTxO Bitcoina nie byłyby w żaden sposób publicznie powiązane. Nikt poza tobą nie wiedziałby, że twój klucz prywatny daje ci dostęp do wszystkich tych 100 indywidualnych UTxO Bitcoina.

Stworzyłoby to iluzję, że te 100 UTxO są w rzeczywistości własnością 100 różnych osób, pozwalając ci ukryć swoje majątki przed siecią, dopóki nie połączysz tych UTxO w celu stworzenia większych płatności Bitcoin.

Tylko wtedy, gdy używasz kilku swoich UTxO w jednej i tej samej transakcji, ujawniasz się jako właściciel wszystkich tych UTxO. Z tego powodu zwolennicy prywatności często rezygnują z niewielkich kwot Bitcoin UTxO, aby uniknąć powiązania przepływów pieniężnych.

Gdyby Bitcoin korzystał z modelu konta, takiego jak banki lub kryptowaluta Ethereum, wszystkie transakcje Bitcoin byłyby powiązane z jednym, unikalnym kontem, dzięki czemu każdy w sieci mógłby bardzo łatwo zobaczyć całą twoją historię transakcji, a tym samym twoje całkowite saldo.

Jakie Blockchainy stosują Model UTxO?

Podczas gdy Bitcoin był pierwszą kryptowalutą, która zastosowała model UTxO, wiele innych blockchainów przyjęło to podejście.

Niektóre znane kryptowaluty wykorzystujące model UTxO to Litecoin (LTC), Cardano (ADA), Dash (DASH), Tezos (XTZ) i ZCash (ZEC).

Aby umożliwić bardziej skomplikowane transakcje za pomocą inteligentnych kontraktów, kryptowaluty takie jak Cardano wykorzystują rozszerzony model UTxO - eUTxO - który sprawia, że UTxO są programowalne i bardziej wszechstronne.