Dlaczego wybrano docelowy czas blokowania na 10 minut?

Zgodnie z wiki , 10 minut zostało wybrane jako „kompromis”.

Dlaczego akurat dziesięć minut? Jest to kompromis wybrany przez Satoshi między czasem propagacji nowych bloków w dużych sieciach a ilością pracy zmarnowanej z powodu podziałów łańcucha.

Jednak w oryginalnym artykule Satoshi przyjęto 10 minut jedynie na potrzeby obliczenia wymaganego miejsca na dysku.

Nagłówek bloku bez transakcji miałby około 80 bajtów. Jeśli założymy, że bloki są generowane co 10 minut, 80 bajtów * 6 * 24 * 365 = 4,2 MB rocznie.

Czy w innym miejscu jest dyskusja wyjaśniająca, w jaki sposób powstał 10-minutowy czas blokowy?

Komentarze

  • Myślę, że jeśli 10-minutowy blok okaże się problematyczny z jakiegoś powodu, a większość użytkowników & górników zgadza się z tym, można to obniżyć w przyszłości.
  • Mike Hearn wyjaśnił mi kiedyś, że Satoshi oszacował czas propagacji bloku na 1 minutę i wybrał 10-minutowe odstępy między blokami, ponieważ ” marnowanie ” 10% pracy w kopalni to uczciwa kwota. Obecnie czas propagacji bloku jest dużo, dużo szybszy.
  • @pinhead Co dokładnie masz na myśli marnując 10% pracy wydobywczej?
  • @FivePoints w tym kontekście, mamy na myśli 10 % wydobytych bloków ” przegra wyścig ” z innym blokiem wydobytym prawie w tym samym czasie i stanie się nieaktualny, co oznacza wypłatę dotacji dla górnik nigdy nie zostanie wydany, a energia zużyta przez górnika do wyprodukowania tego bloku zostanie zmarnowana.
  • @pinhead ma sens, ale jak obliczono te 10%? Czy to po prostu (czas oczekiwania / blokowania)?

Odpowiedź

10-minutowe bloki to po prostu kompromis.

Krótszy czas blokowania:

  • PRO – Szybszy 1 czas potwierdzenia (w celu ochrony przed podwójnymi wydatkami bez potwierdzenia)
  • PRO – Mniejsze różnice w wypłatach dla górników (mniejsze poleganie na dużych pulach)
  • CON – Wymaga zwiększonej przepustowości (komunikacja między węzłami)
  • CON – Więcej rozwidleń, dłuższe widełki i dłuższy czas ponownego organizowania
  • KON – Większa część surowej mocy mieszania jest marnowana, co skutkuje niższym efektywnym bezpieczeństwem.

Przy docelowym dłuższym interwale blokowym dłuższym niż 10 minut, zalety i wady byłyby odwrotne.

Główna zaleta krótszego czas bloku to skrócony 1 czas potwierdzenia. Podczas gdy szybszy blok „s 1 potwierdź transakcję ma mniejszą siłę niż dłuższy blok” s 1 potwierdź transakcję, nadal jest lepszy niż dowolny blok 0 potwierdza transakcję.

Szybkość pierwszego potwierdzenia może wydawać się ogromną korzyścią, ale w rzeczywistości w przypadku większości transakcji o niskiej wartości i wrażliwych na czas, takich jak zakup filiżanki kawy, płacenie za taksówkę lub korzystanie z automatu, ryzyko podwójnych wydatków jest bardzo niskie. Należy pamiętać, że akceptowanie kart kredytowych nie jest pozbawione ryzyka, jednak kupcy od dawna akceptują, że poniosą pewne straty, jednak jeśli straty te są minimalne, można je postrzegać jako koszt prowadzenia działalności. Tak wielu sprzedawców mogłoby po prostu zaakceptować transakcje z zerowym potwierdzeniem bez narażania się na większe ryzyko niż w przypadku oszustw związanych z kartami kredytowymi.

Innym czynnikiem, który ogranicza rzeczywisty potencjał krótszych przedziałów bloków docelowych jest to, że w przypadku wielu sprzedawców , nawet „krótsze” czasy potwierdzenia nadal nie są wystarczająco szybkie. W przypadku transakcji w punkcie sprzedaży średni czas potwierdzenia wynoszący 2 minuty jest nadal znacznie dłuższy niż to, co większość sprzedawców uważa za wykonalne. Przeciętna transakcja kartą kredytową zajmuje około 20 sekund (w tym opóźnienia ze strony klienta). Cała branża wydała znaczne zasoby, aby zaoszczędzić nawet kilka sekund. Zmiany, takie jak umożliwienie klientowi przeciągnięcia karty, przesunięcie palcem, zanim wszystkie pozycje zostaną zadzwonione, i niewymaganie podpisów o niskiej wartości są oszczędza kilka sekund i tak już szybkiego procesu, a koszt tych zmian uważa się za akceptowalny, aby nieznacznie poprawić wydajność kasy.

