Автор: Sovereign Monk | Дата на публикуване: 01/11/22 | Превод: Dimitar Morfov [792139] | Bitcoin 101 Collection
Биткойн - децентрализирана цифрова валута. Преди да се гмурнем в темата за това как работи Биткойн, препоръчвам Ви да прочетете "Какво е Биткойн?". Тази статия дава кратко резюме и обяснение за това какво е Биткойн и за неговата мрежа.
Може би сте чували, че нито едно правителство не я печата, нито една банка не е длъжна да я управлява или контролира, нито да проверява транзакциите с нея. И учудващо е, че дори не знаем кой точно е 'Сатоши', който я е изобретил. Така че трябва да преминем през различни въпроси, за да разберем всичко това (тази статия няма да включва технически подробности на високо ниво, които изискват по-задълбочено обяснително писание).
Нека започнем чрез един пример, при който извършвате транзакции с приятелите си и трябва да следите плащанията.
Да предположим, че сте използвали счетоводна книга, за да следите плащанията си и всяка транзакция с приятелите си Чарли и Боб. Отначало счетоводната книга и задачата за нейното актуализиране се извършват на базата на доверие, но в един момент решавате, че трябва да направите този процес да функционира без доверие. Затова въвеждате 'криптография' или някакъв код, който да балансира и заобикаля този елемент на 'доверие'. Сега вместо да се доверявате на хората, вие възлагате на кода да управлява тази част с доверието вместо вас. Така се появява модел, подобен на този, който използва Биткойн - модел без доверие (не се изисква централен орган или доверие между две страни, които обменят стойност помежду си).
Сатоши създаде първата криптовалута, която и до днес е единствената, която разчита изцяло на децентрализиран модел без доверие. От техническа гледна точка, за да използвате Биткойн, не е необходимо да знаете какво точно се случва във всяка точка на системата, подобно на банковата система, когато използвате банковата си карта, за да извършвате транзакции. Като цифрова разплащателна мрежа, удобството за потребителите зависи главно от приложенията и услугите на повърхностния слой (като мобилни/компютърни приложения за портфейли и др.).
Но с какво Биткойн се различава от банковата система? Гръбнакът на мрежата Биткойн не е централен орган или група хора, избрани от правителството. Това е много интелигентна децентрализирана система за проверка без доверие, използваща математика. Тези елементи на математиката са част от дисциплината на криптографията. Математиката е универсална и не подлежи на промяна от човешки решения. 1+1=2 и това е всеобщо прието, никой не може да го промени.
Нека първо започнем с две неща - счетоводни книги и цифрови подписи.
Ако приемем, че имате четирима приятели, които споделят ресурси, излизат на вечеря или обменят стоки помежду си, проследяването на всяка транзакция между четиримата може да бъде уморително. Представете си, че сте дали на приятеля си Боб 10 евро и сега той ви дължи тези 10 евро. Но вместо да ви върне парите, той моли Чарли да ви плати 10 евро, които Чарли дължи на Боб, или моли Алис да ви плати 10 евро, защото Алис дължи 20 евро на Чарли. Това става объркващо и трудно за проследяване. Затова започвате да водите писмен запис на транзакциите, наречен 'счетоводна книга' (Ledger). Тази книга е отворена за всички и в нея се записват общите транзакции за месеца, а в края на месеца всички вие пресмятате общата сума на платените или дължимите суми и уреждате крайните суми. Така че това следва две основни правила:
- Всеки може да добави транзакция (нов ред) в счетоводната книга.
- А в края на всеки месец трябва да уреждате всички транзакции.
Но проблемът, с който се сблъскваме тук, е как да предотвратим добавянето на фалшиви транзакции (фалшиви редове) в тази счетоводна книга. Как ще попречите на Алис да добави, че "Боб дължи на Алис 50 евро", без Боб да знае или да одобри, че това е вярно или не? Трябва да се доверите, че всички участващи хора ще бъдат честни и ще добавят в нея само истинските транзакции или записи.
За да решим този проблем с доверието, използваме така наречените 'цифрови подписи' (digital signatures), които са базирани на криптографията. Вместо ръчни подписи, цифровите подписи тук трябва да могат да удостоверят, че Боб е видял новодобавената транзакция и я одобрява. Това трябва да става безпроблемно и да е невъзможно някой да фалшифицира подписите.
Но не може ли да се копира цифров подпис? Той е цифров, нали? Не може ли просто да бъде прочетен от компютърна програма, която може да го копира и да създаде абсолютно същата версия? Как се предотвратява фалшифицирането на тези подписи?
Този проблем се решава с помощта на 'публични' и 'частни' ключове. Частният ключ е нещо като секретен ключ. Затова частният ключ трябва да се пази в тайна и да е достъпен само за законния му собственик.
Във физическия свят всички ръчно подписани подписи изглеждат по един и същи начин, независимо от връзката им с действителното съобщение, за което се използват. В цифровия свят цифровите подписи са много по-силни - те са функция на 'съобщението' и 'вашия частен ключ', които заедно променят характеристиките на подписа в зависимост от съобщението. Частният ключ гарантира, че независимо от съобщението, само вие можете да създадете подпис, който съответства на този ключ. А подписът има отразпознаваеми характеристики и частици, които гарантират използването на 'частния ключ' и за кое 'съобщение' е генериран подписът. Така че технически никой не може да копира един от вашите подписи и да го използва за друго съобщение.
Но как да проверим дали това съобщение и подпис са валидни? Тук идва ролята на публичния ключ. Публичният ключ може да бъде генериран само с помощта на частния ключ. Така че той разпознава към кой ключ принадлежи. Затова по време на проверката свързването и използването на 'публичния ключ' със 'съобщението' и 'подписа' дава индикация 'Вярно' или 'Невярно'. 'Вярно' - съобщението и подписът са валидни по отношение на частния ключ, или 'Невярно' - не са валидни по отношение на частния ключ. При криптографската функция, използваща 256 бита, е на практика невъзможно да се копира или генерира един и същ секретен ключ (частен ключ).
Сега знаем, че Алис не може да копира подписа на Боб и да фалшифицира транзакциите без неговото одобрение. Но това, което тя все пак може да направи, е да копира същия ред от съобщението със същия подпис и да го добави в счетоводната книга. За да се реши този проблем, системата трябва да включва 'уникален идентификатор', който да идентифицира тази транзакция. Дори транзакцията да бъде копирана, уникалният идентификатор може да се използва за проверка коя е истинската транзакция.
Така, вече сме решили проблема с легитимността на всяко вписване в счетоводната книга. Но какво ще стане, ако Чарли натрупа много дългове и в края на месеца откаже да плати на когото и да било? Тъй като окончателното разплащане зависи от разплащането в брой. Може би можем да измислим начин да попречим на хората да харчат повече, отколкото имат или получават? Тогава няма да се налага да уреждаме всичко в брой.
- Нека накараме всички да добавят по 50 или 100 евро към касата. Да предположим, че всеки е добавил 100 евро. И така създаваме записи в счетоводната книга, в които се казва - всеки получава 100 евро за харчене.
- Не е позволено да се харчи повече. Тъй като всички са дали по 100 евро, максималната сума, която могат да похарчат, е 100 евро.
Това, което Биткойн въведе благодарение на криптографията, е поддържането на тази счетоводна книга по оптимален начин, с проверка на подписите, без преразход и т.н. По този начин се премахва всякаква зависимост от парите в брой. Тъй като все повече потребители използват тази счетоводна книга, те могат да живеят целия си живот без пари в брой, като използват само тази счетоводна книга. Използвайки терминологията на Биткойн, това ще бъде наричано "Валута на счетоводната книга = биткойн" и дори тя е делима до 100 милионни единици, наречени 'сатошита' (satoshis). Сатошитата са за биткойн това, което са центовете за еврото. 1 биткойн = 100000000 сатошита.
В днешния свят можете да обмените биткойн за долари, евро и т.н. Той работи подобно на обмяната на евро в долари или обратно. Биткойн е собствена независима валута, работеща в собствена 'децентрализирана счетоводна книга', наречена 'Биткойн' мрежа.
Ако Биткойн е децентрализиран, как тогава успява да добавя нови транзакции в своята счетоводна книга без доверие? Не изисква ли поддържането на счетоводната книга централно място или орган, на който да се има доверие?
Биткойн се справя с това, като предоставя на всеки свое лично копие на счетоводната книга. Ако Алиса плати на Боб 100 евро, транзакцията се предава на всички и те актуализират своята счетоводна книга. Но по своята същност това я прави сложна и трудна за управление и кара всички да вярват, че това е истинска транзакция или я записват в един и същи ред. И така, как Биткойн се справя с това толкова ефективно?
Биткойн предлага решение, като въвежда условието за най-много изчислителна работа, вложена във всяка счетоводна книга. Това се нарича 'хеш функция' (Hash Function), която включва изчислителна работа (решаване на математически уравнения) като основа за поддържане на счетоводните книги без конфликти и предпазване от измами. Това също така е известно като концепцията 'доказателство за (свършена) работа' (Proof of Work). Това е сърцето на Биткойн.
С прости думи, 'хеш функцията' е математическо уравнение, което приема всяко съобщение и произвежда низ от битове (случайна група от 0 и 1 - тъй като това е компютърният език). Резултатът често се нарича 'хеш' или 'разбивка'. Изглежда случаен, но не е случаен, тъй като винаги дава един и същ резултат за определена входяща величина. Дори ако промените един символ в съобщението, то ще даде напълно различен резултат. Тези промени в резултата са силно непредсказуеми. А в криптографията е невъзможно да се изчислява в обратна посока. Единственият начин да се намери входящата величина от изходящата величина е чрез 'Познай и провери' (Guess and Check), което изисква огромно количество работа. Биткойн използва нещо, наречено 'SHA-256', което е в основата на много протоколи за сигурност в световен мащаб.
За да се намери правилен хеш, който да се сравни със счетоводната книга, е необходимо да се извърши огромно количество работа, като по този начин се създава терминът 'доказателство за работа'. Връщаме се към примера с четиримата приятели, които използват Биткойн като счетоводна книга. Тя работи чрез разделяне на транзакциите на 'блокове' (по-малки групи от транзакции). Тези блокове пасват заедно със съответния 'хеш', генериран с 'доказателство за работа', и само тогава има валиден блок. Всеки следващ блок съдържа хеша на предишния блок като заглавие (за да се отбележи правилната последователност за тези блокове). И ако промените някой подпис или транзакция в един блок, ще промените целия хеш, изпратен на следващия блок (за заглавието му), а той ще го промени и за следващия блок и т.н. Това ще изисква повторение на цялата работа. Тази верига от блокове се нарича 'блокова верига' или 'блокчейн' (Block-Chain).
Начинът, по който е проектиран Биткойн, позволява на всеки да извършва работата по добавяне на нови блокове и да помага за актуализиране на счетоводната книга. За да възнагради създателите на нови блокове за цялата им работа, Сатоши въведе специална транзакция, която се добавя към счетоводната книга с всеки блок, като дава на работника малко биткойн (например 10 евро за всеки нов блок). Това се нарича 'възнаграждение за блока' (Block Reward). Сатоши умело е включил тази операция, за да накара милиони хора да използват Биткойн и да се конкурират с другите за тази награда (тъй като стойността на Биткойн се увеличава поради използването му). Това прилича повече на лотария, отколкото на формулиран метод за осигуряване на намирането на блокове. И за да бъдат включени транзакциите им в счетоводната книга, всеки плаща на работника малка такса. Тези работници са известни като 'миньори' (Miners). Дизайнът на Биткойн намалява възнаграждението за блока след всеки 210 000 блока (или приблизително на всеки 4 години). С навлизането на все повече и повече потребители целият пазар на възнаграждения се измества само към такси.
Докато всеки поддържа свое собствено копие на блоковете и миньорите работят без прекъсване, опитвайки се да намерят най-добрите решения за хеш функцията, те същевременно актуализират собствената си счетоводна книга. Те предлагат своите счетоводни книги като записи, които трябва да бъдат актуализирани, за да бъдат предложени, а в случай на противоречащи си счетоводни книги (вериги от блокове) за валидна се счита най-дългата верига. Всеки дава предимство на веригата, в която е вложена повече работа. По този начин се премахва всякакъв централен орган и доверието се влага само в 'изчислителната работа'. Ако Чарли се опита да изпрати на Алис грешна информация за блоковете (за да я заблуди), Алис може да я провери, като сравни своята верига, информацията за веригата, изпратена от Чарли, и информацията за веригата, изпратена от други. Така Алис може да отхвърли информацията, изпратена от Чарли. Вероятността Чарли да печели всеки път в лотарията за намиране на блокове е изключително малка (тъй като всички останали също работят, за да добавят своите блокове). Чарли ще трябва да притежава повече от 50% изчислителна мощ от цялата мрежа (51% атака), за да увеличи шансовете си, преди Алиса да разбере, че мами. В този момент Алиса и другите могат да решат да отхвърлят веригата на Чарли и да продължат по надеждна верига, която са следвали. Тъй като все повече миньори (работници) са в мрежата и се конкурират помежду си, мрежата става по-силна. Миньорите, които не печелят от лотарията през по-голямата част от времето, също така осигуряват сигурността на цялата мрежа, като контролират част от общата изчислителна мощност, с която може да се злоупотреби от лош участник в мрежата. Те поддържат мрежата в безопасност.
Биткойн добавя нови блокове приблизително на всеки 10 минути, което създава само един победител в тази лотария на всеки 10 минути. Освен миньорите има и потребители, които просто управляват пълно копие на счетоводната книга и софтуера на Биткойн, който проверява дали блоковете, предоставени от миньорите, следват консенсуса и не включват измамни транзакции. Те се наричат 'възли' (Nodes). Операторите на възли и потребителите са тези, които контролират мрежата. Миньорите са работници, които работят за възлите. Заради малкия размер на блоковете на Биткойн, веригата расте по познат и икономичен начин и по този начин се намалява трудността за навлизане на нови потребители, които искат да добавят още възли, за да поддържат мрежата децентрализирана.
Related Posts
Биткойн не е мръсен: той е радикално зелен
Apr 27, 2023
Зеленият потенциал на Биткойн: потреблението на енергия не е равнозначно на въглеродни емисии
Apr 26, 2023
Какво е Биткойн?
Apr 19, 2023