Блокова верига или блокчейн (транслитерация от английски: blockchain, получено от block (на български: блок) и chain (на български: верига)) е метод за съхранение на информация в компютърна мрежа, който представлява непрекъснато растящ списък от компютърни записи, наречени „блокове“, свързани помежду си и кодирани криптографски.[1]

Блокчейн илюстрация

Всеки „блок“ съдържа информация за предходния „блок“ и е удостоверен за време. Това осигурява хронологична цялост („integrity“) на веригата назад до първия „блок“. Тази технология е замислена като гарантираща сигурност чрез самия си дизайн, защото не позволява модифициране на данните. Така в нея могат да се записват трансакции между двама участници по начин, който е устойчив и подлежи на проверка.[2] Типично блоковата верига се съхранява в мрежата в разпределен вид (с физически копия върху отделни компютри) и не съществува едно-единствено „главно копие“. Участниците в мрежата са равноправни (peer to peer) и спазват определен протокол за валидиране на новите „блокове“. Веднъж валидиран и записан, никой „блок“ не може да бъде променян, без да се променят всички следващи го „блокове“.

Концепцията е родена от разпределената база данни в биткойн,[3] но може да се прилага и в други случаи на удостоверените услуги, като проверка на самоличност,[4] различни събития, медицински картони[5][6] и др.

ИсторияРедактиране

31 октомври 2008 г. – Публикувана е „бяла книга“ (на английски: white paper), описваща работата на системата биткойн. В нея се съдържа първото детайлно описание на блокчейн. Публикувана е от Сатоши Накамото. По-късно се разбира, че това потребителско име най-вероятно е псевдоним.

3 януари 2009 г. – „Изкопан“ е първият „блок“, наречен „генезис блок“, който е част от първия блокчейн в света и това дава началото и на първата криптовалута, наречена биткойн.[7]

12 януари 2009 г. – Направена е първата транзакция, която ползва блокчейн технология, чрез биткойн.

5 октомври 2009 г. – Установен е първият обменен курс за криптовалута, ползваща блокчейн. Използвано е уравнение, което включва стойността на електричеството, нужно на компютър да генерира биткойни.[8]

Приложение в криптовалутитеРедактиране

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

ТранзакцияРедактиране

„Транзакция“ в блокчейн технологията се състои от няколко главни части.[3]

  • „Хеш“ – Цялата транзакция бива събрана в един низ. Използва се хеш-функция за това събиране. Така транзакцията получава уникален код, който не може да се дублира и може да бъде разпозната по него. Пример за хеш на транзакция, записана в блокчейна на Биткойн: c96086642593229de093e65a013b6d37932e17ec9f45da21a2d18f903cdd5d84[9]
  • „Входове“ – Адрес или адреси, от които е получена сумата или сумите, използвани в транзакцията.
  • „Изходи“ – Адрес или адреси, към които е пратена сумата или сумите, използвани в транзакцията.
  • „Електронен подпис“ (на английски: Digital signature) – Създаден е от частния ключ на изпращача или изпращачите. Чрез него се доказва, че адресът или адресите им принадлежат, и че те са собствениците на изпратените количества.
  • „Такса“ – Количество, пратено към „копача“, който е прибавил транзакцията в „блок“.

„Адрес“ представлява публичен ключ и не бива да се бърка с IP адрес.[3]

Не е задължително да има само един изпращач или един получател в една транзакция.[3]

Процес на копаенеРедактиране

„Копачът“ в блокчейн технологията се грижи за потвърждаването на транзакциите и тяхното организиране във времето.[3]

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

Дигитален подпис“ (на английски: Digital signature) е математически създаден и е изключително труден за фалшифициране, защото изисква фалшификаторът да държи частния ключ на изпращача.

Ако транзакцията е валидна, „копачът“ я записва в така наречения „блок“, заедно с други получени и валидни транзакции.

След това се прибавя към „nonce“ стойността, тя е число което може да започне от 0 и да се прибавя 1 към него всеки път, колкото пъти е нужно. Всички транзакции биват събрани заедно с тази стойност и хешът на предходния блок и в случаят на Биткойн се минават през SHA-256 алгоритъм, така се получава хешът на блока. Когато хешът спази изискване за определен брой нули в началото, се преминава напред, ако не се спази отново се прибавя към „nonce“ стойността и се създава нов хеш от всичко. При неспазване на изискването и разпространяване на блока, останалите участници в мрежата няма да го приемат за валиден и ще бъде игнориран.

Този „блок“, ако е валиден се прибавя към блокчейна след последния „изкопан блок“. Така „копачът“ организира транзакциите във времето, тъй като без „блокове“ подред няма как потребител да е сигурен, че в Peer-to-peer (P2P) компютърна мрежа те ще пристигнат в определен ред.

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

Всяка криптовалута може да има различен алгоритъм за „копаене“, но основите са сходни.

ВъзнаграждениеРедактиране

„Копач“ бива наричан всеки, който създава „блокове“. За всеки валиден „блок“, който се създава или се „изкопава“, има автоматично възнаграждение от системата с криптовалутата, която се „копае“. Това възнаграждение е възможно, защото „копачът“ има позволението при създаване на валиден „блок“ да създаде транзакция към своя адрес без изпращач с определено количество позволено спрямо общия брой на предходните изкопани блокове в цялата мрежа, това количество намаля колкото повече стават блоковете с времето.[3]

За да се създаде „блок“, освен да се прибавят валидни транзакции, трябва и да се реши даден математически проблем.

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

