Skaluj z szybkością: wyjaśnienie sieci Bitcoin Lightning

Opublikowany: 2022-03-11

Bitcoin Lightning Network to niezależne rozwiązanie, które jest ogłaszane jako rozwiązanie wszystkich problemów, które powstrzymują Bitcoin od głównego nurtu. Twierdzi, że rozwiązuje ponury problem ze skalowaniem, dokonuje natychmiastowych transakcji, utrzymuje opłaty transakcyjne na niskim poziomie i usuwa transakcje z łańcucha bloków. W jaki sposób system niezależny od rdzenia Bitcoin może oferować te ulepszenia? Jak może naruszyć konwencjonalne zasady Bitcoina, oferując bezpieczne transakcje bez potwierdzeń? Czym jest sieć błyskawicy Bitcoin?

W tym artykule przyjrzymy się, czym naprawdę jest Bitcoin Lightning Network, w jaki sposób może zapewniać gwarancje, jakie zapewnia, oraz jaki jest jej obecny stan.

Uwaga: ten artykuł zakłada znajomość Bitcoina. Jeśli nie wiesz, jak działają kryptowaluty lub potrzebujesz przypomnienia, przeczytaj Cryptocurrency for Dummies: Bitcoin and Beyond.

Warunek wstępny: problem skalowania Bitcoina

Jeśli jesteś świadomy problemu ze skalowaniem Bitcoin, możesz pominąć tę sekcję, ale jeśli nie jesteś lub potrzebujesz odświeżenia, czytaj dalej.

Bitcoin ma problem ze skalowaniem. Bitcoin jest przeznaczony do przechowywania wszystkich transakcji w strukturze danych zwanej blokiem. Blok zawiera informacje o poprzednim bloku, różne dane o nagrodach za wydobycie, a większość bloku to tylko dane transakcyjne. Bloki są również ustalone na maksymalny rozmiar 1 MB. W tym ostatnim kawałku jest problem.

Ponieważ bloki mają rozmiar 1 MB, a blok jest tworzony co 10 minut, zakładając, że transakcje nie są SegWit (wkrótce), sieć może przetwarzać maksymalnie od 3,3 do 7 transakcji na sekundę. Jak na walutę zaprojektowaną do masowego użytku przez miliardy ludzi i ich maszyny, 7 transakcji na sekundę nie jest równorzędne. Z drugiej strony Visa twierdzi, że jest w stanie przetwarzać 24 000 transakcji na sekundę.

Gdy liczba transakcji zaczyna rosnąć, Twoja pojedyncza transakcja konkuruje ze sobą o uwzględnienie w ograniczonej przestrzeni bloku, a zatem prawdopodobieństwo włączenia Twojej transakcji do bloku zaczyna się zmniejszać. Ponieważ górnicy mogą arbitralnie decydować, które transakcje uwzględnić w bloku, w takich przypadkach jedynym sposobem na zachęcenie górników do uwzględnienia transakcji jest zwiększenie opłaty transakcyjnej. Jednak zaczyna to sprawiać, że transakcje są zbyt drogie – takie jak ta 192 bajtowa transakcja za 92,98 USD, gdzie opłata transakcyjna wynosiła 14,86 USD.

Jak więc „skalujemy” Bitcoina? Istnieją trzy główne szkoły myśli lub – jak lubię je nazywać – bitwy wielkich bitew bitcoinowych:

  • Zwiększanie rozmiaru bloku: 2X, 8X, …, ∞X
  • Mniejsze transakcje: SegWit i in.
  • Łańcuchy boczne: Bitcoin Lightning Network

Zwiększanie rozmiaru bloku Bitcoin

Ten jest dość prosty do zrozumienia: jeśli problemem jest limit 1 MB, zwiększ go! Debata na ten temat była zacięta i nadal trwa. Ostatecznie 1 sierpnia 2017 r. Bitcoin (BTC) został forkowany i narodził się Bitcoin Cash (BCH). Główna różnica między nimi polega na tym, że BCH ma 8 MB bloków. Dzięki temu bloki są w większości puste, a opłaty są bardzo niskie.

