Задржавање блокова: напад који ниједна деоница не открива
Рудар шаље праве деонице и сакрива ону која би била блок. Сазнајте колико то кошта, ко плаћа, зашто то неко ради и како се открива.
Шта је напад задржавањем блока?
То је рудар који шаље све обичне деонице, али сакрива ону која би била блок. Базен плаћа деонице. Блок никад не стиже.
Свака деоница коју пошаљете базену је право решење које није достигло циљ блока. Циљ блока је тежа граница коју хеш мора да пређе да би настао блок. Повремено неко решење пређе и њу, и та деоница је цео блок.
Таква деоница изгледа као свака друга док је базен не провери.
Нападач поштено обавља рад и шаље све обичне деонице. Тихо одбацује ону која би била блок. Базен броји деонице и плаћа их. Блок који је требало да добије никад не стиже.
Зашто га једна деоница не може одати?
Ни на једној појединачној деоници код нападача ништа не изгледа погрешно. Хардвер је стваран, као и хеш стопа. Деонице су важеће и стижу правим темпом. Базен може да прегледа једну деоницу и не види апсолутно ништа.
Недостаје нешто чега нема, а одсуство се види само током времена. Рудар са одређеним уделом у хеш стопи базена требало би да пронађе отприлике исти удео његових блокова.
За један сат то не говори ништа. Проналажење блокова је случајно, а мирни периоди су уобичајени. У довољно дугом прозору то говори веома много.
Колико то кошта и ко плаћа?
Базен губи награду за блок коју је требало да добије. Али губитак заправо не пада на базен. Ово је део који вреди разумети на сваком базену.
- Под пропорционалном шемом рунда траје док неко други не пронађе блок. Сви у рунди радили су у рунди која је трајала дуже него што је требало. Зато сви зарађују нешто мање по јединици рада. Трошак се распоређује на поштене рударе.
- Под шемом плаћања по деоници горе је за оператера. Базен је већ платио сваку деоницу из свог џепа и рачуна на то да ће блокови стићи. Дуготрајан напад директно исцрпљује оператера. Историјски, то је случај који је људе највише бринуо.
Зашто би неко то радио?
Нападач баца и награду за блок. На први поглед то је чисто самоповређивање. Има смисла само ако нападач добија нешто тамо где базен не види.
Уобичајени мотив је конкуренција. Неко ко води сопствени базен може да изнајми хеш стопу или да је усмери на ривала и тако потисне његове резултате. Његов базен онда у поређењу делује срећније. Деонице које нападач и даље наплаћује плаћају саботажу.
У суптилнијој варијанти нападач задржава блок уместо да га одбаци. Наставља да тајно рудари на њему, па га шаље касније, у тренутку који му одговара. То је теже извести. Потребан је велики удео хеш стопе да би вредело покушати.
Како се открива?
Откривање је статистичко, јер другог сигнала нема. Упоредите блокове које је учесник пронашао са блоковима које је, према броју деоница, требало да пронађе. Урадите то у прозору довољно дугом да се срећа уравнотежи.
Прозор је тежи део.
- Ако је кратак, обична лоша срећа изгледа као напад. Поштени рудари би стално били оптуживани.
- Ако је дугачак, прави нападач ради неко време пре него што бројеви проговоре.
Нема паметног начина да се заобиђе овај компромис. Он долази од случајности, а не од софтвера.
Зато озбиљан детектор поставља питање човеку уместо да делује сам. Аутоматска забрана заснована на статистици једног дана ће забранити некога ко је само имао лошу срећу. Искључивање легитимног рудара горе је од самог напада.
Шта то значи за поштеног рудара?
Готово ништа, и то вреди рећи јасно.
Ваше деонице се броје и плаћају исто у сваком случају. Лоша срећа није прекршај и не може бити. У сваком кратком прозору већина рудара има лошу срећу.
Низ рунди у којима сте много допринели, а базен није пронашао ништа, нормална је варијанса. Бројка среће у статистици базена показује Вам колико је то нормално.
Овај напад је један од разлога зашто је базенима важно ко на њих усмерава хеш стопу. Због њега је и базену који поштено објављује своје блокове и своју срећу лакше веровати. Све што Вам треба да проверите базен налази се на страници блокова.