Биткойн като електронен подпис

Дата на публикуване: 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 биткойна по-богат. Това е и бизнесът на „биткойн копаенето“ – инвестиция в хардуер, който се включва в Биткойн системата, и с който се състезавате с другите копачи да „решавате блокове“. Как става в подробности, е описано в статията Механика на биткойн копаенето.

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

  • abigeil

    Чудесна статия!Мисля, че ми проблесна малко.Разбрах механизма, но искам да попитам:
    Как се определя стойността на биткойнт? И само чрез копачи ли може да се печели?Какъв е рискът тази система да бъде ударена от хакери и да изчезне?

    • St0ky

      1.Биткойн не е обезпечен с физически ресурс (злато сребро и т.н.), но доверието в него и утвърждаването му, като разплащателно средство, влияят на цената. Разбира се, моментната му стойност е силно спекулативна. Каква е реалната така обаче е загадка.
      2.Към текущия момент трудността е толкова висока, че инвестирането в майнинг хардуер от страна на индивидуални копачи е много рисков ход.
      3.Рискове системата да бъде ударена съществуват, но те са технически известни и трудно осъществими (т.н. 51% атака).
      4.Системата ще съществува докато има юзъри, които я поддържат или докато някой не дръпне шалтера на световния Интернет :)

  • Anton Tanev

    1. Биткойн ката платежно средство ли? И да и не. За масовата публика по-скоро не. VISA обработва една транзакция за 4 сек. За колко време мрежата на биткойн обработва една транзакция?
    2. Биткойн добиване чрез копане ли? Категорично не? Няма шанс.
    3. Рискове от 51% атаки има ли? Изглежда, не. Но всъщност да. Добива на биткойни е по система доказване на свършена работа. Работата все повече се прехвърля към специализиран скъп хардуер и се поема от организации и лица с големи възможности. Обработката все повече ще се централизира. От там и риска за подмяна на веригата с транзакции.

    Извода е, че биткойна не е за обикновения потребител. За средно статистическия търговец или потребител идват валути от следващо поколение.

  • Pingback: Често задавани въпроси за Биткойн - Hash.bg()

Optimization WordPress Plugins & Solutions by W3 EDGE