Jednak bloki o wielkości 8 MB oznaczają, że całkowity rozmiar łańcucha bloków BCH prawdopodobnie będzie rósł w znacznie szybszym tempie, co sprawia, że ​​koszty przechowywania będą znacznie wyższą barierą wejścia na scenę górniczą. Argumentem jest, że zmniejszyłoby to całkowitą liczbę górników, co również zabezpiecza blockchain, zmniejszając decentralizację i ogólne bezpieczeństwo sieci Bitcoin.

Inną krytyką większych bloków jest to, że nie rozwiązuje samego problemu; raczej tymczasowo łata problem. W przypadku większych bloków zawsze będzie maksymalny limit, a maksymalny limit będzie zawsze znacznie niższy niż docelowy limit, który staramy się osiągnąć: 24 000 transakcji na sekundę. Nawet przy większych blokach 8 MB BCH ma limit 61 transakcji na sekundę.

Mniejsze transakcje: oddzielony świadek

Inne rozwiązania wskazują, że obecny format transakcji nie jest najbardziej wydajny i mają na celu upakowanie większej liczby transakcji w tym samym bloku. Najważniejszym z nich jest Segregated Witness (SegWit), zaproponowany przez BIP 91 i aktywowany w bloku 481824 25 sierpnia 2017 r. SegWit jest teraz częścią Bitcoin, radujcie się!

Porównanie bloków Non-SegWit i SegWit
Porównanie bloków Non-SegWit i SegWit na podstawie ilustracji Davida A. Hardinga

SegWit pobiera dane podpisu z transakcji i przechowuje je w odrębnej strukturze niż blok transakcyjny, dzięki czemu poszczególne transakcje są mniejsze i lepiej wykorzystuje ograniczoną przestrzeń w każdym bloku. Ta struktura jest następnie opcjonalna podczas synchronizacji łańcucha bloków, co prowadzi do pominięcia zmniejszonego rozmiaru dysku.

Powoduje to również rozwiązanie problemu plastyczności transakcji, a transakcje, które wykorzystują tylko dane wyjściowe SegWit, nie są już podatne na ataki.

Bitcoin Lightning Network

Lightning Network to sieć drugiej warstwy, która przesyła podpisane, ale nierozgłaszane transakcje między rówieśnikami i opiera się na łańcuchu bloków Bitcoin tylko w celu ostatecznego rozliczenia środków. Oznacza to, że transakcje nie są w ogóle ograniczone do rozmiaru bloku, czasy potwierdzenia są nieistotne, a łańcuch bloków Bitcoin nie musi przechowywać każdej transakcji, która kiedykolwiek ma miejsce.

Kto stworzył Bitcoin Lightning Network? Został po raz pierwszy opisany w białej księdze autorstwa Josepha Poona i Thaddeusa Dryja, ale od tego czasu przekształcił się w wysiłek społeczności z osobami trzecimi, a nawet firmami przyczyniającymi się do specyfikacji i implementacji.

Więcej informacji później.

SegWit kontra zwiększony rozmiar bloku kontra Bitcoin Lightning Network

Który zatem jest najlepszy? Nie mam dowodów empirycznych, na których mogłabym oprzeć swoją odpowiedź, więc jest to opinia: Chociaż uważam, że lepsze wykorzystanie przestrzeni blokowej (a la SegWit) jest dobrą rzeczą, myślę, że zwiększenie rozmiaru bloku byłoby jak przesuwanie bramka do przyszłości. Gdyby użycie Bitcoina znacznie wzrosło, znaleźlibyśmy się na samym początku debaty o kolejnym zwiększeniu rozmiaru bloku.

Nie zgadzać się? Zostaw komentarz poniżej!

Mając to na uwadze, chociaż uważam, że alternatywna sieć rozliczeniowa, taka jak Bitcoin Lightning, jest wspaniałym pomysłem, czekam również, aby zobaczyć, jak to działa w prawdziwym świecie. W tej chwili nie jest w takim stanie, w jakim ja i mój ojciec moglibyśmy użyć.

Wyjaśnienie Bitcoin Lightning Network

