Дата на публикуване: 15.02.2014
Може би вече сте усетили интуитивно значението на биткойн като леснодостъпно средство за размяна на дигитална собственост. Но вярата ви в него ще бъде затвърдена, само ако разберете как тази размяна става възможнa посредством консенсус от стотици независими един от друг участници в P2P мрежата. Липсва ми добър пример, с който да онагледя значението на това разбиране, но предполагам всеки ще се съгласи, че запознавайки се с механиката на дадено решение и вникване в принципите му на работа, ще допринесе в голяма степен за вярата му в него и способността му да се възползва от това решение. Едно е някой да ви каже, че използването на SSL връзка предотвратява намесата на хакер в комуникацията ви с интернет сайта на вашата банка. Съвсем друго е, ако разбирате принципите на SSL криптирането и така добиете вътрешна сигурност за този вид комуникация.
Статията по-долу (преведена от Escape Velocity – Visions of a freer future) има точно тази цел: да разясни същността на биткойн копането за предотвратяване възможността за „двоен харч“ в системата на биткойн, без да навлиза в техническите детайли за това. Тук ще видите как решението на Сатоши Накамото се базира не на задължения, а на рационален избор от страна на биткойн копачите, чрез който всеки базира решенията и постъпките си воден от собствения си интерес, а не по някакви други причини. Както казваме у нас „Интереса клати феса“ и всички ще се съгласим, че това е най-работещата система за организация, която е известна на човечеството.
Информацията по-долу касае неща, които нямат аналог с нищо известно до сега. За това изисква високо ниво на концентрация от всеки, който иска да вникне в същността му. Четете бавно и осмисляйте всяко изречение. Ще отворим специална тема във форума, посветена на тази статия, в която ще даваме отговор на всеки въпрос, който може да възникне. И се надяваме в скоро време статията заедно с въпросите и отговорите им в темата да образуват едно цяло, което ще спомогне на всеки нов читател да прозре този основен принцип на биткойн. В последващите части от поредицата ще обясним по същия начин другите градивни елементи на Биткойн иновацията с цел да дадем възможност на всеки, който има интерес, да види уникалните промени, които ще се случат много скоро в бъдещето. Обяснението е на Chris Pacia с някои допълнителни бележки от мен. Първоначалният превод е дело на Faraz_Jaka, част от обществото на hash.bg.
Значението на копането в Биткойн
В тази първа част ще разгледаме какво представлява копането на биткойни и как то дава живот на Биткойн мрежата (засега като система за разплащане, по-късно и за много по-яки неща). Имайки предвид, че Биткойн съществува от 2009 година, може да сметнете този процес за даденост; за нещо, в което няма смисъл да се задълбочавате, защото „явно работи“. Но ви съветвам да не подхождате по този начин. След като разберете как работи, светогледът ви по отношение на биткойн ще се обогати по начин, който не мога да ви опиша.
Системата от стимули, която е вградена в биткойн, е шедьовър на иновациите и определено заслужава обстоен преглед и разбиране, за да съумеете да разберете задаващите се промени, който ще променят цивилизацията. Не се притеснявайте – не е нужно да сте компютърен специалист, за да разберете принципа на работа. Биткойн е достатъчно достъпен за всеки.
Генезис
Както знаете, Биткойн е разработен от Satoshi Nakamoto (който и да е той) през 2008 година. Биткойн претендира, че е първата в света децентрализирана цифрова валута. Това не е първата дигитална валута, но е първата, която претендира, че ще реши проблемите, свързани с децентрализацията. Какви са тези проблеми?
Лесно мога да „докажа“, че притежавам баланса от биткойни, съдържащи се в даден публичен адрес, чрез представяне на валиден цифров подпис за този адрес (приемете за момент, че криптографията го прави възможно. Крипрографският подпис има същата функция като ръчния подпис, само че за разлика от него не може да бъде подправен!).
Също така е възможно лесно мога да ви прехвърля тези биткойни от моя адрес към вашия като подпиша един такъв превод (нещо като чек) с моя дигитален подпис. С други думи, подписвам дигитално волеизявление от типа на „прехвърлям този биткойн от адрес Х на адрес У“ и вие може да идете с това подписано волеизявление при всеки и да докажете, че аз съм ви го прехврърлил. Проблемът в случая е, че няма как да сте сигурни, че аз преди това не съм прехвърлил тези биткойни и на друг адрес (който може и да е моя собственост), преди да подпиша прехвърлянето на вас. Тъй като биткойните и подписите, доказващи собственост над тях, са цифрови, те могат да бъдат копирани до безкрайност. Ясно е, че всяка валута, която не може да се справи с този проблем, известен като „двоен харч“, е обречена на хипер инфлация още в първия ден от съществуването си. В статията ни за ябълките и биткойн обяснихме значимостта на решението на проблема, дадено от биткойн, а тук ще обясним как точно това бива постигнато.
Централизираните валутни системи се опитват да решат този проблем, поддържайки централен регистър на всички сделки, които са се случили в тях. Преди да приемете плащане от мен, вие проверявате в съответния централен регистър (например VISA), дали аз вече не се съм трансферирал тези пари на някой друг (по-скоро, дали имам наличен баланс, от който да ви прехвърля). Тази схема работи достатъчно добре, като изключим това, че създава една единствена точка, от която може да се спре работата на цялата система – централизираната фирма, която издава валутата. Правителствата не обичат конкуренция на монопола, който имат за издаване на пари и за тях е лесно да затворят всяка една фирма, представляваща такава конкуенция. Точно това се случи по-рано през 2013 година с компанията „Liberty Reserve„, която имаше над 1 млн. клиенти и беше затворена от САЩ заради „престъпление“, което се изразяваше в даване на възможност за нейните потребители да изпращат пари от точка А до точка Б. Това създава необходимост от появата на цифрова валута, която да е устойчива на подобен вид цензура, и единственото решение е създаването на система, която зависи от достатъчно много на брой точки, затварянето на които едновременно да е непосилно не само за САЩ, а и за ООН, ако щете.
Биткойн решава този проблем с публичен регистър на всички транзакции с биткойн. Всеки участник в системата изтегля и пази копие на този регистър от транзакции. Така например, ако искате да си купите автомобил на цена 100 биткойна, търговецът на автомобили ще поиска да провери в биткойн веригата, дали имате баланс по сметката си, от който да му преведете 100 биткойна. Той може да оперира собствен възел (node), в който да поддържа актулано състояние на всички транзакции, а може да ползва и услугите на сайт като BlockChain.info„ който да го върши вместо него.
На пръв поглед този метод създава повече проблеми, отколкото решава. Как всички милиони потребители биха се споразумели за историята на всяка една транзакция и как биха достигнали до консенсус за всички предходни сделки? Със сигурност ще има много хора, които биха направили всичко възможно, за да изхарчат определена сума без тя да се отрази в този публичен регистър. Стимулът за това би бил доста голям. В горния пример, купувачът на автомобил би желал транзакцията към търговеца да не бъде отразена във всички хиляди други копия на базата от транзакции, така че след време да може да ги похарчи отново. Търговецът на коли пък от своя страна не би ни продал колата, ако нямаше сигурност, че транзакцията, съдържаща превод от сметката на купувача към неговата сметка, ще бъде отразена във всички други копия на биткойн регистъра, защото не би могъл после да ги похарчи.
Този проблем е известен като „Byzantine Generals Problem“ и без неговото разрешаване в Биткойн винаги ще има множество конкуриращи се регистри и фалшиви транзакции.
Едно потенциално решение би било да се даде възможност на потребителите да гласуват за историята на транзакциите и така да се определи коя от тях е валидна, но тук също има множество проблеми. Първо, нищо не би спряло даден хакер да поеме контрол върху хиляди компютри, заразени с вирус, който му дава възможност да ги контролира. Всяка схема, в която даден IP адрес има един глас би била компрометирана твърде лесно в интерес на хакера. И второ, в тази система няма стимул за никой да гласува за транзакции, които не го засягат, а дори да имаше, ако всеки потребител гласува само с един глас, то той би имал интерес да потвърди историята на сделките, която би го облагодетелствала най-много.
Блок верига
Тук идва брилянтното решение на Сатоши Накамото. За да го разберете, първо ще опишем процеса на копаене на биткойни и после ще го анализираме, за да видим как той направлява стимулите в посока, в която се поддържа единна и честна система от транзакции.
Когато за пръв път отворите Биткойн портфейла си, компютърът автоматично се свързва с група други потребители (наречени пиъри), които също имат портфейлния софтуер (става въпрос за десктоп портфейли от типа на Bitcoin-QT, а не на онлайн портфейла ви в BlockChain.info). Всеки път, когато правите транзакция, вашият компютър я излъчва на останалите пиъри, които са свързани в мрежата. При нейното получаване, всеки пиър ще извърши серия от около 20 проверки, за да се увери, че сделката е валидна (включително проверка на цифровия ви подпис, за да се увери, че точно вие, собственикът на изходящия биткойн адрес в транзакцията, сте наредили плащането, а не някой друг) и след това (ако проверките са ок) ще препрати тази транзакция към всички други компютри от биткойн мрежата, с които е свързан. Чрез този процес транзакциите се разпространяват по цялата мрежа, достигайки до всички потребители (в рамките на секунди).
„Майнерите“ (или копачите) са специални пиъри в мрежата, които събират тези транзакции и ги организират в блокове. В ранните дни на Биткойн всеки потребител е бил и копач, но в днешно време копането се е превърнало в доходоносен процес, за който се изисква специален хардуер и софтуер, за да се практикува успешно и ако само пуснете биткойн портфейл на компютъра си, вие няма да можете да копаете с него. След като копачът получи и от своя страна верифицира транзакцията, той я добавя в масив от паметта си заедно с всички други непотвърдени транзакции и така ги събира в блок. Един типичен блок днес съдържа около 200-300 транзакции. Най-важният момент тук е да се има предвид, че всички копачи получават всички сделки, като работят независимо един от друг за създаването на блока. След като копачът създаде валиден блок, той го излъчва в мрежата. Всеки потребител ще провери валидността му и след това ще го добави към своето локално копие на публичната счетоводна книга, наречена – блок верига.
След като копачът създаде валиден блок, той получава възнаграждение за усилията си под формата на новосъздадени биткойни (от тук идва и терминът копаене). Във всеки момент наградата е различна (днес е 25 биткойна) и ще се преполовява на всеки четири години, докато общият брой на създадените биткойни достигне 21 милиона. Освен наградата от 25 биткойна, копачът излъчил валиден блок, ще получи като награда и всички комисиони платени за транзакциите в блока. Така се предвижда, когато някой ден няма награда от новосъздадени биткойни, сумата от комисиони да е достатъчно висока (заради броя транзакции тогава), за да има стимул за копачите да поддържат мрежата – но това е тема на друга статия.
Тук изниква въпросът – ако всеки, който си е инсталирал „копачка“ има право да създаде блок, какво спира копачите да правят собствен блок, с благоприятна за тях история на транзакциите, да го препредават и да създават множество версии на блок веригата? С други думи, какво имаме предвид по-горе, като казваме, че всеки копач се старае да създаде валиден блок, който да излъчи в P2P мрежата.
Концепцията „Proof of Work“
Биткойн протоколът уточнява, че за да се произведе валиден блок, копачът трябва да представи доказателство за изразходване на определено количество процесорна мощ (а оттам и време и пари за ток) за създаването на този блок. На практика това е изискване към копачите да представят решение на сложно математическо уравнение, което може да се намери само чрез генериране на случайни числа и поставянето им в уравнението с надеждата това уравнение да има зададено предварително решение (ще говорим конкретно и в дълбочина за тези механизми във втората част). Трудността на това решение варира така, че да може да се намира от някой от копачите средно на всеки десет минути. (Ако броя на копачите или изчислителната мощ на биткойн мрежата расте, решението на уравнението се затруднява и обратно. Подробности в част 2).
Не знам как да натъртя достатъчно значимостта на този механизъм за proof-of-work (доказателство за работа). Той е проектиран така, че блоковете да бъдат намирани по-бързо колективно, отколкото самостоятелно. С други думи, ако система от компютри (А) има два пъти повече изчислителна мощ от друга система (В), то А ще намира решение два пъти по-бързо от В.
Справяне с наличието на различни версии на блок веригата
Помислете за ситуация, в която се развият две конкуриращи се истории на транзакциите (т.н. „форк“ в блок веригата).
В този случай математическите уравнения, които трябва да бъдат решени, са различни за всяка от двете вериги. Когато се сблъска с подобна ситуация, всеки копач трябва да реши за себе си, върху коя верига ще продължи да работи. В този смисъл може да кажем, че копачите „гласуват“ със своята процесорна мощ за веригата, която смятат за вярна. Погледнато математически, веригата с по-голяма процесорна мощ ще става все по-дълга с времето. Ако верига „А“ има 51% процесорна мощ, а верига „В“ 49%, то „А“ ще решава уравненията по-бързо, в следствие на което ще расте по-бързо от втората с течение на времето.
Всеки копач ще иска да участва в по-дългата верига. Защо? Защото ползвателите на биткойн системата ще предпочитат винаги по-дългия от двата форка, защото знаят, че за този форк са „гласували“ повече копачи, тоест този форк е по-независим, а от там и по-правдоподобен. Тогава всички биткойни, които сте получили в „късата“ верига като награда, няма да бъдат зачитани от никой. Ако отидете при търговеца на коли и му представите транзакция в по-късата от двете вериги, той едва ли ще я приеме, защото знае, че световният консенсус зачита другата, по-дълга, верига от транзакции. Следователно балансът ви в тази по-къса верига няма да се зачита, с други думи стойността му ще е нула, а вие ще сте си загубили времето, изчислителната мощ и изхабеното електричество за нищо. Ще получавате 25 койна във форк, който няма да бъде зачетен от биткойн търговците, следователно стойността на тези 25 койна ще е реално нула.
Ето какво имаме предвид със стимули, направлявани не от някоя инстанция, а от собствения ви интерес. Дори и някой от копачите да е похрачил 1,000 биткойна след блок №3 и се помъчи в следващия блок №4 тази транзакция да не бъде отразена (просто я пропуска в блока с транзакции, като по този начин 1,000-та биткойна няма да напуснат баланса на сметката му), той може да обещае по 30 биткойна на 30 други копачи, за да работят за намиране на валиден блок, в който покупката му не фигурира. Може би тези 30 копача биха се съгласили да работят по „пипнатата“ верига, но те ще знаят, че като съвкупна мощ не могат да поддържат тяхната версия на веригата по-дълга, тъй като хиляди други работят по другия форк, който в крайна сметка ще стане по-дълъг и ще се наложи. От тук, нито „подстрекателят“ ще има шанс да „скрие“ похарчените 1,000 биткойна, нито подкупът от 30 биткойна на калпак ще има някаква стойност, защото биткойн балансите в този форк няма да бъдат зачитани от никой.
Може би си задавате въпроса, каква е вероятността някой да придобие над 50% от общата процесорна мощ на Биткойн и така възможността да създаде по-дългата верига, която ще може да манипулира по свое усмотрение? Повече от сигурно е, че НАСА има няколко супер компютъра. Не могат ли те да го направят? Имайки предвид, че общата изчислителна мощ на биткойн мрежата днес е над 40 пъти по-голяма от комбинираната мощ на всички ТОП 500 супер компютъра в света, бих казал, че това е малко вероятно. Освен това, хората добавят непрекъснато процесорна мощ с идеята да копаят нови блокове, с цел получаване на 25 биткойна плюс комисионите. Вижте тази графика на общата изчислителна мощ в Биткойн мрежата с течение на времето:
Това не е команден център на НАСА, а наплив на нови потребители, които се включват в копането, в следствие на многократно покачващата се цена на биткойните. Това показва колко силна и устойчива на атаки е вече блок веригата на биткойн. Това от своя страна я прави все по-желана от търговците, което пък прави биткойните по-скъпи, което пък привлича нови инвестиции в копачки, което пък вдига мощта и така кръгът се само подсилва. (Networking effect, за който ще говорим друг път)..
Надявам се сега да оцените бляскавата идея на протокола, създаден от Satoshi Nakamoto. Проектът е направен така, че да насочи преследването на индивидуалните интереси да служи в името на общия интерес. А общият интерес е единна и неподправена разплащателна система, за да има сигурност, че балансите от биткойни в нея ще запазят стойността си. С други думи, копачите сякаш са направлявани от невидимата ръка на Nakamoto да постигат консенсус, който е в интерес на мнозинството.
Този пост свършва до тук, но във втората част ще погледнем по-задълбочено върху криптографията и нейната връзка с копането, както и методите, с които тя подсигурява мрежата.
Ако имате въпроси или неясноти по статията, моля задайте ги в съответната тема във форума: Дискусия относно значението на копането в биткойн
[icon_play][/icon_play]
Основният превод по статията е дело на Faraz–Jaka, като аз (Stamen) съм я обработил в крайния вариант. Да не забравяме и Chris Pacia, който е авторът на английския оригинал. Ако смятате, че информацията от статията ви е била полезна, може да изпратите койни по следните адреси в различните крипто валути, както ви е удобно:
- Биткойн адрес: 14eTGZqQoEBFJdKNhtZ9JX3yuaPgXejLSn
- nxt адрес:
- doge address:
Относно модела на сайта Hash.bg, прочетете тук: За Open Enterprise и hash.bg