Включат ли се повече „копачи“, системата се настройва сама така, че изчисленията да стават по-трудни за всички. Целта е да може да се разпредели наградата и да се избегне случай, където един „копач“ с много машини да изкопае всичката криптовалута за кратко време. Това би довело до получаване на пълен контрол над системата от този един „копач“ и ще се изгуби децентрализацията.[7][10]

Публични и частни ключовеРедактиране

Всеки „ключ“ се генерира от софтуера на изпращача и се записва на устройството му. След това се използва отново при всяко ново изпращане или получаване на криптовалутата. Потребителят може да реши да генерира нови частни и публични ключове по всяко време и да използва тях. Потребителят може да трие ключове свободно, но ако към някой от тях е имало прикачено количество криптовалута, тя също ще бъде изгубена. Частният ключ е изключително труден за декодиране от публичния ключ чрез „класически компютри“ поради математическите му свойства. На теория само добре развит квантов компютър ще може да наруши тази сигурност. Потенциални решения на този проблем биват изследвани на световен мащаб, тъй като засяга абсолютно всеки софтуер, ползващ криптиране.[11]

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

Бъдещи приложенияРедактиране

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

Едно от предложенията е прилагане при гласуване. Тъй като дизайнът на системата не позволява променянето на стари записи, стига да има достатъчно голяма и разпределена мрежа и да няма разделяне (на английски: forking) на мрежата, е възможно да се провежда гласуване по важни въпроси с гаранция, че гласовете не са били манипулирани в базата данни в миналото. Прозрачността на „отворената блокчейн мрежа“ и отвореният код на софтуера затвърждават сигурността на гласуващия, че процесът се извършва точно както е казано. Това е само теоретично.[12]

КритикиРедактиране

Технологията е критикувана от своето създаване, както и след много години на ползване, заради липсата на практичност.[13]

Според критикуващите, енергията използвана за поддръжка на системата чрез „копаене“, базирано на „доказателство за извършена работа“ (на английски: Proof-of-Work, PoW), е твърде много. През 2017 г. биткойн „копаене“ достига 35 тераватчаса (TWh) годишно, което е установено като приблизителната консумация на цяла страна като България.[14]

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

Компютърна сигурностРедактиране

Винаги има опасност някой клиент да има пробив в сигурността и да бъде подложен на индивидуална атака, но това в общия случай не застрашава цялата мрежа, ако има достатъчно различни имплементации на клиенти в мрежата с достатъчно различни компютри. В такъв случай разработчиците може да приложат бърз „patch“,[16] но ако не отреагират достатъчно бързо, може да се премине към по-стара версия, която да не съдържа опасния код. Ако и това не е възможно, работата на софтуера трябва да се спре и да се прекрати „daemon“, ако има такъв работещ.[17]

ПредимстваРедактиране

В достатъчно голяма мрежа, която работи с отворен код, поемането на контрола над блокчейн от страна на един индивид или една организация е малко вероятно, но съществува нещо наречено „sybil attack“, което позволява при добра координация и в правилното време да се манипулира мрежата.[18]

Отвореният код и свободните за четене транзакции без закачени към тях лични данни осигуряват прозрачност, защита и свобода за потребителя.[19] Има системи, които позволяват „скрити трансакции“, като монеро.

ИзточнициРедактиране

  1. Narayanan, Arvind, Bonneau, Joseph, Felten, Edward. Bitcoin and cryptocurrency technologies: a comprehensive introduction. Princeton, Princeton University Press, 2016. ISBN 978-0-691-17169-2.
  2. Iansiti, Marco. The Truth About Blockchain. // Harvard Business Review. Харвардски университет, януари 2017. Посетен на 17 януари 2017. The technology at the heart of bitcoin and other virtual currencies, blockchain is an open, distributed ledger that can record transactions between two parties efficiently and in a verifiable and permanent way.
  3. а б в г д е ж bitcoin.com
  4. Thompson, Kirsten and Eriq Yu. Estonian Blockchain-Based ID Card Security Flaw Raises Issues About Identity. // 28 септември 2017. Посетен на 3 октомври 2017. (на английски)
  5. Blockchains and electronic health records (PDF). // mcdonnell.mit.edu. Архив на оригинала от 2016-12-25 в Wayback Machine.
  6. MedRec: Medical Data Management on the Blockchain. // PubPub. 19 септември 2016.
  7. а б coinwisdom.bg, архив на оригинала от 30 август 2017, https://web.archive.org/web/20170830191822/http://coinwisdom.bg/kak-raboti-bitkoin/, посетен на 2017-08-30 
  8. historyofbitcoin.org, архив на оригинала от 9 януари 2016, https://web.archive.org/web/20160109155827/http://historyofbitcoin.org/, посетен на 2017-08-29 
  9. explorer.bitcoin.com
  10. www.coindesk.com
  11. cloudblogs.microsoft.com
  12. Blockchain voting: Can it help secure our elections?. // zdnet.com. Посетен на 18 септември 2018. (на английски)
  13. Bitcoin’s 3 Fatal Design Flaws. // positivemoney. Посетен на 23 декември 2021. (на английски)
  14. technews.bg
  15. hackernoon.com
  16. www.dnsstuff.com
  17. What are Daemons and How to Use Them | Liquid Web. // www.liquidweb.com. Посетен на 13 януари 2022.
  18. Sybil Attack - GeeksforGeeks. // www.geeksforgeeks.org. Посетен на 13 януари 2022.
  19. www.aciworldwide.com

Външни препраткиРедактиране