Най-просто казано, Етериум (Ethereum) е платформа за изграждане на децентрализирани приложения, базирана на блокверига. Макар и вярна, тази формулировка не ни дава добра представа за идеите, заложени в системата, както и за нейното предназначение.

Първата важна характеристика на системата е, че тя е базирана на блокверига. Както вече сме обяснявали подробно, блокверигата е специален вид база данни, която позволява създаването на децентрализирани приложения. Тези приложения обикновено са масови, отворени и веднъж пуснати в експлоатация, заживяват свой живот, чието бъдеще зависи от волята на всички участници в системата. Така се създава своеобразна екосистема, събираща хора с близки интереси. Посоката на развитие на тази екосистема се решава на демократичен принцип чрез гласуване на участниците в системата. Такива системи са Биткойн, Неймкойн (Namecoin), Лайткойн (Litecoin) и др.

Етериум, както и посочените по-горе системи, е с отворен код, масова, разпределена система, т.е. поддържа се от голям брой независими участници по целия свят. Това, че е отворена, означава, че всеки може да си инсталира съответния софтуер и да започне да я използва и поддържа. Тя е една истинска децентрализирана система в духа на Биткойн, която, веднъж пусната в действие, е изцяло в ръцете на тези, които я използват – без централизирани сървъри и привилегировани участници. Това е изключително важно, защото така проектираните системи обикновено създават силна общност от ентусиасти около себе си. Общност, готова да развива, подкрепя и популяризира системата във времето.

От казаното дотук се вижда, че съществуват множество прилики между Етериум и Биткойн. Какво обаче ги различава? Дали Етериум е просто поредната криптовалута? Най-лесният начин да отговорим на тези въпроси, е да проследим историята на зараждане на идеята за Етериум и нейното развитие във времето.

Идеята хрумва на Виталик Бутерин, млад компютърен специалист и страстен привърженик на биткойн, в края на 2013 г. В онзи период той е активен участник в редица проекти, свързани със създаването на нови варианти на използване на блокверигата като основа за нещо повече от електронни пари (биткойн). Става дума за т.нар. криптовалути версия 2.0. Работейки по тези проекти, Бутерин забелязва, че използваният подход навсякъде е един и същ, а именно:

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

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

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

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

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

Как функционира Етериум?

Както Биткойн, и Етериум има своя валута – етер. От своя страна потребителите имат свои акаунти, като в блокверигата се записва броят на етерите, притежавани от всеки акаунт (т.е. какъв е балансът на всяка сметка).

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

Важно е да се отбележи, че блокверигата на Етериум е публична и всеки може да види записаното в нея. Съответно публични са както акаунтите и техните баланси, така и кодът на потребителските програми. Освен това, веднъж записани в блокверигата, потребителските програми са достъпни и изпълними за всеки. По тази причина те могат да се считат за определен вид уеб услуги (уеб приложения) – наименование, което ги описва най-добре.

Едни от основните проблеми, стоящи пред компютъра Етериум, е как да се определи кой ще ползва ресурсите му. Кой ще решава кои програми да се изпълнят и кога? Както всяка изчислителна система, и тази има своите ограничени ресурси. Всъщност това са ресурсите на тези, които поддържат системата – копачите. Те трябва да получат заплащане за своите услуги, което да бъде пропорционално на изразходваните ресурси.

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

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

Как действа приложението?

За да се стартира едно потребителско приложение, трябва да се изпрати съобщение към него. Това съобщение подава входните данни за изпълнение на приложението. Обикновено заедно с тези данни се прехвърлят и етери по сметката на приложението, които ще бъдат използвани, за да се заплати за изпълнението му.

Важно е да се отбележи че приложенията могат да записват и свои данни в блокверигата. Така те могат да записват резултати от предишни свои изпълнения и да ги използват в следващите. Това, разбира се, също се заплаща с етери.

Ще илюстрираме целия този процес с един пример.

Да си представим, че искаме да създадем своя криптовалута (криптолев). Можем да създадем приложение, което да се грижи за нейното управление. При първоначалното създаване на приложението можем да го инструктираме да запише по нашата сметка, че имаме 10 милиона криптолевове. Тази информация се записва в паметта на приложението. Това ще бъдат всички криптолевове, които някога ще съществуват. В този момент ние сме много богати.

Сега да прехвърлим малко криптолевове на нашия приятел Иван. Той също има акаунт в Етериум. Ние изпращаме съобщение на нашето приложение и го инструктираме да прехвърли определено количество криптолевове (1 милион) на Иван (на неговия адрес в Етериум). Освен това със съобщението изпращаме необходимата сума етери за покриване на разходите по изпълнение на приложението. Тя трябва да покрива както цената на необходимите изчисления, така и цената на записаната информация в паметта на приложението. Приложението се изпълнява и записва в своята памет следната информация – ние вече имаме 9 милиона криптолева, а Иван има 1 милион. Ако сме написали правилно нашето предложение, то от тук нататък ние имаме достъп само до нашите 9 милиона, а Иван може да управлява своя 1 милион. Освен това, тъй като всичко се записва в блокверигата, всеки може да провери колко криптолева имаме ние и колко Иван.

