Какво е доказателство за работа (PoW)?
Начало
Статии
Какво е доказателство за работа (PoW)?

Какво е доказателство за работа (PoW)?

Напреднал
Публикувано Dec 6, 2018Актуализирано Apr 18, 2024
10m

Ключови изводи

  • Доказателството за работа (PoW) е консенсусен механизъм, създаден за предотвратяване на двойно харчене в системи за цифрови разплащания.

  • PoW е ключова част от процеса на копаене, който включва добавяне на нови блокове от трансакции към блокчейна и създаване на нови единици криптовалута.

  • Биткойн и много други криптовалути използват PoW като метод за защита на своята блокчейн мрежа и данни.

Въведение

Накратко, доказателството за работа (PoW) е механизъм, създаден за предотвратяване на двойното харчене в системи за цифрови разплащания. Биткойн и много други криптовалути използват PoW като метод за защита на своята блокчейн мрежа и данни. Такива механизми често се наричат консенсусни алгоритми или консенсусни механизми, тъй като включват множество страни, постигащи консенсус, без да е необходимо да се доверяват една на друга.

Доказателството за работа беше първият консенсусен алгоритъм, който се появи, и остава един от най-важните заедно с доказателството за залог (PoS). PoW беше представен от Сатоши Накамото в бялата книга за Биткойн от 2008 г., но самата технология беше замислена много преди това.

HashCash на Адам Бек е ранен пример за алгоритъм за доказателство за работа в дните преди криптовалутите. Като изисква от подателите да извършат малко количество изчисления, преди да изпратят имейл, получателите биха могли да смекчат спама. Това изчисление не би струвало на практика нищо за легитимен подател, но бързо се оказва много работа за някой, който изпраща имейли масово.

Какво е двойно харчене?

Двойното харчене възниква, когато едни и същи средства се изразходват повече от веднъж. Терминът се използва почти изключително в контекста на дигиталните пари – в края на краищата, ще ви е трудно да похарчите едни и същи физически пари два пъти. 

Когато плащате за кафе днес, вие предавате пари в брой на касиер, който вероятно ги заключва в каса. Не можете да отидете до кафенето отсреща и да платите още едно кафе със същата сметка. При дигиталните парични системи обаче има възможност да го направите. 

Със сигурност се е случвало да дублирате компютърен файл, като използвате командите за копиране и поставяне. Също така е лесно да изпратите един и същ файл по имейл до десетки хора. Тъй като дигиталните пари са само данни, трябва да попречите на хората да харчат двойно, т.е. да копират и харчат едни и същи единици на различни места. Система за цифрови плащания, която не успява да предотврати двойното харчене, ще се срине за нула време.

За по-задълбочен поглед върху двойното харчене вижте Обяснение на двойното харчене.

Защо е необходимо доказателството за работа?

Ако сте прочели статията ни за блокчейн технология, ще знаете, че потребителите на криптовалута непрекъснато излъчват трансакции към мрежата. Тези трансакции обаче не се считат за валидни веднага. Това се случва само когато бъдат потвърдени и добавени към блокчейна.

Биткойн блокчейнът, например, работи като публична база данни за трансакции (регистър), която всеки потребител може да види. Представете си го така: вие и трима приятели имате бележник, за да проследявате вашите биткойн трансакции. Всеки път, когато някой от вас иска да извърши прехвърляне на стойност, вие го записвате:

Алис плаща на Боб 5 BTC; Боб плаща на Карол 2 BTC и т.н.

Но всеки път, когато правите трансакция, вие се позовавате на трансакцията, от която идват средствата. Така че, ако Боб плащаше на Карол с 2 BT, записът всъщност щеше да изглежда така: 

Боб плаща на Карол 2 BTC, които са дошли от тази по-ранна трансакция с Алис.

Сега имаме начин да проследяваме единиците BTC. Ако Боб се опита да направи друга трансакция, използвайки същите 2 BTC, които току-що изпрати на Карол, всички ще разберат веднага. Групата няма да позволи на трансакцията да бъде добавена към бележника, защото тези 2 BTC вече са изразходвани.

Сега това може да работи добре в малка група. Всички се познават, така че вероятно ще се споразумеят кой от приятелите трябва да добави трансакции в бележника. Ами ако искаме група от 10 000 участници? Идеята за бележника не се мащабира добре, защото никой не иска да се довери на непознат да я управлява.

