Блокчейн

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

Блокова верига или блокчейн (транслитерация от английски: 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]

Приложение в криптовалутите[редактиране | редактиране на кода]

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

Tранзакция[редактиране | редактиране на кода]

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

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

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

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

Процес на копаене[редактиране | редактиране на кода]

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

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

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

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

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

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

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

Възнаграждение[редактиране | редактиране на кода]

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

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

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

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

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

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

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

Критики[редактиране | редактиране на кода]

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

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

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

Предимства[редактиране | редактиране на кода]

Децентрализацията на системата дава предимство пред централизираните услуги с възможността си да преодолява големи хакерски атаки като DDoS, DoS или кражба на лична информация. Все пак винаги има опасност някой клиент да има пробив в сигурността и да бъде подложен на индивидуална атака, но това в общия случай не застрашава цялата мрежа. В такъв случай разработчиците може да приложат бърз „patch“, но ако не отреагират достатъчно бързо, може да се премине към по-стара версия, която да не съдържа опасния код. Ако и това не е възможно, работата на софтуера трябва да се спре и да се прекрати „daemon“, ако има такъв работещ. В достатъчно голяма мрежа, която работи с отворен код, поемането на контрола над блокчейн от страна на един индивид или една организация е невъзможно. Отвореният код и свободните за четене транзакции без закачени към тях лични данни осигуряват прозрачност, защита и свобода за потребителя.[15] Има системи, които позволяват „скрити транзакции“, като монеро.

Източници[редактиране | редактиране на кода]

  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). //
  6. MedRec: Medical Data Management on the Blockchain. // 19 септември 2016.
  7. а б coinwisdom.bg
  8. historyofbitcoin.org
  9. explorer.bitcoin.com
  10. cloudblogs.microsoft.com
  11. www.coindesk.com
  12. Blockchain voting: Can it help secure our elections?. // zdnet.com. Посетен на 18 септември 2018. (на английски)
  13. technews.bg
  14. hackernoon.com
  15. www.aciworldwide.com

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