Етер и газ

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

  • Предпазва системата от безкрайно изпълняващи се програми. Да се напише такава програма, е изключително лесно и ако не трябваше да се плаща за нейното изпълнение, тя автоматично би претоварила компютрите на всички купувачи в системата.
  • Предпазва системата от неефективни програми. Всеки, който създава своята програма в Етериум, е силно стимулиран да я направи максимално ефективна, тъй като в противен случай ще трябва да плаща допълнително всеки път когато я изпълнява. Това предпазва системата както от програми, които извършват твърде много ненужни операции, така и от такива, които записват твърде много излишна информация в блокверигата.
  • Отсява по естествен начин полезните от безполезните програми. Логично е да се счита, че ще бъдат изпълнявани само програми, които извършват полезна услуга, тъй като потребителите ще бъдат мотивирани да плащат само за подобен тип програми.

За да работи ефективно тази икономика на изчисленията обаче, в компютъра Етериум трябва да бъде решен един много важен проблем: как да се вземат предвид промените в цената на самата валута етер, която днес може да струва 4 лева, а утре – 40? Това би увеличило десетократно цената на изпълнение на всички приложения в системата. За да се реши този проблем, цената на изчисленията в системата трябва да не бъде пряко свързана с цената на етерите.

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

Цената, която потребителят определи обаче, трябва да бъде приемлива и за копачите. Те са тези, които ще извършват изчисленията и върху чиито компютри се съхранява блокверигата. Затова всеки копач може да прецени сам за себе си дали даден курс етер/газ, предложен от потребителя, го устройва. Ако прецени, че курсът е неприемлив, той няма да включи поисканото изпълнение на програмата в блока от блокверигата, върху който работи в момента. По този начин се създава естествен пазар между потребителите на Етериум и копачите за техните изчислителни ресурси.

Основни характеристики на Етериум

По-долу представяме някои статистически данни за Етериум, които биха улеснили сравнението с останалите криптовалути:

  • Дата на стартиране на мрежата – 30.07.2015 г.;
  • Брой етери в обращение към настоящия момент (28.02.2016 г) – приблизително 77,4 милиона;
  • Брой етери в обращение към момента на стартиране на мрежата – около 72 милиона. Това количество включва:
    • 60 102 216 предварително продадени етери – с цел да се финансира разработка на системата,
    • 12 000 00 етера, предоставени на фондацията, разработваща Етериум – тук се включват както компенсация на разработчиците, така и дългосрочен резерв за фондацията за бъдещи разработки и развитие на системата,
  • Емитиране на етери – 15,6 милиона годишно. Това означава, че инфлацията ще бъде:
    • 21,67 % за първата година (при база 72 милиона),
    • 17,81 % през втората година,
    • 15,12 % през третата година и т.н.,
  • Време за генериране на блок – около 12 секунди;
  • Брой етери, емитирани за блок – 5.

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

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

Освен всичко останало, трябва да се има предвид, че съществуват много идеи как да се промени системата за постигане на консенсус в мрежата, да се намали броят на емитираните етери, да спрат да се емитират нови етери и мрежата да премине към система за постигане на консенсус чрез гласуване (а не чрез копаене).

Основни предимства на Етериум

Едно от основните предимства на системата Етериум е, че предоставя обща среда и платформа за изграждане на децентрализирани приложения. Тези приложения ще работят в обща екосистема и ще могат свободно да комуникират помежду си. Освен това те ще могат да ползват и обща електронна валута – етер, т.е. потребителите ще могат да прехвърлят свободно финансови средства от едно приложение в друго. Това означава, че не са необходими допълнителни системи за прехвърляне и превалутиране на финансови средства („странични“ вериги, които да свързват приложенията едно с друго). Просто всички приложения ще бъдат в една верига.

Друго основно предимство е, че всички приложения, изградени в Етериум, ще споделят обща система за сигурност. Всички ще бъдат защитени от една и съща блокверига (тази на Етериум), което означава, че ще бъдат защитени от потенциално голямо количество копачи с голяма изчислителна мощ. Всеки копач едновременно ще защитава всички приложения в системата и няма да му се налага избира за кое приложение да използва своята изчислителна мощ (каквато е сегашната ситуация с всички алтернативни криптовалути).

Възможни приложения на Етериум

Възможните приложения, които могат да бъдат изградени върху Етериум, на практика са неограничени. Както беше казано по-горе, всеки сам решава какво приложение да изгради и има на разположение един напълно функционален програмен език. Основните фактори, които е възможно да ограничат броя и вида на приложенията, които биха могли да бъдат изградени, са:

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

Към момента вече се работи по значителен брой различни приложения, изградени върху Етериум, сред които:

  • Информационни (прогнозни) пазари – пазар, на който участниците спекулират с възможните изходи от бъдещи събития (гласувания, спортни състезания и т.н.) – http://www.augur.net/;
  • Децентрализирани компании – компании, програмирани в блокверигата, които се управляват от софтуерни правила, заложени при тяхното създаване (правила за гласуване, за раздаване на дивиденти и т.н.) – http://colony.io/;
  • Системи за „умна“ собственост – система, позволяваща управление на достъпа до определени вещи, базирана на блокверигата. Такава вещ може да бъде например кола, чийто двигател се стартира само след като се докаже, че собственикът притежава определен частен ключ; къща, която от момента, в който бъде прехвърлена на друг в блокверигата, автоматично започва да приема само частния ключ на новия собственик или пък вещ, която се отдава под наем чрез блокверигата (напр. пералня в хостел) – http://airlock.me/, https://slock.it/;
  • Платформи за групово финансиране – системи, които позволяват на хора от цял свят да финансират стартъп за разработването на нова идея и да получат автоматично акции в компанията или в продукт, който тя произвежда – http://weifund.io/.