Drugi czynnik i że zmniejszenie interwału celu skraca tylko średni czas potwierdzenia, ale połowa z nich będzie dłuższa, a ogon może być bardzo długi. Ze względu na losowy charakter rozwiązań blokowych około 15% bloków zajmie więcej niż 2x cel, 3% dłużej niż 3x cel, a> 7,5 minuty, a około 0,5% zajmie więcej niż 4x cel. Ta niepewność utrudnia firmie wrażliwej na czas czekanie na potwierdzenia ze względu na politykę. Potwierdzenie większości transakcji w ciągu 30 sekund, ale niektóre zajmują kilka minut, doprowadzi do frustracji klienta w punkcie sprzedaży.

Jeśli gospodarka BTC rozwinie się na tyle, będziemy mogli zobaczyć szersze użycie „zielonych adresów”, aby wypełnić potrzebę natychmiastowej akceptacji bez potwierdzania. Takie usługi mogłyby być świadczone przez duże korporacje i zabezpieczone ubezpieczeniem od oszustw (za niewielką opłatą za transakcję). Byłoby to bardziej realne rozwiązanie z zerowym potwierdzeniem niż zwykłe zmniejszenie interwału bloków.

Biorąc to pod uwagę, 10-minutowy cel był prawdopodobnie zbyt konserwatywny i krótszy czas blokowania ma pewne zalety. p>

Komentarze

  • Twoim błędem jest to, że myślisz, że ” podwójny atak ” oznacza ” 51% ataku „. Możesz spróbować dwukrotnie wydać mniej, ale ' nie gwarantujemy sukcesu. Im więcej czekało bloków, tym mniejsza szansa. > 50% to punkt, w którym ' ponownie gwarantujemy ostateczny sukces bez względu na liczbę czekanych bloków. Prawdopodobieństwo sukcesu z < 50% atakiem zależy od liczby bloków, a nie od czasu. Jest to zaleta krótszych bloków.
  • Krótszy czas blokowania ma kolejną mniej korzystną wariancję dla górników. Ponadto dodatkowa przestrzeń do przechowywania krótkich bloków jest znikoma, ponieważ większość danych to transakcje, a nie nagłówki bloków.
  • Masz kilka literówek: pierwsze 2 wpisy dla ” Dłuższy czas blokowania ” powinien wynosić ” CON ” i ” PRO ” zamiast ” PRO ” i ” RRO „.
  • @MeniRosenfeld Dzięki za poprawki i dodałem różnice wariancji i usunąłem różnice w przechowywaniu, masz rację, różnice będą raczej niewielkie. Usunąłem również aspekt czasowy, ponieważ chociaż słyszałem, że wymaga on więcej potwierdzeń, nie ' nie mam ostatecznej wiedzy. Jest wystarczająco dużo innych znanych różnic.
  • Bardzo fajna aktualizacja, chciałbym móc ponownie zagłosować za. 😉

Odpowiedź

Ta część wiki też mnie frustruje i właśnie ją zredagowałem. Byłbym wdzięczny za poprawki. Oto, co napisałem:

Dziesięć minut zostało specjalnie wybrane przez Satoshi jako kompromis między pierwszym potwierdzeniem a ilością praca zmarnowana z powodu pęknięć łańcucha. Po wydobyciu bloku inni górnicy potrzebują czasu, aby się o tym dowiedzieć, a do tego czasu faktycznie konkurują z nowym blokiem, zamiast dodawać do niego. Jeśli ktoś wydobywa inny nowy blok w oparciu o stary łańcuch bloków, sieć może zaakceptować tylko jeden z dwóch, a cała praca włożona w drugi blok zostaje zmarnowana. Na przykład, jeśli górnicy potrzebują średnio 1 minuty, aby dowiedzieć się o nowych blokach, a nowe bloki pojawiają się co 10 minut, to cała sieć marnuje około 10% swojej pracy. Wydłużenie czasu między blokami zmniejsza to marnotrawstwo.

W ramach eksperymentu myślowego, co by się stało, gdyby sieć Bitcoin rozrosła się, obejmując Marsa? Z najdalszych punktów ich orbit potrzeba około 20 minut, aby sygnał dotarł z Ziemi na Marsa. Mając zaledwie 10 minut między nowymi blokami, górnicy na Marsie zawsze będą 2 przecznice za górnikami na Ziemi. Wkład w łańcuch bloków byłby prawie niemożliwy. Gdybyśmy chcieli współpracować z tego rodzaju opóźnieniami, potrzebowalibyśmy co najmniej kilku godzin między nowymi blokami.

Komentarze

Odpowiedź

Ponieważ Bitcoiny są pierwszą kryptowalutą używającą generowania bloków i tak dalej, można założyć, że 10 minut to arbitralnie wybrane. Każda wartość, która byłaby wystarczająco duża, aby rozpropagować nowy blok w sieci, zanim inny górnik prawdopodobnie wygeneruje nowy blok, byłaby dobra. Z drugiej strony bloki końcowe nie powinny być zbyt rzadkie, ponieważ uzyskanie potwierdzeń zajęłoby zbyt dużo czasu. Godzina obliczeń jest uważana za bezpieczną przed manipulacją, więc podzielenie tego czasu na zgrabne części może dać 10 minut.

