Дата на публикуване: 23.02.2014
Макар че сигурно повечето са чували за електронен подпис, малцина разбират как точно работи той. Все пак, всички му се доверяват, защото Държавата е казала, че може да му се доверят (тъжно, тъжно). Тук ще се опитаме да обясним биткойн от гледна точка на електронния подпис и ще разясним не само как работи той, но и как работи самият електронен подпис. Преди да преминем към това, нека повторим основните свойства на биткойн. Ако не ги разбирате, може да потърсите техните отговори в останалите статии в сайта ни, като най-добре започнете от Какво е Биткойн.
Биткойн в четири отговора
- Какво е Биткойн?
Споделена счетоводна система в интернет за поддръжка на сметки и балансите по тях; - Къде се съхранява тази счетоводна система?
По компютрите на хиляди независими – работещи в конкуренция един спрямо друг – компютри, известни като копачи (miners), както и на компютрите на всеки, който си инсталира пълен биткойн портфейл. - Как притежавам биткойн?
Чрез притежанието на частен ключ, с който може да харчиш баланса по сметката, към която принадлежи този частен ключ. Биткойните не са файлове, ключове, хешове или каквото и да е друго. Валутата биткойн, с малко б, е просто баланс по сметка в счетоводната система Биткойн (с главно Б); - Защо да сме готови да оценяваме единица от тези баланси на стотици долари, а в края на 2013 достигна $1200:
Има много причини (целият сайт е посветен на тях), но ето основните:- биткойн се подчинява на математически, а не политически закони;
- за това достоверността на тази система е по-голяма от всичко познато ни днес;
- броят им е ограничен по безспорен начин;
- Западният свят не се противопоставя, както се очакваше, а интегрира биткойн в настоящата финансова система;
- плащанията с биткойн десетки пъти превишават като функции утвърдилите се с времето разплащания с кредитни карти, paypal, кеш и т.н.
Нормално е тези отговори да не ви помагат особено, когато са изказани така наготово. Затова ще се опитам да обясня как се случва всичко чрез аналогия с познати всекиму механизми.
Биткойн е p2p счетоводна система
Сигурно се питате, какво означава дадена система да се намира „в интернет“. Знаем, че интернет позволява само транспорт на информация, а самата информация е записана на самите компютри и сървъри в мрежата… Така и счетоводната книга Биткойн, наречена блок верига (block chain), е записана като файл на всеки компютър, свързан с мрежата Биткойн. По същия начин, всеизвестната P2P торент-мрежа съхранява филмите в нея по отделните компютри на участниците, а потребителите разменят тази информация посредством торент програми като uTorrent и BitTorrent.
За разлика от торентите компютрите от биткойн мрежата поддържат и споделят само един, но много голям, „филм“ помежду си. Този „филм“ е блок-веригата и е вече доста голям – над 20 GB, защото той съдържа всички транзакции, случили се някога в Биткойн. Биткойн портфейлите съответстват на торент програмите, защото чрез тях, ние обменяме информация (или по-скоро извършваме плащания) в биткойн веригата.
В статията Значение на копането в биткойн обяснихме как и защо копачите са заинтересовани да поддържат единна версия на блок веригата (което е гениално решение само по себе си). Сега нека видим какво представлява тази блок верига и как се извършват плащания в нея. За целта ще е най-удобно да разгледаме принципите на електронния подпис, който е в основата и на традиционната банкова система, и как точно Сатоши Накамото е приложил магията на криптографията в Биткойн.
Електронен подпис
Как се установява днес в България силата на дадено волеизявление? Ако вземате заем или продавате апартамент, вие трябва да подпишете договор, удостоверен от нотариус, че се задължавате да изплащате кредита за в бъдеще или че сте съгласни собствеността ви над апартамента да се прехвърли на името на купувача в Имотния регистър, поддържан от Агенцията по вписванията.
Запитвали ли сте се защо е необходим нотариус? Причината е, че ръкописният подпис сам по себе си е лесен за подправяне и нотариусът е (специален и признат от държавата) свидетел на това, че действително вие сте положили вашия подпис под съответния договор.
По-развитите страни като Естония са елиминирали нуждата от нотариус за повечето имотни сделки в държавата посредством електронни регистри, приемащи електронни подписи на собствениците на имуществото в тези регистри. Всеки притежател на паспорт в Естония има вграден в него чип, с който може електронно да подписва и с който може да продаде кола, жилище, да гласува и какво ли още не – всичко по по интернет. (Ако ви е интересно, вижте: Digital signature in Estonia)
Системата работи, защото електронният подпис е инструмент на Криптографията и не може да бъде подправен с днешното ниво на изчислителна мощ. Транзакциите в Биткойн също се извършват посредством електронен подпис от собствениците на сметките…
Да вземем за пример друг аналог. Замислете се какво се случва, когато заплащате стока на цена 10 лв с VISA карта в някой магазин. Вкарвате картата си в устройството, набирате четири-цифрения си код (нещо като подпис) и централният компютър на VISA сравнява кода ви (подписа) с оригинала, който е записан при него. Ако има съвпадение, намалява в своята база данни (регистър) баланса на вашата сметка с 10 лв и заверява сметката на магазина с 9.70 лв (останалите 30 стотинки такса се разпределят по сметките на visa и банката-издател).
Същото е и с Биткойн, само че системата, която прави проверката на подписа, не е централна като сървърът на visa, а се поддържа от хиляди компютри. Така, когато изпращате биткойни на някой, вие подписвате с вашия частен ключ съобщение от рода на „Send 1 bitcoin from ADDRESS_1 to ADDRESS_2“. Излъчвате това съобщение в Биткойн мрежата, хилядите независими един от друг компютри копачи проверяват, дали това съобщение действително е подписано с частния ключ на address_1 и дали address_1 разполага с наличния баланс, за да покрие плащането. Ако да, намаляват баланса на address_1 с 1 биткойн и повишават баланса на address_2 с 1 биткойн. Когато тази транзакция е „заверена“ посредством консенсус измежду всички участници в мрежата, тя се смята за практически невъзможно да бъде променена. С други думи, тази транзакция е отразена в локалните версии на блок-веригата в повече от половината компютри, поддържащи Биткойн мрежата.
Подпис с публичен ключ
Това вече трябва да ви е достатъчно като обяснение, но може би ще се попитате „Как така копачите знаят, че частният ключ, с който съм подписал горното нареждане, е ключът за моя адрес, след като виждат само публичния ми адрес, но не и частния ключ за него.“
В това се състои магията на областта от криптографията, известна като Public-key cryptography, и ето всичко, което ви е необходимо да знаете за нея:
Всеки може да създаде двойка ключове: публичен и частен, които имат следното математическо свойство. Ако шифрирам даден текст с частния ми ключ, има математическа формула, с която еднозначно може да се докаже, че полученият шифър (или хеш) отговаря действително на оригиналния текст, публичния ключ и иначе неизвестния частен ключ.
Прочетете последното изречение отново. Звучи невъзможно, но е. Някои считат криптографията за магия – и тя донякъде е (само, че магия на математиката). Тя само до преди 30-40 години е била забранена за използване в много развити държави, но интернет и нуждата за сигурни комуникации са я наложили да бъде достъпна за всички.
Ако сте заинтересовани как става тази магия, може да прочетете тази статия, но ще ви трябват известни математически познания, за да вникнете в детайлите.
Сега, с тези принципи, може лесно да обясним често поставяните въпроси относно биткойн:
Как „притежавам“ биткойн?
За да притежавате биткойн, трябва да имате сметка в публичната счетоводна книга, известна като блокчейн. Такава сметка може да си отворите лесно с всеки безплатен Биткойн портфейл или дори офлайн, напечатан на хартия книжен портфейл. Биткойн сметката се състои от двойка низове от букви и числа – единият е вашият публичен адрес, другият е частен ключ за него. Тези два низа са създадени така, че с тях да може да работи системата за подписи, ползвана от Биткойн.
Вземате си публичния адрес и намирате някой, който има и иска да ви продаде биткойни (най-сигурният, евтин и лесен начин за закупуване на биткойн в България е чрез сайта https://crypto.bg). Давате му лева (в кеш или банка) и му давате публичния си адрес, с молба да ви пусне биткойни към него – нека за леснота го обозначим като АДРЕС. Продавачът ползва своя портфейл, с който дефакто подписва волеизявление „Изпратете Х биткойна от моя адрес АБВ на АДРЕС“ и го пуска заедно с получения подпис/хеш в мрежата на биткойн. Как го пуска? Като натисне бутона Send в програмата, която ползва за биткойн портфейл, а тя на свои ред излъчи тази информация (известна като биткойн транзакция) към другите портфейли в мрежата, свързани с нея.
Тази информация се разпространява светкавично в Биткойн мрежата посредством интернет и хилядите свързани към нея машини. Всяка една машина, която получи тази транзакция, проверява първо, дали подписът в нея съответства на текста и на публичния адрес АБВ. Проверява също, дали този адрес има понe Х биткойна, за да може да изпрати толкова. Правят се още доста (около 20-ина) проверки и ако всичко е наред, портфейлът предава транзакцията нататък. Необходимото време, за да се разпространи една транзакция в над 90% от биткойн мрежата, е по-малко от секунда.
Сега идва ред на биткойн копачите, които са доста мощни машинки, да излъчат победител в едно състезание по смятане. Излъчва се победител на средно всеки 10 минути. Победителят включва всички транзакции, излъчени в мрежата през тези 10 минути, в един блок от данни, който го „закача“ към блок-веригата. Ето как и защо тя расте.
Какво означава да копая биткойн
Другият начин да се сдобиете с биткойн, освен да го купите, е да го „изкопаете“ (може да го получите и срещу няколко клика от така наречените фосети). Всеки копач като почне да прави нов блок от транзакции, слага като първа транзакция такава, с която захранва с 25 биткойна някоя своя сметка (Тази транзакция е известна като coinbase). Ако излезе късметлия и той реши първи задачата в мрежата, тази транзакция от 25 биткойна (които не идват от никъде) влиза в блок веригата и по този начин копачът става с 25 биткойна по-богат. Това е и бизнесът на „биткойн копаенето“ – инвестиция в хардуер, който се включва в Биткойн системата, и с който се състезавате с другите копачи да „решавате блокове“. Как става в подробности, е описано в статията Механика на биткойн копаенето.
Надявам се да съм успял в опита си да обясня на разбираем език как всъщност работи Биткойн. Дори и да ви е все още мъгляво, не се отчайвайте – биткойн е толкова значима иновация, че не може да очакваме всеки с едно прочитане да я разбере. Не се колебайте да споделите в коментарите отдолу или темата във форума всичко, което не ви е ясно.