51% útok na síť?


#1

Chtěl bych poprosit Carlose nebo někoho, kdo má znalosti týkající se správy poolu, jestli by mi (a všem normálním smrtelníkům) mohl stručně vysvětlit některé nejasnosti, které mám ohledně události, která nastala asi před dvěma týdny. Asi většina zasvěcených ví, o co tehdy šlo. Stručně připomenu: Došlo k rozdělení (nebo rozdvojení) řetězce z důvodů nekompatibility verzí 0.7 a 0.8 ( tzv. blockchain fork) a následně se podařilo někomu utratit dvakrát stejné peníze (tzv. double spending). Naštěstí ale zareagovali správci největších poolů a vše dali poměrně rychle do pořádku. Podíly z těžby pro minéry, které byly původně označeny jako neplatné, byly minérům nahrazeny. Člověk, který provedl tu dvojitou platbu, byl naštěstí poctivec a peníze za platbu prý vrátil. Takže by se v podstatě dalo říct, že se nic vážného nestalo. Podle mě se ale stalo. Ve Wikipedii se o Bitcoinu píše mimo jiné toto: “Vzhledem k decentralizované povaze sítě, v síti vždy rozhoduje většina”. Zde však došlo k situaci kdy několik jedinců zasáhlo a “umravnilo” celou síť tím správným směrem. Naštěstí to byli ti správní lidé a provedli vše tak jak se sluší a patří. Ale… Co kdyby příště nejsilnější pooly nebyly pod kontrolou těch správných lidí? Dnes je situace taková, že tři nejsilnější pooly (BTC Guild, 50BTC a Slush) ovládají téměř 60% výpočetní síly sítě. ( http://blockorigin.pfoe.be/chart.php ) Můj dotaz tedy zní: Stačí tedy aby se 3 lidé domluvili a mohli celou sítí manipulovat nebo ji nějak rozvrátit? Má správce poolu možnost zneužít své minéry k 51% útoku na síť? Z toho co se tehdy událo mám bohužel pocit, že tu je prostor k určité manipulaci s celou sítí malou skupinou lidí… Doufám, že mě vyvedete z omylu. Díky za vaše odpovědi.


#2

Ano, to tehdejší „umravnění“ sítě byl de facto 51% útok. Ono jde o to, jak se to definuje - správce poolů nikdo nenutil, aby downgradli verzi. Oni pouze dostali doporučení, aby to tak v zájmu sítě udělali. Stejně tak se na to ale mohli vybodnout (pak by ale riskovali, že pokud to s nima neudělá nadpoloviční většina, zůstanou viset v té špatné větvi). V tomto případě opravdu jednali v nejlepším zájmu sítě, ale je pravda, že působením na několik největších poolů se dá docílit 51% útoku (pokud si to ty pooly nechaj líbit).

Vlastně tak správci poolů fungují jako zástupci v přímé demokracii - tím, že pro někoho těžíš, ho zároveň „volíš“. Takže vlastně všichni ti minéři, kteří pro ně těží, souhlasí se vším, co ti správci udělají. Když se potom správce poolu při nějakém podobném incidentu rozhodne špatně, přestaneš u něj těžit a začneš u někoho jiného. Naštěstí výměna poolu je zpravidla tak triviální, že tohle funguje dobře. Správci poolu tak mají zájem jednat „v zájmu sítě“, protože jak by se rozkřiklo, že udělali něco „špatného“, přišli by o uživatele, tím o zisk a příště už by neměli vliv žádný.

Proto je důležité, aby těch poolů bylo co nejvíce a žádný příliš silný; jinými slovy, aby se těch poolů muselo dohodnout co nejvíc a nějaké „působení na ně“ bylo co nejtěžší. Všechno samozřejmě v rámci toho, co lze dělat s 51% útokem - třeba přestat akceptovat určitý typ transakcí nebo zastavit transakce úplně. Jinak toho pooly zas tak moc nezmůžou.

A vcelku bych se ani nebál toho, že by pooly chtěli síť nějak „zneužívat“ pozastavováním transakcí apod. To je jako kdyby si majitelé největších dolů na zlato řekli, že své doly zasypou hlínou; udělat to můžou, ale ekonomicky to nedává smysl. Spíš bych se bál toho působení na ně někým dalším.


#3

Jak píše Aleš, technicky se jednalo o 51% útok, protože 0.8 blockchain byl fakticky správný - s výjimkou toho, že většina uživatelů a obchodníků stále používala starší klienty s bugem, takže bez přepnutí poolů na 0.7 větev by se najednou odhadem 80% uživatelů ocitla na větvi se zlomkem hashrate a tedy náchylné k útokům “zlých chlapců”.

Přepnutí poolů k chainu s většinou uživatelů bylo naprosto racionální, protože to byl jediný způsob, jak neohrozit nikoho - žádní uživatelé nemuseli pro opravu podnikat žádnou akci, většina z nich by mimo poklesu ceny na MtGoxu vlastně ani nic nezaznamenala.

Aleš má pravdu s tou přímou demokracií. Rád bych dodal, že já sám vlastním pouze miner s výkonem 1.6 GHash/s, ten zbytek do 6 THash/s mám “půjčený” od ostatních uživatelů. Jakmile bych se přestal chovat poctivě, brzo bych byl na ten 51% útok sám se svým minerem ;).