Prawdopodobnie nie ma żadnej dyskusji na ten temat, ponieważ pierwsza wersja Bitcoina została stworzona przez samego Satoshi, więc dopóki nie ujawni swojej prawdziwej tożsamości lub wraca do społeczności, dokładnych powodów nie można ustalić na pewno.

Komentarze

  • Analiza w Satoshi artykuł nie ' w ogóle nie odnosi się do ilości czasu, który należy czekać – zależy to wyłącznie od praktyczności utrzymywania wysokiego hashratu przez długi czas czas.Omówił liczbę bloków do oczekiwania – pokazał na przykład, że jeśli odbiorca czeka na 6 bloków, a atakujący ma 10% ' s hashrate, to podwójna próba wydania ma tylko < 0,025% szans na powodzenie. Przy 1 minucie na blok jest to 6 minut itd.

Odpowiedź

AFAICS, jedyna możliwa korzyść dłuższy czas blokowania to redukcja narzutu przepustowości z powodu mniejszego prawdopodobieństwa podziału łańcucha bloków.

Wątpię nawet w ten kompromis, ponieważ jeśli dane transakcji są masowe, istnieje efekt równoważenia, który jest krótszy czasy bloków oznaczają mniej danych do przesłania.

Jestem bardzo sceptyczny, że musi być więcej zmarnowanej pracy przy krótszym czasie blokowania, jeśli trudność jest skalibrowana pod kątem czas na osiągnięcie konsensusu. Z matematycznego punktu widzenia górnicy zarabiają procent nowo utworzonych bloków proporcjonalnie mniej więcej do ich procentowej mocy obliczeniowej systemu, niezależnie od względnego podziału szczęścia między trudnością pracy a (losowymi) osieroconymi łańcuchami.

Chyba że jest dowód, wątpię w twierdzenie, że krótsze czasy bloków powodują dłuższe czasy dojścia do konsensusu (tj. podziały re-org), ponieważ na przykład jeśli jest 4 razy więcej podziałów z 1/4 czasu bloku, jest ich około 7 kolejne iteracje dojść do zgody w tej samej długości

Biorąc pod uwagę fakt nieodwracalności jest funkcją liczby bloków mdash;. ̶ nie stanowi czas i Wadą opóźnień w transakcjach, ̶ wydaje krótszym czasie jest ̶c̶o̶m̶p̶e̶l̶l̶i̶n̶g̶.̶ blok

będę wdzięczny jeśli downvoters by przynajmniej spróbować d Uzupełnij ich logikę komentarzem pod moją odpowiedzią. To daje mi okazję do omówienia ich i pokazania im, dlaczego uważam, że się mylą (lub przyznania się do błędu). Chodzi o to, aby upewnić się, że wspólnie mamy poprawną logikę.

Komentarze

  • Ta odpowiedź nie bierze pod uwagę czasu poniesionego przez transmisję blokową i weryfikację bloku . Ponieważ ten czas jest z grubsza ustaloną kwotą dla całego bloku, jest to większa względna część krótszego interwału blokowego niż dłuższy interwał blokowy.
  • @Murch, napisałem tę odpowiedź kilka dni lub tygodni później zainicjowanie moich studiów nad blockchainami, kryptografią i Bitcoinem. Od tego czasu moje poglądy znacznie się zmieniły. Zakładając jednak, że liczba transakcji na blok jest zmniejszona przy wyższej częstotliwości bloków, twierdzenie o stałej propagacji & czas weryfikacji jest niepoprawne. Craig Wright twierdził, że sieć Bitcoin propaguje się do 99% hashrate w ciągu mniej więcej sekundy.
  • Ponieważ praktycznie wszyscy górnicy są podłączeni do Fiber, a opublikowane dane sugerują, że ' jest tylko nieco wolniejszy od prędkości światła, < 1 sekunda nie jest trudnym stwierdzeniem… Jednak najbardziej znaczący wpływ w tym roku był prawdopodobnie że górnicy zaktualizowali Bitcoin Core do najnowszej wersji, aby zasygnalizować aktywację segwit. Na początku tego roku nadal widzieliśmy wiele osieroconych bloków tygodniowo. Czas blokady np. 60 sekund cofnęłoby nas z powrotem do wielu osieroconych bloków dziennie. Ponieważ dane są po to, aby się im przyjrzeć, ' zastanawia się, że wydaje się, że zaprzeczasz efektowi.
  • @Murch, czy SegWit zmniejszył średni rozmiar bloku o współczynnik 10? Jeśli nie, to prawdopodobnie dane, które cytujesz, nie odnoszą się do mojego punktu. Rozumiem teraz (nie żebym to zrobił w 2016 roku, kiedy pisałem tę odpowiedź), że krótsze czasy bloków również zwiększają asymetryczne korzyści dla koalicji hasratu, takich jak pule, które natychmiast widzą wygrywające bloki (brak opóźnienia propagacji). Tak więc nadmierne sieroty mogą być samolubnym wydobyciem w akcji. Uwaga: wariant GHOST w Ethereum jest częściowym rozwiązaniem niektórych z tych problemów.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *