Wpis z mikrobloga

Sharding powoduje że problemy z jednego shardu przenoszą się na inne. Shard weryfikuje tylko ulokowane na nim transakcje i kontrakty. Jeżeli leci transakcja między shardami, nie wiemy czy jest poprawna - wierzymy, że uczciwi stakujący na zewnętrznym shardzie byli w większości, ale żeby to zweryfikować należałoby przeliczać wszystkie kontrakty, czyli być full nodem, a nie tylko pojedynczym shardem. To niestety nie jest pełna decentralizacja, zwłaszcza, że koszt ataku na pojedynczy shard jest mniejszy niż na całą sieć, shard jest zabezpieczany mniejszym stakiem. To dlatego, że zasoby staku w puli stakujących są skończone i dzielone na K shardów. Czy w ogóle możemy mówić o decentralizacji, skoro realnie nie ma możliwości zweryfikowania wszystkiego i fakt ten stwarza krytyczne ryzyko? Za atak mający miejsce na pojedynczym shardzie zapłaci przecież cała sieć. Może to być double-spend albo nawet dużo poważniejszy problem jak dodruk waluty. Dodruk waluty w przypadku protokołu PoS to katastrofa(nawiasem mówiąc w PoW energii która zabezpiecza sieć nie można dodrukować). Taki atak będzie trudniej wykryć, bo z czasem będzie coraz mniej nodów przechowujących stan shardu, blokchain będzie coraz bardziej rozdrobniony. Full nody są ważne, bo jeżeli mamy wszystkie informacje o stanie sieci to możemy wszystko zweryfikować. W tym świetle decentralizacja wydaje mi się jednak być czymś zero-jedynkowym, albo faktycznie jest albo jej nie ma.

Model skalowania na którym opiera się Ethereum jest obciążony szeregiem ryzyk, które nie powinny być obecne w pierwszej warstwie, a już na pewno nie w przypadku światowej waluty. To tak jakby pisać skomplikowaną grę w trybie j---a. Jakikolwiek błąd i wywala się cały system. Dlatego bardziej sensowny wydaje mi się model skalowania rozwijany w Bitcoinie. Pierwsza warstwa to decentralizacja i bezpieczeństwo i nic więcej. Natomiast skalowanie i inne ficzery przenosimy do kolejnych warstw, jak Lightning Network i sidechainy. Problemy w LN i sidechainie nie wpływają na główny blokchain.

#bitcoin #kryptowaluty #ethereum
  • 47
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Stakujący nie trzymają stanu w ogóle, nie jest on potrzebny do weryfikacji. Każdy blok można zweryfikować mając jedynie nagłówek poprzedniego poprawnego.


@megaloxantha: W nagłówkach są tylko hashe. Weryfikacja hashy nie wystarcza by obronić się przed double-spend i dodrukiem.
  • Odpowiedz
@onebit: prawdopodobieństwo jest bliskie zera
https://github.com/ethereum/wiki/wiki/Sharding-FAQ#how-is-the-randomness-for-random-sampling-generated
Teraz n to 256
To nie jest coś co można brute forcować komputerami, jedno losowanie co ok 30 minut. Przy 20% atakujących jest 3.96 * 10^-26 dla 250 stakujących na shard. Zagrożenia tutaj nie ma.

W nagłówkach są tylko hashe. Weryfikacja hashy nie wystarcza by obronić się przed double-spend
  • Odpowiedz
Teraz n to 256

To nie jest coś co można brute forcować komputerami, jedno losowanie co ok 30 minut. Przy 20% atakujących jest 3.96 * 10^-26 dla 250 stakujących na shard. Zagrożenia tutaj nie ma.


@megaloxantha: Ale ty piszesz o czymś innym, o losowaniu walidatorów. A ja piszę o staku który zabezpiecza shard-jest on mniejszy K razy, a więc i koszt ataku jest K razy mniejszy. Jeśli ktokolwiek może zyskać
  • Odpowiedz
Każdy blok ma hash stanu i dane potrzebne do wykonania bloku, więc mając poprawny blok możesz zweryfikować następne.

Bezpieczeństwo na zasadzie indukcji.


@megaloxantha: Nie możesz zweryfikować. Jeżeli dostajesz transakcje od innego shardu, nie wiesz czy jest poprawna. Musisz zweryfikować tamten shard, czyli wykonać przypisane do niego transakcje by upewnić się że np. posiada te środki z innych transakcji które miały miejsce wcześniej.
  • Odpowiedz
wierzymy, że uczciwi stakujący na zewnętrznym shardzie byli w większości


@onebit: Ech, to dlatego Ethereum odchodzi od miningu - przy normalnym kopaniu moc obliczeniowa rozproszyłaby się pomiędzy shardy redukując bezpieczeństwo. Przy stakingu nie ma takiego problemu, bo jest slashing który niszczy monety mieszające z konsensusem. Bezpieczeństwo nie jest liczone w blokach czy hashach, tylko w ilości ETH które trzeba spalić żeby cofnąć blok, a ta wartość dąży z czasem do
  • Odpowiedz
Przy stakingu nie ma takiego problemu, bo jest slashing który niszczy monety mieszające z konsensusem. Bezpieczeństwo nie jest liczone w blokach czy hashach, tylko w ilości ETH które trzeba spalić żeby cofnąć blok, a ta wartość dąży z czasem do nieskończoności