Тук идва доказателството за работа. То гарантира, че потребителите не харчат пари, които нямат право да харчат. Използвайки комбинация от теория на игрите и криптография, PoW алгоритъмът позволява на всеки да актуализира блокчейна според правилата на системата.

Как работи PoW?

Представете си, че нашият бележник от примера по-горе е блокчейнът. Но ние не добавяме трансакциите една по една – вместо това ги събираме в блокове. Обявяваме трансакциите в мрежата, след което потребителите, създаващи блок, ще ги включат в кандидат-блок. Трансакциите ще се считат за валидни само след като техният кандидат-блок стане потвърден блок, което означава, че е добавен към базата данни на блокчейна.

Процесът на валидиране на трансакциите и добавяне на нови блокове се нарича копаене. Това е скъпо и трудно, но може да бъде и ползотворно. Блок наградата се състои от такси за трансакции от потребители и чисто нови биткойни, създадени от протокола. 

Механизмът за доказателство за работа изисква копач (потребителят, създаващ блока) да инвестира ресурси като електричество и изчислителна мощност, за да хешира данните на своя кандидат-блок, докато се намери решение на пъзела.

Хеширането на данните на блока означава преминаването им през функция за хеширане, за да се генерира блок хеш. Блок хешът работи като „пръстов отпечатък“ – той е самоличност за вашите входни данни и е уникален за всеки блок.

С други думи, копачът трябва да проверява и събира висящи трансакции, да ги организира в кандидат-блок и да предаде данните на блока през хешираща функция, за да създаде валиден хеш. Ако успее да намери валиден хеш към своя кандидат-блок, той го излъчва в мрежата, добавя блока към блокчейна и събира наградите за копаене.

Когато копач излъчва своя кандидат блок и хеш към мрежата, други участници в мрежата ще повторят процеса на хеширане, за да проверят дали резултатът наистина е валиден. 

Въпреки че са необходими безброй опити за хеширане, за да се намери валиден хеш, за всеки е тривиално да потвърди, че генерираният хеш е правилен. Те просто трябва да изпратят едни и същи входни данни (блокови данни) чрез хеш функцията и да проверят дали изходът е същият.

В доказателството за работа трябва да предоставите данни, чийто хеш отговаря на определени условия. Но не знаете как да стигнете до там. Единствената ви възможност е да прехвърлите данните си през хеш функция и да проверите дали отговарят на условията. Ако не стане, ще трябва леко да промените данните си, за да получите различен хеш. Промяната на дори един знак във вашите данни ще доведе до напълно различен резултат, така че няма начин да се предвиди какъв може да бъде изходът.

В резултат на това, ако искате да създадете блок, играете игра на отгатване. Обикновено приемате информация за всички трансакции, които искате да добавите, и някои други важни данни, след което хеширате всичко заедно. Но тъй като вашият набор от данни няма да се промени, трябва да добавите част от информация, която е променлива. В противен случай винаги ще получавате същия хеш като изход. Тези променливи данни наричаме nonce. Това е число, което ще променяте при всеки опит, така че всеки път получавате различен хеш.

Накратко, копаенето е процес на събиране на блокчейн данни и хеширането им заедно с еднократен номер, докато не намерите конкретен хеш. Ако намерите хеш, който отговаря на условията, определени от протокола, вие получавате правото да излъчвате новия блок към мрежата. В този момент другите участници в мрежата актуализират своите блокчейни, за да включат новия блок.

За основните криптовалути днес тези условия е много трудно да бъдат удовлетворени. Колкото по-висок е хешрейтът в мрежата, толкова по-трудно е да се намери валиден хеш. Това се прави, за да се гарантира, че блоковете няма да бъдат намерени твърде бързо.

Както можете да си представите, опитът да отгатнете огромни количества хешове може да струва скъпо на вашия компютър. Вие губите изчислителни цикли и електричество. Но протоколът ще ви възнагради с криптовалута, ако намерите валиден хеш.

Нека обобщим какво знаем досега:

  • Копаенето е трудно и скъпо, но осигурява сигурност на мрежата.

  • Копачите, които успеят да произведат валиден блок, се възнаграждават с новоиздадени криптовалути и такси за трансакции.

  • Генерирането на валиден хеш отнема време, но други потребители могат лесно да проверят неговата валидност, като повторят процеса на хеширане.

Дотук добре. Но какво ще стане, ако се опитате да измамите? Какво ви пречи да поставите куп измамни трансакции в блока и да създадете валиден хеш?