Wspomniałem już, że Lightning Network jest siecią drugiej warstwy, która przesyła podpisane, ale nierozgłaszane transakcje między rówieśnikami i opiera się na blockchainie Bitcoin tylko w celu ostatecznego rozliczenia środków.

Przyjrzyjmy się, jak to działało w prawdziwym życiu.

Węzły i kanały błyskawic

Węzeł Lightning działa podobnie i inaczej niż węzeł Bitcoin, ponieważ działa w sposób sieciowy, weryfikuje transakcje i komunikuje się z innymi węzłami, ale robi rzeczy, których węzły Bitcoin historycznie nie robią: przechowuje fundusze, działa jako automatyczny pośrednik finansowy , aktywnie monitoruje „kanały” Lightning pod kątem złośliwego zachowania i reaguje defensywnie (jest to szczegółowo wyjaśnione później) itp.

Aby wykonać te funkcje, węzły potrzebują pieniędzy.

Uwaga: te przykłady początkowo zakładają, że wszyscy korzystają z węzła Bitcoin Lightning Network, który jest podłączony do Internetu 24 godziny na dobę, 7 dni w tygodniu, co oczywiście nie będzie miało miejsca. To założenie zostanie złamane w sekcji Lightning Wallet vs. Lightning Node.

Tworzenie kanału błyskawicy

Załóżmy, że ty i twój przyjaciel Bob macie związek, który obejmuje sporą ilość transakcji finansowych. Od czasu do czasu spotykacie się razem na lunchu lub oglądacie film. Czasami jednemu z was brakuje gotówki, a czasami drugiemu i zwykle kończycie się nawzajem Venmo.

Jednak będąc zwolennikami kryptowalut, oboje decydujecie się wypróbować Lightning i stworzyć nowy wspólny kanał, który finansujecie równo po połowie bitcoina (to dużo lunchów).

Ilustracja przedstawiająca dwa węzły tworzące kanał w sieci Bitcoin Lightning Network

Tworzenie nowego kanału Lightning jest jak tworzenie portfela bitcoin z wieloma podpisami, który wymaga obu podpisów do zatwierdzenia transakcji, ale z jedną różnicą; każdy z was otrzymuje podpisaną, ale jeszcze nie wyemitowaną „Transakcję zobowiązaniową”, zgodnie z białą księgą Lightning Network, która zwraca ci początkowe depozyty. W ten sposób, jeśli twoja przyjaźń przechodzi trudny okres lub któryś z was potrzebuje pieniędzy, możesz jednostronnie zamknąć kanał, transmitując tę ​​transakcję, a wszyscy otrzymają należne im kwoty.

Dokonywanie błyskawicznych transakcji z osobami, do których masz kanały

Powiedzmy, że pewnego dnia znowu wychodzisz na lunch i jesteś winien Bobowi równowartość 8000 satoshi (0,31 USD, kiedy to piszę). W tej chwili, jeśli użyjesz Bitcoina do rozliczenia tej kwoty, zapłacisz 0,10 USD i czekasz godzinę, co czyni to niewykonalnym.

Ilustracja przedstawiająca dwa węzły aktualizujące stan swojego kanału

Jednak dzięki Lightning możesz to zrobić za darmo, po prostu zastępując „Transakcję zobowiązaniową” nową transakcją, której możecie się trzymać. Tylko tym razem Bob ma 8000 satoshi więcej, a ty masz mniej. (Jeśli myślisz o oszukiwaniu poprzez rozgłaszanie starej transakcji w tym momencie, poczekaj do sekcji Zamykanie kanału .)

Możesz wyemitować transakcję i zamknąć kanał, jednak zamknięcie kanału pociągnęłoby za sobą opłaty transakcyjne, a ponieważ żadne z was nie potrzebuje natychmiastowej kwoty, możesz po prostu zatrzymać kanał i wykorzystać go do uregulowania przyszłych długów.

Dokonywanie błyskawicznych transakcji z ludźmi, do których nie masz kanałów

Powiedzmy, że pewnego dnia Bob zaprasza kolejną ze swoich przyjaciół, Alice, a po intensywnej godzinie jedzenia kanapek oboje jesteście dłużnikami Alice, ponieważ sklep zaakceptował tylko Coinye (nieistniejącą kryptowalutę porzuconą po pozwie Kanye Westa), co się stało mieć.

Ilustracja transakcji błyskawicy z wieloma przeskokami

Teraz, zakładając, że Bob ma otwarty kanał z Alicją, za pomocą Lightninga możesz również zapłacić Alicji przez Boba. Twój węzeł oblicza optymalną trasę między tobą a Alicją — w tym przypadku z Bobem jako pośrednikiem finansowym — a wszyscy pośrednicy mogą przekazywać pieniądze dalej, z niewielką opłatą, jeśli zechcą.

Zamykanie kanału: dwa dobre sposoby i zły sposób

Istnieją trzy sposoby na zamknięcie kanału Błyskawicy:

  1. Wspólnie: każda ze stron w kanale inicjuje zamknięcie kanału Bitcoin Lightning, a druga wyraża zgodę. Nie ma blokady czasowej, a pieniądze są gotowe do wydania, gdy tylko zatwierdzenie zostanie potwierdzone. To „najlepszy” sposób na zamknięcie kanału.
  2. Jednostronnie: każda ze stron na kanale może zamknąć kanał Bitcoin Lightning, gdy jedna ze stron tego sobie życzy, nawet jeśli druga strona nie wyraża na to zgody. Powoduje to blokadę czasową, w której druga strona może zakwestionować zamknięcie transakcji za pomocą transakcji „Naruszenie” (patrz scenariusz 3 poniżej), ale załóżmy, że tak się nie dzieje. Po wygaśnięciu blokady czasowej środki są bezpłatne. Jest to „akceptowalny” sposób zamknięcia kanału.
  3. Środek zaradczy w przypadku naruszenia: Ponieważ transakcje błyskawiczne są listą podpisanych transakcji ze znacznikiem czasu, w których podział środków jest różny, jedna ze stron może próbować oszukać (naruszyć zaufanie) poprzez jednostronne zamknięcie kanału starą transakcją, w której posiada więcej środków (patrz scenariusz 2). Skutkuje to blokadą czasową i w tym okresie poszkodowany może nie tylko odzyskać własne środki, ale także przesunąć całą pojemność kanału za pomocą transakcji „Breach Remedy”, jak opisano w białej księdze Bitcoin Lightning Network.

Węzeł Błyskawicy a portfel Błyskawicy

W powyższym przykładzie użyliśmy terminu „węzeł” Lightning, co skłoniłoby Cię do myślenia, że ​​będziesz musiał utrzymywać swój węzeł w trybie ciągłym i działać 24 godziny na dobę, 7 dni w tygodniu. I tak, miałbyś rację. Sieć Lightning Network została zaprojektowana tak, aby węzły były zawsze w trybie online, zapewniając, że sieć działa zbliżona do maksymalnej przepustowości. A jeśli nikt nie jest online, aby monitorować próbę oszustwa i to się powiedzie, kanał zamknie się podobnie jak zwykłe jednostronne zamknięcie, pozostawiając Cię bez środków.

Jednak w białej księdze Lightning Network opisano rozwiązanie tego problemu:

…należy okresowo monitorować blockchain, aby sprawdzić, czy kontrahent nie wyemitował unieważnionej Transakcji Zaangażowania, lub zlecić to stronie trzeciej. Stronę trzecią można delegować, przekazując transakcję naprawienia naruszenia wyłącznie tej stronie trzeciej. Można ich zachęcić do oglądania, jak blockchain transmituje taką transakcję w przypadku złośliwości kontrahenta, dając tym stronom trzecim pewną opłatę w wyniku. Ponieważ strona trzecia jest w stanie podjąć działania tylko wtedy, gdy kontrahent działa złośliwie, ta strona trzecia nie ma możliwości wymuszenia zamknięcia kanału.

Te strony trzecie są często nazywane wieżami obserwacyjnymi i powinny odciążyć użytkowników.

Stan sieci błyskawic

Bitcoin Lightning Network na dzień 27 marca 2019 r.:

  • Ma ponad 7,5 tys. węzłów
  • Ma prawie 40 tysięcy otwartych kanałów
  • Pojemność nieco ponad 1 tys. BTC

