Проблемът, който proof of work решава
Дигиталният регистър е лесен за копиране и лесен за редактиране. Ако всеки можеше да добавя транзакции свободно, той би могъл и да похарчи едни и същи монети два пъти — класическият проблем с „двойното харчене“. В система без централен оператор ви е нужен начин независими участници да се съгласят кои транзакции са се случили и в какъв ред, дори когато някои от тях са нечестни или офлайн.
По-ранните опити за дигитални пари разчитаха на доверен посредник, който да води книгите. Дизайнът на Bitcoin, описан в бялата книга от 2008 г., замени този доверен посредник с публично състезание: участниците харчат реални ресурси, за да добавят блокове, а мрежата следва споделено правило за избор на печелившата верига. Консенсусът възниква от разход и математика, а не от авторитет.
Какво всъщност изчисляват копачите
Всеки кандидат-блок съдържа партида от транзакции, препратка към предишния блок и малко променливо число, наречено nonce. Копачите прекарват тези данни през хеш функцията SHA-256, която превръща всеки вход във фиксирана по дължина и непредвидимо изглеждаща стойност. Целта е да се намери вход, който произвежда хеш под определена целева стойност — на практика хеш, започващ с определен брой нули.
Тъй като изходите на хеша не могат да бъдат предсказани или обратно инженерирани, единственият начин да се намери отговарящ хеш е чрез проба и грешка: сменяш nonce-а, хешираш отново, повтаряш — милиарди пъти в секунда. Това търсене чрез груба сила е „работата“. То е нарочно трудно за изпълнение, но тривиално за проверка от всеки друг — едно-единствено изчисляване на хеш потвърждава, че отговорът е валиден. Тази асиметрия (трудно за произвеждане, лесно за проверка) е сърцето на proof of work.
Трудност и ритъмът от приблизително десет минути
Bitcoin се стреми към нов блок средно приблизително на всеки десет минути. Тъй като все повече изчислителна мощ (hash rate) се присъединява към мрежата, блоковете биха започнали да пристигат по-бързо, затова протоколът периодично коригира трудността — колко нисък трябва да е целевият хеш — за да поддържа средното темпо стабилно. Приблизително на всеки две седмици (2016 блока) всеки възел преизчислява трудността въз основа на времената на скорошните блокове.
Тази саморегулация е причината повече изчислителна мощ да не означава по-бързо производство на блокове с течение на времето; тя основно означава, че се изразходва повече работа за защита на същия стабилен поток от блокове. Точното време на всеки отделен блок е случайно, така че десетте минути са дългосрочна средна стойност, а не разписание.
От блокове към консенсус: най-дългата валидна верига
Намирането на валиден блок е само половината от историята. Възлите все още трябва да се съгласят за една история, когато двама копачи намерят блокове почти в един и същи момент. Правилото е, че възлите следват валидната верига с най-голямата обща натрупана proof of work — често обобщавана като „най-дългата верига“, макар в действителност тя да е най-тежката по кумулативна работа.
Всеки пълен възел независимо проверява всеки блок спрямо правилата на Bitcoin: валидни подписи, липса на двойно харчене, правилна награда за блок и хеш, който отговаря на целта. Блоковете, които нарушават правилата, просто се отхвърлят, независимо колко работа е вложена в тях. Временните разногласия (форкове) се разрешават, когато следващият блок удължи един от клоновете, а честните копачи се сближават около него, защото изграждането върху приетата верига е там, където е наградата.
Защо това защитава мрежата
За да пренапише минала транзакция, нападателят би трябвало да преизвърши proof of work за този блок и всеки блок след него, а след това да изпревари цялата честна мрежа, за да изгради по-дълга верига. Колкото по-дълбоко е заровена една транзакция, толкова повече работа би трябвало да се преизвърши — затова търговците често изчакват няколко потвърждения. Разходът се мащабира с общия hash rate на мрежата.
Това е интуицията зад „51% атаката“: контролирането на мнозинството от хеш мощността би могло да позволи на някого да пренарежда или цензурира скорошни транзакции. Но е скъпо да се придобие и да се експлоатира този хардуер, той не може да фалшифицира подписи или направо да краде монети, а една видима атака би могла да подкопае стойността на самия актив, за чието копаене нападателят харчи ресурси. Стимулите са подравнени така, че честното участие като цяло е по-печелившо от атакуването. Сигурността тук е икономическа и вероятностна, а не абсолютна гаранция.
Компромиси и по-широкият дебат
Силата на proof of work — реален, външен разход — е също и източникът на най-честата критика към него: потреблението на енергия. Оценките за електроенергийното потребление на Bitcoin варират значително и се променят с времето, а картината се усложнява от нарастващия дял на изолирана, излишна или възобновяема енергия, която някои копачи използват. Разумни хора не са съгласни помежду си, а конкретиката се променя; струва си да проверявате актуални, надеждни източници, вместо която и да е единична цифра.
Алтернативни консенсусни дизайни като proof of stake защитават някои други мрежи с далеч по-малко енергия, като използват икономически залог вместо изчисления. Те включват различни допускания и компромиси, а справедливото им сравняване е тема сама по себе си. Конкретно за Bitcoin proof of work остава механизмът, а неговата сигурност и график на емисия са свързани с него.