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.
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.
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ć
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.
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
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
@onebit: 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.
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ę.
@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
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.
@onebit: Skoro mogą sprzedać to minerzy mogą sprzedać kopanie na jakiś czas, PoS jest bezpieczniejszy jak już napisałem. PoW jest gorszy pod względem każdego możliwego ataku.
@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.
@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
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.
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.
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
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.
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
@megaloxantha: W nagłówkach są tylko hashe. Weryfikacja hashy nie wystarcza by obronić się przed double-spend i dodrukiem.
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.
@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ć
@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.
@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
@Amebcio: Koszt spada do
@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ę.
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
@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.
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
Dają pełną weryfikację wszystkiego, czego nie ma w shardingu.
Dlaczego?
która nie zabezpiecza przed kradzieżą w przypadku ataku 51%. Jedyne co robi to ostrzega ludzi że coś jest nie
@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
Weryfikuje transakcje i bloki, np. czy nie doszło do double-spend oraz dodruku waluty.
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