Shrnuto podtrženo - ano, pooly by mohly krátkodobě zaútočit na blockchain, ale přišly by o reputaci a tedy o hashrate. Z ekonomického hlediska má smysl chovat se poctivě.


#4

For v 51% utoku na sit je v tom, ze ten kdo ziska tak obrovsky vykon v hashovani muze implementovat jakekoliv zmeny v bitocin protokolu. Ma tak dve moznosti:

  • bud znicit Bitcoin jako takovy tim ze zrusi napr. pravidlo ze kazda mince muze byt utracena jenom jednou, coz povede k totalni ztrate duvery v Bitcoin (utocnik by prisel i o sve v BTC ulozene prostredky a veskerou investici do infrastruktury)

  • anebo si ponechat vytezek z 51% bloku a zachovat duveryhodnost bitcoinu (a tak dale vydelavat BTC).


#5

Muzu se zeptat zda jsi nekdy mel dlouhodobe 51%? Jakeho rekordu jsi dosahl? :wink:


#6

Ne, 51% utocnik nemuze zmenit pravidlo, ze mince bude utracena vicekrat (bavime se o jednom chainu). Zadny klient by takovy blok neprijal.

51% jsem nikdy nemel, nejvic to bylo myslim 35%, ale presne si nepamatuju.


#7

No 51% utok znamena ze ten kdo ovlada uzly s 51% vykonem si dela vlastni blockchain s vlastnimi pravidly na vlastnim bitcoin protokolu (jinymi slovy na 51% uzlech bezi jeho vlastni modifikovany bitcoin klient), nepotrebuje zbylych 49% uzlu/klientu k tomu aby jeho bloky prijimali… aspon tak to chapu ja (samozrejme se muzu mylit). To ze by v ten okamzik pravdepodobne doslo opet k chain forku je mozne, zas tak detailne jsem to nestudoval.


#8

carlos: Pokud ale ostatní uzly nebudou jeho bloky přijímat, tak je bude těžit úplně zbytečně. Ostatní minéři „vadné“ bloky taky nepřijmou a budou navazovat na poslední platný, tj. bez změněných pravidel. A zejména uživatelé budou bloky s jinými pravidly ignorovat.

Vlastně by si tak útočník udělal úplně separátní síť, další alternativu k bitcoinu. A to mu bude k ničemu, protože mu to nikdo nepřijme a nebude to mít žádnou hodnotu.

Útočník může síť ovlivňovat, ale vždy jen v rámci daných pravidel. Jakmile je změní, stane se z toho jiná měna.


#9

Presne tak jsem to myslel, podle me i to muze znamenat konec bitcoinu… ale nejsem specialista na konec sveta :slight_smile:


#10

Právě že tohle nemůže znamenat zánik bitcoinu. Je to úplně stejná situace, jako když někdo bude konstantně generovat vadné bloky - hned první uzel, kterému to pošle, vyhodnotí blok jako nesmyslný a zahodí ho. Ani ho nebude propagovat dál. Na zbytek sítě proto taková událost nebude mít naprosto žádný vliv.

A je už jedno, jakou rychlostí bude ty vadné bloky generovat.


#11

Chapu, takze by zmenou tohohle zasadniho pravidla docilil maximalne rozdeleni na dva paralelni chainy… To je dobra zprava. Prazdnymi bloky by totiz mohl narusit sit jen docasne a vetsina by se s trochou stesti brzy presunula k duveryhodnym uzlum.

No doufejme ze to tak je… To dost snizuje moznost koncept na dobro znicit nevratnou zmenou…

Moznost prestat akceptovat urcity typ transakci naopak beru jako pravo vetsiny. (tohle by melo trzni prostredi s prehledem vyresit)


#12

Dobre shrnuti 51% utoku na Bitcoin sit vyslo dnes na rootu:

Vyplyva z nej mimo jine ze utocnik by NEMOHL

  • měnit transakce ostatních uživatelů
  • bránit ostatním uživatelům v uskutečňování transakcí
  • měnit počet BTC vygenerovaných v bloku
  • svévolně vytvářet nové BTC
  • manipulovat s BTC, které jí nikdy nepatřily

Mohl by ovšem:

  • bránit potvrzování transakcí
  • bránit ostatním těžařům ve vytěžení bloku
  • „utratit“ bitcoiny vícekrát (doublespending)

Tedy alespon z technickeho hlediska. Bitcoin je nastaven tak aby motivace k tomuto utoku nebyla (pokles duvery a s tim souvisejici pokles vynosu z tezby apod. viz clanek).


Transakce s příliš nízkým poplatkem - je možné storno?
#13

Ghash se zdá být v pořádku, řekl, že na začátku července uspořádá setkání s hlavními hráči na trhu Bitcoin přijít k dohodě a zajistit budoucnost měny. ve slovech přesto prohlašuje, že se nestará o nadvládu.