Rośnie w tempie:

  • 25 węzłów na godzinę
  • 304 kanały na godzinę

Istnieje wiele implementacji węzłów Lightning Network, nawet portfele Eclair Lightning w Sklepie Play. Wciąż jest eksperymentalny, brakuje mu języka polskiego i ważnej cechy otrzymywania funduszy, ale moim zdaniem, choć ekosystem jest mały, zdrowo się rozwija.

Specyfikacje i implementacje

Specyfikacja Bitcoin Lightning Network ma status Request for Comments (RFC) i jest zbudowana z serii dokumentów o nazwie Basis of Lightning Technology (BOLTS). BOLTS stale się zmienia od tej publikacji i mile widziany wkład.

Istnieje również kilka implementacji węzłów Lightning Network zgodnych z BOLT:

  • LND: skrót od Lightning Network Daemon, jest to implementacja oparta głównie na Go.
  • Eclair: implementacja oparta głównie na Scali.
  • C-lightning: implementacja oparta głównie na C.

Więcej zasobów można znaleźć w podsumowaniu tego artykułu.

Zalety i krytyka sieci oświetleniowej

Co więc możemy osiągnąć dzięki Lightning Network?

  • Prawdziwe mikrotransakcje (ułamki centów)
  • Najniższe możliwe opłaty (ułamki centów)
  • Pewien stopień prywatności (brak rekordów blockchain)

Jednak, jak powiedziałem wcześniej, istnieje wiele krytyki sieci Lightning, niektóre z nich są ważne i stanowią nierozwiązane wyzwania, przed którymi stoi Lightning:

  • Routing i centralizacja: Ponieważ Lightning Network podlega ciągłym zmianom, a stany kanałów zmieniają się, otwierają i zamykają każdego dnia, a istnieje scentralizowany magazyn historii, do którego można się odwołać, trasy płatności muszą być obliczane od nowa za każdym razem. Jest to świetne, gdy sieć jest mała, ale kiedy staje się wystarczająco duża, twój mały węzeł działający na małym sprzęcie może po prostu nie mieć mocy obliczeniowej do obliczenia trasy. Rozwiązaniem tego problemu może być scentralizowany superwęzeł z zaawansowaną wiedzą, którą można przeszukiwać. Jest to opisane bardziej szczegółowo tutaj.
  • Za dużo pożyczania: najlepiej opisano w tym poście, który skłonił nawet Vitalika Buterina, współzałożyciela Ethereum, do wrzucenia się. Zasadniczo oznacza to, że ponieważ łańcuch 10 przeskoków, aby zapłacić 10 USD, wymaga, aby każdy zapłacił 10 USD do przodu, w końcu przeniesiesz 100 $ w funduszach. W pewnym momencie przenoszenie dużych ilości staje się niemożliwe. To, czy jest to prawdą, czy nie w prawdziwym świecie, nie zostało jeszcze ustalone, ale mimo to jest to przekonujący argument.

Czy przegapiłem jakieś uwagi krytyczne? Daj mi znać w komentarzach poniżej.

Dalsze lektury i zasoby

Mam nadzieję, że w końcu zrozumiesz, czym naprawdę jest Lightning Network. Pod tym wszystkim kryje się tylko system przesyłania wiadomości oparty na wymianie tokenów kryptograficznych. Nie jest jeszcze doskonały ani powszechnie używany, ale to nie znaczy, że nie jest imponującym dziełem inżynierii.

Polecam przeczytanie oryginalnej białej księgi Bitcoin Lightning Network. Mógłbym również polecić listę dalszych lektur i aplikacji, książek i artykułów, ale użytkownik GitHub Ben Congdon już to zrobił, więc polecam sprawdzenie bcongdon/awesome-lightning-network . Dzięki Ben! Jako programista Bitcoin jesteś zobowiązany do przeczytania jak najwięcej o tej nowej technologii.

Jeśli to wszystko było za dużo informacji, zakończmy to zabawną nutą. Oto zabawne wideo, w którym rzekomo Satoshi Craig Wright próbuje opowiedzieć o starych dobrych czasach bitcoina.