Блокчейн

от Уикипедия, свободната енциклопедия
Блокчейн илюстрация

Блокова верига или блокчейн (транслитерация от английски: 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. Посетен на 2018-02-02.
  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/, посетен на 30 август 2017 
  8. historyofbitcoin.org, архив на оригинала от 9 януари 2016, https://web.archive.org/web/20160109155827/http://historyofbitcoin.org/, посетен на 29 август 2017 
  9. explorer.bitcoin.com
  10. www.coindesk.com // Архивиран от оригинала на 2018-09-05. Посетен на 2017-08-30.
  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

Външни препратки[редактиране | редактиране на кода]