Тук се намесва криптографията с публичен ключ. Няма да навлизаме в дълбочина в тази статия, но вижте Какво е криптография с публичен ключ? за изчерпателен поглед върху това. Накратко, има някои хитри криптографски трикове, които позволяват на всеки потребител да провери дали някой има право да премести средствата, които се опитват да похарчат.

Когато създавате трансакция, вие я подписвате. Всеки в мрежата може да сравни вашия подпис с вашия публичен ключ и да провери дали съвпадат. Те също така ще проверят дали действително можете да изразходвате средствата си и дали сумата на вашите входове е по-висока от сумата на вашите изходи (т.е. че не харчите повече, отколкото имате).

Всеки блок, който включва невалидна трансакция, ще бъде автоматично отхвърлен от мрежата. За вас е скъпо дори да се опитате да мамите. Ще губите собствените си ресурси без никаква награда.

В това се крие красотата на доказателството за работа: тя прави маменето скъпо начинание и е изгодно да действате честно. Всеки рационален копач ще търси възвръщаемост на инвестицията си, така че може да се очаква от него да се държи по начин, който е по-вероятно да донесе приходи.

Доказателство за работа (PoW) срещу доказателство за залог (PoS)

Има много консенсусни алгоритми освен PoW, но един от най-популярните е доказателство за залог (PoS). Концепцията датира от 2011 г. и е внедрена в Ethereum и няколко други протокола.

В системите с доказателство за залог копачите се заменят с валидатори. Няма участие в копаене и няма състезание за отгатване на хешове. Вместо това потребителите се избират на случаен принцип – ако бъдат избрани, те трябва да предложат (или да „изсекат“) блок. Ако блокът е валиден, те ще получат награда, съставена от таксите от трансакциите на блока.

Все пак не може да бъде избран всеки потребител – протоколът ги избира въз основа на редица фактори. За да отговарят на условията, участниците трябва да заключат залог, който е предварително определена сума от нативната валута на блокчейна. Залогът работи като гаранция: точно както обвиняемите влагат голяма сума пари, за да ги демотивират от пропускане на процеса, валидаторите заключват залог, за да демотивират измамата. Ако действат нечестно, техният залог (или част от него) ще бъде взет.

Доказателството за залог има някои предимства пред доказателството за работа. Най-забележителното е по-малкият въглероден отпечатък – тъй като в PoS няма нужда от ферми за копаене с висока мощност, консумираната електроенергия е само част от тази, консумирана при PoW. 

Въпреки това, PoS не е подкрепен от същия исторически успех като PoW. Въпреки че може да се възприеме като разточително, копаенето е единственият консенсусен алгоритъм, който е тестван в битки повече от десетилетие. От момента на стартирането си, PoW на Биткойн е осигурило трансакции на стойност трилиони долари. За да се каже със сигурност дали PoS може да се конкурира със сигурността му, стейкингът трябва да бъде правилно тестван дългосрочно.

Заключителни мисли

Доказателството за работа беше оригиналното решение на проблема с двойното харчене и се оказа надеждно и сигурно. Биткойн доказа, че не се нуждаем от централизирани субекти, за да предотвратим двойното изразходване на едни и същи средства. С умно използване на криптография, хеш функции и теория на игрите, участниците в децентрализирана среда могат да се споразумеят за състоянието на финансова база данни.

Допълнителни статии

Отказ от отговорност: Това съдържание ви се представя на база „както е“ само за обща информация и образователни цели, без твърдения или гаранция от какъвто и да е вид. Не трябва да се тълкува като финансов, правен или друг професионален съвет, нито има за цел да препоръча покупката на конкретен продукт или услуга. Трябва да потърсите собствен съвет от подходящи професионални съветници. Когато статията е предоставена от сътрудник трета страна, имайте предвид, че тези изразени мнения принадлежат на сътрудника трета страна и не отразяват непременно тези на Binance Academy. Моля, прочетете нашия пълен отказ от отговорност тук за повече подробности. Цените на цифровите активи могат да бъдат нестабилни. Стойността на вашата инвестиция може да намалее или да се повиши и може да не си върнете инвестираната сума. Вие носите цялата отговорност за вашите инвестиционни решения и Binance Academy не носи отговорност за каквито и да било загуби, които може да понесете. Този материал не трябва да се тълкува като финансов, правен или друг професионален съвет. За повече информация вижте нашите Условия за ползване и Предупреждението за риск.