W rezultacie nie ma problemu bo koszt ataku rośnie w nieskończoność, podczas gdy w miningu jak ktoś ma 51% to psuje sieć po cenie prądu


@Amebcio: Koszt spada do
  • Odpowiedz
Nope, aby cofnąć blok musisz spalić 32 ETH dla tego bloku i 32 dla każdego powyżej. W rezultacie cofnięcie 10 bloków =320 ETH, 1000 bloków to 32000 ETH itd.


@Amebcio: No właśnie, 32 ETH to nie jest żadne zabezpieczenie, bo w kontrakcie może być więcej i atak opłaci się.
  • Odpowiedz
@onebit: nie jest mniejszy właśnie dlatego bo nie możesz sobie wybrać shardu.

motyw do wpłynięcia na stakujących


Nawet z możliwością korupcji po losowaniu jest lepiej niż w PoW, bo depozyt na jednym shardzie to 2x więcej niż nagroda btc w ciągu 30 minut, i to po obecnych cenach. Każdy shard to reprezentacja ogólnej dystrybucji stakujących, więc to tak jakby każdy miner miał najnowsze asici więc zależy mu na sieci.
W PoW to nieprawda np. teraz, bo masa asiców pójdzie na złom
  • Odpowiedz
nie jest mniejszy właśnie dlatego bo nie możesz sobie wybrać shardu.


@megaloxantha: Jest mniejszy, bo wybór nie jest potrzebny. Stakujący mają klucze prywatne, które mogą sprzedać atakującemu shard. Shard to część blokchaina również znana.
  • Odpowiedz
@megaloxantha: Ale w Bitcoinie są full nody które wszystko weryfikują. Manipulacja na shardzie widoczna jest tylko na nim, reszta sieci operuje na hashach. Jeśli dojdzie do dodruku albo double-spend ze zmanipulowanego shardu sieć długo albo w ogóle może tego nie zauważyć. Natomiast co do miningu w PoW to nie prawda bo koszt ataku jest większy, trzeba przejąć 51% kopalni, a na shardzie tylko odkupić wartość staku od wylosowanych walidatorów np.
  • Odpowiedz
@onebit: i co te pełne nody niby dają? atak to albo cenzura, albo cofnięcie bloków i double spend. Nic nie dają.

Jeśli dojdzie do dodruku albo double-spend ze zmanipulowanego shardu sieć długo albo w ogóle może tego nie zauważyć.


Do tego wystarczy jedna osoba która to zauważy, brak takiej osoby jest sytuacją niemożliwą do zaistnienia. Większość na danym shardzie umożliwi co najwyżej oszukanie protokołu i wymóg
  • Odpowiedz
i co te pełne nody niby dają? atak to albo cenzura, albo cofnięcie bloków i double spend. Nic nie dają.


Dają pełną weryfikację wszystkiego, czego nie ma w shardingu.

Do tego wystarczy jedna osoba która to zauważy, brak takiej osoby jest sytuacją niemożliwą do zaistnienia. Większość na danym shardzie umożliwi co najwyżej oszukanie protokołu i wymóg forka.


Dlaczego?
  • Odpowiedz
@onebit:

Dają pełną weryfikację wszystkiego, czego nie ma w shardingu.


która nie zabezpiecza przed kradzieżą w przypadku ataku 51%. Jedyne co robi to ostrzega ludzi że coś jest nie
  • Odpowiedz
@onebit: o ciekawe, jest lepiej niż myślałem

Instead, we add a mechanism where a fraud proof can be included in the beacon chain later, and inside the chain this rewinds that shard chain block and all shard chain blocks that depend on it.
  • Odpowiedz
No właśnie, 32 ETH to nie jest żadne zabezpieczenie, bo w kontrakcie może być więcej i atak opłaci się.


@onebit: Dlatego czekasz kilka bloków aż zbierze się większa stawka. To tak jak z normalnym miningiem, tylko zamiast trudności jest stawka którą trzeba zniszczyć aby cofnąć transakcję

Przy kontraktach cofając blok cofasz także stan kontraktu. Żadnego sensownie napisanego smart kontraktu nie da się oszukać w ten sposób. Osieracanie bloków nigdy nie
  • Odpowiedz
która nie zabezpiecza przed kradzieżą w przypadku ataku 51%. Jedyne co robi to ostrzega ludzi że coś jest nie tak.


Weryfikuje transakcje i bloki, np. czy nie doszło do double-spend oraz dodruku waluty.

Mogę sobie wyobrazić sytuację kiedy w ogóle nie wiem co dzieje się na pewnym shardzie, w końcu przecież jestem na innym i nie weryfikuję wszystkiego.

bo zawsze ktoś będzie używał jakiegoś kawałka. Zamiast każdego użytkownika weryfikującego wszystko użytkownicy jako całość weryfikują wszystko wielokrotnie.
  • Odpowiedz
@onebit: liczba shardów jest stałym parametrem i teraz będzie ich 64

W takim razie opłaca się robić double-spend dla większych kwot


nawet jeśli to i tak lepiej niż w PoW
a nie opłaca się bo jak widać starczy że jedna osoba zauważy i dostarczy fraud proof
  • Odpowiedz