Niedawno doszło do małej sprzeczki pomiędzy frakcjami Core i Unlimited społeczności Bitcoin, sprzeczki, która stanowi być może pięćdziesiątą debatę na ten sam temat, ale mimo to jest interesująca ze względu na to, jak podkreśla bardzo subtelny punkt filozoficzny na temat tego, jak blockchainy praca.
ViaBTC, pula wydobywcza faworyzująca Unlimited, podsumowałem „hashpower to prawo” – częsty temat rozmów strony Unlimited, która uważa, że górnicy odgrywają i powinni odgrywać bardzo dużą rolę w zarządzaniu Bitcoinem, a typowym argumentem na to jest to, że górnicy są jedyną kategorią użytkowników, która ma dużą i niepłynną motywację finansową, która przyczyniła się do sukcesu Bitcoina. Greg Maxwell (od strony Core) odpowiedział: że „bezpieczeństwo Bitcoina działa właśnie dlatego, że moc mieszania NIE jest prawem”.
Podstawowym argumentem jest to, że górnicy odgrywają jedynie ograniczoną rolę w systemie Bitcoin, aby zabezpieczyć kolejność transakcji i NIE powinni mieć uprawnień do ustalania czegokolwiek innego, w tym limitów rozmiaru bloku i innych zasad ważności bloku. Ograniczenia te są egzekwowane przez pełne węzły obsługiwane przez użytkowników – jeśli górnicy zaczną produkować bloki zgodnie z zestawem reguł innych niż zasady wymuszane przez węzły użytkowników, wówczas węzły użytkowników po prostu odrzucą bloki, niezależnie od tego, czy będzie to 10%, czy 60 % lub 99% mocy obliczeniowej stoi za nimi. Na to Unlimited często odpowiada w stylu: „jeśli 90% mocy mieszającej znajduje się za nowym łańcuchem, który zwiększa limit bloków, a stary łańcuch z mocą mieszającą 10% jest teraz dziesięciokrotnie wolniejszy przez pięć miesięcy, aż do ponownego dostosowania poziomu trudności, czy zrobiłbyś to? naprawdę nie zaktualizowałeś swojego klienta, aby zaakceptował nowy łańcuch?”
Wiele osób często argumentować przed wykorzystanie publicznych łańcuchów bloków w zastosowaniach obejmujących aktywa ze świata rzeczywistego lub cokolwiek, co wiąże się z ryzykiem kontrahenta. Krytyka jest albo całkowita, mówiąc, że nie ma sensu wdrażać takich przypadków użycia w publicznych blockchainach, albo częściowa, twierdząc, że chociaż przechowywanie może przynosić korzyści dane w publicznym łańcuchu, logika biznesowa należy wykonać poza łańcuchem.
Zwykle używanym argumentem jest to, że w takich aplikacjach punkty zaufania już istnieją – istnieje ktoś, kto jest właścicielem zasobów fizycznych, na których opierają się aktywa, do których istnieją uprawnienia w łańcuchu, i że ktoś zawsze może zdecydować się na ucieczkę z aktywami lub być zmuszonym do zamrożenia je przez rząd lub bank, a zatem zarządzanie cyfrowymi reprezentacjami tych aktywów na blockchainie przypomina płacenie za wzmocnione stalowe drzwi do własnego domu, gdy okno jest otwarte. Zamiast tego takie systemy powinny wykorzystywać łańcuchy prywatne lub nawet tradycyjne rozwiązania serwerowe, być może dodając fragmenty kryptografii w celu poprawy możliwości kontroli, a tym samym oszczędzając na nieefektywności i kosztach umieszczania wszystkiego na blockchainie.
Oba powyższe argumenty są błędne w czystej postaci i są błędne w podobny sposób. Chociaż tak jest teoretycznie możliwe dla górników, aby przenieśli 99% swojej mocy obliczeniowej do łańcucha z nowymi zasadami (aby dać przykład, gdzie jest to niekontrowersyjnie złe, załóżmy, że zwiększają nagrodę za blok), a nawet obóz spawnowy stary łańcuch, aby uczynić go trwale bezużytecznym, a teoretycznie jest również możliwe, że scentralizowany zarządzający walutą zabezpieczoną aktywami zaprzestanie honorowania jednego tokena cyfrowego i stworzy nowy token cyfrowy z tymi samymi saldami co stary token, z wyjątkiem jednego konkretnego konta saldo zredukowane do zera i w praktyce zacznij honorować nowy token obie te rzeczy są dość trudne do zrobienia.
W pierwszym przypadku użytkownicy będą musieli zdać sobie sprawę, że coś jest nie tak z istniejącym łańcuchem, zgodzić się, że powinni udać się do nowego łańcucha, w którym obecnie wydobywają górnicy, i pobrać oprogramowanie akceptujące nowe zasady. W drugim przypadku wszyscy klienci i aplikacje zależne od oryginalnego tokena cyfrowego ulegną awarii, użytkownicy będą musieli zaktualizować swoich klientów, aby przeszli na nowy token cyfrowy, a inteligentne kontrakty nie będą mogły spojrzeć na świat zewnętrzny i sprawdzić, czy działają konieczność aktualizacji całkowicie się zepsuje. W środku tego wszystkiego przeciwnicy zmiany mogą stworzyć kampanię strachu, niepewności i wątpliwości, próbując przekonać ludzi, że może w ogóle nie powinni aktualizować swoich klientów lub aktualizować ich do niektórych trzeci zbiór zasad (np. zmiana dowodu pracy), co jeszcze bardziej utrudnia wdrożenie zmiany.
Można więc powiedzieć, że w obu przypadkach, choć teoretycznie istnieją strony scentralizowane lub quasi-scentralizowane, które mogłyby wymusić przejście ze stanu A do stanu B, gdzie stan B jest nieprzyjemny dla użytkowników, ale lepszy od stron scentralizowanych, wymaga to przełamanie trudnego problemu z koordynacją. Problemy z koordynacją są wszędzie w społeczeństwie i często są czymś złym – choć dla większości ludzi byłoby lepiej, gdyby język angielski pozbył się swojego wysoce złożonego i nieregularnego systemu pisowni i stworzył system fonetyczny lub gdyby Stany Zjednoczone przeszły na system metryczny, lub gdybyśmy mogli natychmiast w przypadku recesji obniżyć wszystkie ceny i płace o dziesięć procentw praktyce wymaga to jednoczesnej zgody wszystkich na zmianę, co często jest bardzo, bardzo trudne.
W przypadku aplikacji typu blockchain robimy jednak coś innego: wykorzystujemy problemy z koordynacją na naszą korzyść, wykorzystując tarcia, jakie tworzą problemy z koordynacją, jako zabezpieczenie przed nadużyciami ze strony scentralizowanych podmiotów. Możemy zbudować systemy posiadające właściwość X i możemy zagwarantować, że zachowają one właściwość X w wysokim stopniu, ponieważ zmiana reguł z X na nie-X wymagałaby zgody całej grupy ludzi na jednoczesną aktualizację oprogramowania . Nawet jeśli istnieje aktor, który mógłby wymusić zmianę, byłoby to trudne. Jest to rodzaj bezpieczeństwa, który zyskujesz dzięki walidacji reguł konsensusu blockchain po stronie klienta.
Należy pamiętać, że ten rodzaj bezpieczeństwa opiera się w szczególności na decentralizacji użytkowników. Nawet jeśli na świecie jest tylko jeden górnik, nadal istnieje różnica pomiędzy kryptowalutą wydobywaną przez tego górnika a scentralizowanym systemem przypominającym PayPal. W tym drugim przypadku operator może dowolnie zmieniać zasady, zamrozić komuś pieniądze, oferować złą obsługę, podnosić opłaty lub robić całe mnóstwo innych rzeczy, a problemy z koordynacją są na korzyść operatora, ponieważ takie systemy znaczne efekty sieciowe, w związku z czym bardzo wielu użytkowników musiałoby jednocześnie zgodzić się na przejście na lepszy system. W pierwszym przypadku weryfikacja po stronie klienta oznacza, że wiele prób oszustwa, w które górnik mógłby chcieć się zaangażować, jest domyślnie odrzucanych, a problem z koordynacją działa teraz na korzyść użytkowników.
Zauważ, że powyższe argumenty NIE, przez nich samych, sugerują, że to zły pomysł, aby górnicy byli głównymi podmiotami koordynującymi i decydującymi o wielkości bloku (lub, w przypadku Ethereum, o limicie gazu). Równie dobrze może być tak, że w konkretnym przypadku wielkości bloku/limitu gazu„rządy przez skoordynowanych górników z dostosowanymi zachętami” to optymalne podejście przy podejmowaniu decyzji w sprawie tego jednego konkretnego parametru polityki, być może dlatego, że ryzyko nadużycia władzy przez górników jest niższe niż ryzyko, że dowolny wybrany twardy limit okaże się całkowicie nieodpowiedni do warunków rynkowych dekadę po ustaleniu limitu. Nie ma jednak nic nierozsądnego w stwierdzeniu, że rządy oparte na górnictwie to najlepszy sposób na określenie jednego parametru polityki, a jednocześnie w stwierdzeniu, że dla innych parametrów (np. nagroda za blok) chcemy polegać na weryfikacji po stronie klienta, aby mieć pewność, że górnicy są ograniczeni. Na tym polega istota projektowania zdecentralizowanych instytucji: chodzi o strategiczne wykorzystanie problemów koordynacyjnych w celu zapewnienia, że systemy w dalszym ciągu spełniają określone pożądane właściwości.
Powyższe argumenty nie sugerują również, że zawsze optymalnie jest umieścić wszystko na blockchainie, nawet w przypadku usług wymagających zaufania. Ogólnie rzecz biorąc, można osiągnąć przynajmniej pewne korzyści, uruchamiając większą liczbę logiki biznesowej na blockchainie, ale często są one znacznie mniejsze niż straty w wydajności lub prywatności. I to jest w porządku; blockchain nie jest najlepszym narzędziem do każdego zadania. Jakie argumenty powyżej do sugeruje jednak, że jeśli z konieczności budujesz aplikację opartą na blockchainie, która zawiera wiele scentralizowanych komponentów, możesz osiągnąć dalsze znaczne korzyści w zakresie minimalizacji zaufania, dając użytkownikom możliwość dostępu do aplikacji za pośrednictwem zwykłego klienta blockchain ( np. w przypadku Ethereum może to być Mist, Parity, Metamask lub Status), zamiast zmuszać ich do korzystania z interfejsu internetowego, który osobiście kontrolujesz.
Teoretycznie korzyści z walidacji po stronie użytkownika są zoptymalizowane, jeśli dosłownie każdy użytkownik uruchomi niezależny „idealny pełny węzeł” – węzeł, który akceptuje wszystkie bloki zgodne z regułami protokołu, na które wszyscy zgodzili się podczas tworzenia systemu, i odrzuca wszystkie bloki, które to robią nie. W praktyce wiąże się to jednak z proszeniem każdego użytkownika o przetworzenie każdej transakcji przeprowadzanej przez wszystkich w sieci, co jest wyraźnie nie do utrzymania, szczególnie biorąc pod uwagę szybki wzrost liczby użytkowników smartfonów w krajach rozwijających się.
Są tu dwa wyjścia. Po pierwsze, możemy to sobie uświadomić, póki to istnieje Optymalny z punktu widzenia powyższych argumentów, że każdy uruchamia pełny węzeł, na pewno tak nie jest wymagany. Prawdopodobnie każdy główny łańcuch bloków działający z pełną wydajnością osiągnie już punkt, w którym dla „zwykłych ludzi” nie będzie miało sensu wydawać jednej piątej miejsca na dysku twardym na uruchomienie pełnego węzła, w związku z czym pozostali użytkownicy to hobbyści i biznes. Dopóki będzie ich dość duża liczba i będą pochodzić z różnych środowisk, problem koordynacji polegający na nakłonieniu tych użytkowników do zmowy będzie nadal bardzo trudny.
Po drugie, możemy na nim polegać mocna, lekka technologia klienta.
Istnieją dwa poziomy „lekkich klientów”, które są ogólnie możliwe w systemach blockchain. Pierwszy, słabszy, lekki klient po prostu przekonuje użytkownika, z pewnym stopniem pewności ekonomicznej, że znajduje się w łańcuchu obsługiwanym przez większość sieci. Można to zrobić znacznie taniej niż weryfikacja całego łańcucha, ponieważ wszyscy klienci, co muszą zrobić, to w schematach dowodu pracy zweryfikować wartości jednorazowe lub w schematach stawek dowodowych zweryfikować podpisane certyfikaty, które stwierdzają, że „albo główny skrót stanu jest tym, co mówię” jest, lub możesz opublikować ten certyfikat w głównym łańcuchu, aby usunąć dużą ilość moich pieniędzy”. Gdy lekki klient zweryfikuje skrót główny, może użyć drzew Merkle do zweryfikowania dowolnego konkretnego fragmentu danych, który może chcieć zweryfikować.
Spójrz, to drzewo Merkle!
Drugi poziom to „prawie w pełni weryfikujący” lekki klient. Ten rodzaj klienta nie tylko stara się podążać za łańcuchem, za którym podąża większość; raczej stara się także podążać tylko za łańcuchami, które przestrzegają wszystkich zasad. Odbywa się to poprzez kombinację strategii; najprościej wyjaśnić jest to, że lekki klient może współpracować z wyspecjalizowanymi węzłami (to zasługa Gavina Wooda za wymyślenie nazwy „rybacy”), których celem jest wyszukiwanie nieprawidłowych bloków i generowanie „dowodów na oszustwo”, czyli krótkich wiadomości, które zasadniczo powiedzieć: „Patrz! Ten blok ma tutaj wadę!”. Klienci Light mogą następnie zweryfikować tę konkretną część bloku i sprawdzić, czy rzeczywiście jest ona nieprawidłowa.
Jeżeli okaże się, że blok jest nieprawidłowy, zostaje on odrzucony; jeśli lekki klient nie usłyszy przez kilka minut żadnych dowodów oszustwa dla danego bloku, wówczas zakłada, że blok jest prawdopodobnie uzasadniony. Jest nieco większa złożoność zaangażowani w obsługę przypadków, w których problemem nie są dane zły, ale raczej dane brakujący, ale ogólnie rzecz biorąc, można być prawie blisko wyłapania wszystkich możliwych sposobów, w jakie górnicy lub walidatorzy mogą naruszać zasady protokołu.
Należy zauważyć, że aby lekki klient mógł efektywnie sprawdzać zestaw reguł aplikacji, reguły te muszą być wykonywane w ramach konsensusu – to znaczy muszą być albo częścią protokołu, albo częścią mechanizmu działającego wewnątrz protokołu ( jak inteligentny kontrakt). Jest to kluczowy argument przemawiający za wykorzystaniem blockchainu zarówno do przechowywania danych, jak i wykonywania logiki biznesowej, a nie tylko do przechowywania danych.
Te techniki lekkiego klienta są niedoskonałe, ponieważ opierają się na założeniach dotyczących łączności sieciowej oraz liczby innych lekkich klientów i rybaków znajdujących się w sieci. Ale tak naprawdę nie jest dla nich najważniejsze, aby pracowały w 100% przypadków dla 100% walidatorów. Raczej wszystko, czego chcemy, to stworzyć sytuację, w której jakakolwiek próba wrogiego kartelu górników/walidatorów wypchnięcia nieprawidłowych bloków bez zgody użytkownika spowoduje wiele problemów dla wielu osób i ostatecznie będzie wymagać od wszystkich aktualizacji oprogramowania, jeśli tego chcą chcesz kontynuować synchronizację z nieprawidłowym łańcuchem. Dopóki jest to spełnione, cel, jakim jest bezpieczeństwo, osiągnęliśmy poprzez tarcia koordynacyjne.
Źródło: https://vitalik.eth.limo/general/2017/05/08/coordination_problems.html
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoData.Network Pionowe generatywne AI. Wzmocnij się. Dostęp tutaj.
- PlatoAiStream. Inteligencja Web3. Wiedza wzmocniona. Dostęp tutaj.
- PlatonESG. Węgiel Czysta technologia, Energia, Środowisko, Słoneczny, Gospodarowanie odpadami. Dostęp tutaj.
- Platon Zdrowie. Inteligencja w zakresie biotechnologii i badań klinicznych. Dostęp tutaj.
- Przesunięcia bloków. Modernizacja własności offsetu środowiskowego. Dostęp tutaj.
- Źródło: Inteligencja danych Platona.