Сказка в трех главах про лесной блокчейн
Как устроен блокчейн? Что такое «умный контракт», который можно заключить с его помощью? Как работает цифровая подпись? В чем их преимущества перед традиционными договорными отношениями? Ответы на эти и другие вопросы не так сложны, как кажутся, но чтобы сделать их еще более наглядными, мы в рамках партнерского проекта с AlfaLab решили рассказать вам сказку. Итак, в самом центре густого леса была маленькая полянка...
В самом центре густого леса была маленькая полянка, вся поросшая кустами черники. На ее краю стоял большой старый пень, на котором сидел грустный Ежик, а рядом устроился его друг, Муравей. И Муравей никак не мог понять, почему Ежик был такой расстроенный: он то и дело вздыхал, принимался болтать ножками, потом крепко задумывался, да опять вздыхал и ножками больше не болтал. И так продолжалось уже полчаса. Наконец, Муравей не выдержал и спросил:
— Ежик, а почему ты грустишь?
Ежик в этот момент как раз решал, болтать ему ногами или нет, но вопрос застал его врасплох. Он спрыгнул с пенька и принялся ходить вокруг него кругами. Муравей попробовал было бегать вслед за Ежиком, но быстро утомился и решил залезть на пенек и просто следить за своим другом оттуда. Ежик сделал еще несколько шагов, остановился, посмотрел вверх и задумчиво ответил:
— А как тут не грустить? Ты бы, Муравей, грустил, если бы тебя пообещали напоить чаем с ватрушками?
Муравей удивленно поднял ус:
— Ну, разумеется, если бы я не любил чай с ватрушками. Но я-то его люблю, поэтому нет, не грустил бы.
— Ага. — кивнул Ежик, но вопреки ожиданиям никуда не пошел, а просто молча уставился в землю.
— Ну а если так: ты насобирал два кузовка ягод, оба отдал, а когда пришел на полдник, там ни чая, ни ватрушек? Тогда бы ты грустил?
Муравей начал догадываться о печальной истории Ежика, но все-таки решил уточнить:
— Это с тобой что ли такая история приключилась, Ежик?
Тот скосил глаза в сторону, почесал за ухом и отмахнулся:
— Да нет, с одним моим другом. Ты его не знаешь, он за оврагом живет.
— Понятно, — покивал Муравей, — Ну да, я бы расстроился, наверное. Уговор дороже денег, да и вообще, где это видано, шутить такими вещами, как чай с ватрушками. А что же твой друг, к Барсуку не ходил?
— К Барсуку? — Ежик аж чихнул от удивления, — что ты, что ты! Буду я еще Барсука по таким пустякам тревожить.
Муравей было открыл рот, но Ежик быстро поправился:
— Ну, мой друг, в смысле, — тут Муравей вздохнул, но продолжил кивать, — будет еще Барсук с его проблемами разбираться. Да и вообще, пока к нему сходишь, пока к Белке приведешь, пока все расскажешь. Да и она скорее его чаем с ватрушками напоит, чем мою порцию отдаст.
— К Белке?
— Ну, да, это же она ягоды забрала.
Ежик молчал, Муравей — тоже, оба пребывали в задумчивости. На мордочке Ежика читались досада и желание в скором времени перекусить, тогда как Муравей пытался изобразить усиками солидарность к беде друга (друга), но получалось у него плохо — он все равно выглядел очень довольным.
— Муравей, а чего это ты такой довольный? — Ежик нахмурился и на секунду забыл о вопросе надвигающегося перекуса.
Муравей попытался спохватиться, но в итоге развел лапками и честно ответил:
— Да я пытался представить себе, что бы я делал в твоей ситуации...
— Моего друга! — поправил Ежик
— Ну да, твоего друга. Так вот, я пытался себя представить на его месте, но у меня не получилось. Тогда я решил, что это даже хорошо, поэтому теперь сижу довольный.
Ежик молча моргал и таращился на Муравья, а тот оторвал соломинку и стал неторопливо жевать ее кончик.
— Подожди, Муравей. Как так, ты не можешь себя представить на моем месте? — тут Муравей довольно кивнул.
— Но ты же наверняка был в похожей ситуации!
— Не-а, — покачал головой Муравей.
— Значит, твои друзья, другие муравьи, были!
— Не-а, — опять покачал головой довольный Муравей.
Ежик тоже выдернул из травы соломинку и принялся нервно ее жевать. Муравей смотрел-смотрел за этим, а потом заметил:
— Ты, Ежик, не обижайся и не злись, просто у нас, муравьев, такая история бы никогда не смогла приключиться, вот и все. Поэтому мне так сложно разделить твое горе.
— Да почему же она не могла? — не унимался Ежик.
— Ну, потому что у нас есть феромонный след.
— Ферокаконный? — не понял Ежик.
— Феромонный. Ну, не знаю, как объяснить. Вот ты малину от клубники по запаху отличишь?
Ежик фыркнул:
— Ну, ты спросил. Конечно, отличу.
— Ну вот, а я не только малину от клубники, но и любую полянку по запаху от другой отличу, и любое дерево, и любого муравья. Но только, если там след будет, понимаешь?
— Нет, — честно ответил Ежик, но теперь по нему было видно, что история с загадочным следом его заинтересовала.
— Вот смотри. Каждый муравей умеет в воздухе оставлять особый след, который не только необычно пахнет, но и кучу всего рассказывает другим муравьям, как письмо.
— Допустим, — Ежик уселся на траву и внимательно слушал. Муравей встал на ножки и с пня продолжил вещать:
— Ну вот и получается, что везде, где был один муравей, пробежал другой, третий, — везде мы оставляем какую-то информацию и стараемся ее разнести и передать всем остальным. Поэтому получается, что обычно в муравейнике все про всех все знают. Вот, теперь ты все понял?
— Ничегошеньки не понял. Ну, след, ну знают, а дальше-то что? У нас тоже в лесу почта есть, можно подумать.
— Сам ты почта. Ладно, смотри. Мы же не только рассказываем друг другу о том, кто куда пошел, мы еще и говорим, что где лежит. Например, если кто-то нашел новую полянку с едой. Если он первый ее нашел, он сразу оставит специальный сигнал. Остальные придут, проверят и подтвердят, что он действительно первый — и весь муравейник будет знать, что он первый. Поэтому он получит дополнительную порцию еды с этой полянки, понял?
— Про еду — понял, но понятия не имею, к чему ты ведешь, Муравей.
— А ты дальше слушай, — Муравей принялся расхаживать по пеньку влево и вправо и активно жестикулировать усиками.
— Раз все знают, кто, где и когда находит еду, никто не пытается обманывать остальных, потому что смысла нет — все равно проверят. Так и еду далеко один не унесешь, помощники нужны, поэтому удобно по нашему следу еще говорить, кто, куда и сколько еды понес, и кто, кому и сколько отдал.
— Так-так-так, — Ежик теперь облокотился на землю и внимательно сощурился, предвкушая развязку подзатянувшейся истории.
— Ну так вот! Если бы я обещал Белке два кузовка ягод, я бы это непременно записал в след. Но только после того, как она туда же записала бы, что мне за эти ягоды причитается.
— Чай с ватрушками! — воскликнул обрадованный Ежик, а Муравей торжествующе воздел лапки к небу:
— Именно! Именно, что чай с ватрушками. А теперь главное: все вокруг знают, что Белка мне обещала чай с ватрушками, более того, раз вся еда-то на складе в муравейнике, ей за ними придется идти, ведь больше взять их неоткуда.
Ежик приоткрыл рот, опять закрыл и покачал головой:
— Опять не понял.
Муравей вздохнул, но продолжил:
— В муравейнике все общее, каждый просто знает, кто, сколько и какой еды может взять. Все в следе записано! Если захочешь что-то себе утащить тайком, это придется новый муравейник строить, где ты будешь единственный житель. Только ты тогда ничем с другими муравьями не поменяешься, потому что тебя в следе не будет. Так-то.
— Ну так а что с Белкой-то? — вспомнил Ежик.
— А, ну так все просто: как только я кузовки принес на склад и в след это записал, Белкин чай с ватрушками моим станет. Потому что это в следе было еще давным-давно записано, что мы так договорились. У нас даже для этого слово специальное есть:"Умный контракт«.
— И к Барсуку идти не надо? — недоверчиво спросил Ежик.
— Идти вообще никуда не надо, все и так все знают. Но вообще, да, Барсук в этой схеме не требуется.
— А без муравейника и лимонного...
— Феромонного.
— Ну да, без него — никак, значит?
— Получается, что так, — угомонился наконец Муравей и снова сел на пенек.
— Дааа, — протянул Ежик. — Почему я не Муравей.
Оба задумались и продолжили жевать свои соломинки.
В этой сказке говорится о том, как устроен типичный блокчейн. Каждый муравей — это пользователь блокчейна, а по сути просто кошелек для внутренней валюты (например, биткоинов). Подобно тому, как в сказке муравей, первым нашедший еду, получает дополнительную долю, пользователи блокчейна ищут хэш, который выглядит особенным образом: кто первым нашел, то и получил на свой счет дополнительные биткоины. Параллельно с поисками хэша пользователи, подобно муравьям, обменивающимся едой, постоянно обмениваются монетами. Именно эти транзакции и составляют основную массу информации, записанной в каждом блоке.
Теперь об «умном контракте». Лица, которые хотят заключить такой контракт, формулируют его, как и обычный контракт, в терминах определенных условий. Например, один обязуется предоставить другому определенные услуги, а другой — оплатить их в заданном объеме. Учитывая, что блокчейн — это алгоритм, умный контракт должен быть записан на математическом языке, что автоматически исключит любые недосказанности и оговорки. Наконец, что еще более удобно: поскольку пользователь — это всего лишь кошелек, как только условия «умного контракта» будут выполнены, сразу же совершится транзакция. При этом поменять условия «умного контракта» после его записи в блокчейн уже нельзя, гарантом этого выступает вся система и все ее пользователи, которые майнят новые монеты и проверяют каждую существующую транзакцию. Чтобы сделать существование «умных контрактов» выгодным, существует особая валюта, которая является платой за проверку и осуществление транзакций. Схема «умных контрактов» прекрасно переносится на реально существующие услуги, например на аккредитив — соглашение, гарантом которого выступает банк. Блокчейн не только ускоряет обращение аккредитивов, но и делает систему более надежной: и банк, и его клиенты знают, что блокчейн невозможно изменить, не получив контроль над большинством пользователей всей системы.
Муравей лежал на маленькой полянке, жевал соломинку и грелся на солнышке. Примерно час назад он должен был встретиться здесь, возле пенька, с Ежиком, но тот все не показывался. Муравей не сильно расстраивался по этому поводу, благо день был длинным и теплым — почему бы и не погреться лишний часок.
По характерному шороху черничных кустов Муравей понял, что Ежик все-таки вспомнил про друга и спешит сюда. Действительно, через несколько мгновений уставший и запыханный Ежик показался на полянке, помахал Муравью рукой и принялся изо всех сил пыхтеть, чтобы восстановить дыхание.
— Привет, Ежик, ты чего такой взъерошенный?
Ежик еще несколько раз глубоко вздохнул и тоже улегся на траву.
— Не спрашивай. Ты не замечал, как много нынче приходится бегать по всему лесу, чтобы в итоге произошло что-то очень простое?
Муравей почесал кончик усика и покачал головой:
— Не-а.
Ежик недовольно фыркнул:
— Все у тебя не как у нормальных зверей. Вот я встал сегодня ни свет ни заря, чтобы успеть застать Белку, прежде чем она уедет к своей кузине за овраг.
— Ты опять ей ягод, что ли, собирал?
— Ага, конечно, вот еще. Нет, мы с ней договорились, давно еще, что она меня пустит пожить в домик своей бабушки, ненадолго. Но только, если я дам ей попользоваться своим медным тазиком для варенья: в этом году у нее богатый урожай, варить придется много.
Муравей, понял, что история будет длинной, поэтому перевернулся на бок и приготовился слушать.
— Ну вот, я долго искал таз, а потом вспомнил, что месяц назад уже отдал его Мышке, когда она нашла ту полянку с земляникой, помнишь? — Муравей кивнул.
— Мышка живет далеко, поэтому я попросил Хорька, — нашего почтальона, — передать ей мою записку, в которой я ее прошу передать тазик прямо Белке, когда та будет у кузины. А сам в это время побежал к Барсуку, чтобы он записал, что я временно поживу у Белки, поэтому орехи, которые мне должен Хомяк...
— Стой, Ежик, остановись, пожалуйста, ты меня потерял, — Муравей действительно изо всех сил пытался уследить за перемещениями Ежика, но это было невероятно трудно.
— Ну вот! А говорил, что вы, последователи Картонного Следа...
— Феромонного.
— Ну да! Что вы все так лихо организовываете, а ты даже в моей простой ситуации запутался.
— Да нет, Ежик, я не запутался, я просто ужаснулся, что у вас, лесных жителей, все так сложно.
— Можно подумать, у вас проще! Всем все рассказать, везде все записать — то же самое.
— А вот и нет. Смотри, что я бы сделал. — Муравей опять лег на спину и сложил лапки домиком.
— Ты говоришь, Ежик, что хочешь сделать всего три вещи: переехать на время в домик белкиной бабушки, отдать свой тазик...
— Который сейчас у Мышки!
— Да-да, его ты хочешь отдать Белке, а орехи, которые тебе должен Хомяк, хочешь получить по новому адресу.
— Да, но еще...
— Подожди с еще. Я бы на твоем месте весь этот список дел разом спокойно внес в феромонный след. И через 10 минут об этом бы уже знал весь муравейник: тазик бы направлялся к Белке, орехи — к тебе, а ты бы сам обустраивался на новом месте. К чему вся эта беготня по лесу?
— А как без нее? — Ежик опять ничего не понимал. Дурацкий филимонный след!
— Твоя проблема в том, что ты вынужден сам бегать по всему лесу и с каждым договариваться отдельно, причем в строгой последовательности. А можно же выдать все указания списком, который, во-первых, проверят все остальные, а во-вторых, о нем все сразу будут знать.
— А что, если кто-то что-то перепутает? — недоверчиво спросил Ежик.
— Тогда остальные его поправят! — улыбнулся Муравей.
Ежик какое-то время тихонько бормотал себе что-то под нос, загибал пальцы и рисовал в воздухе загадочные линии, которые, не иначе, обозначали, кто и куда пошел. Наконец, он махнул рукой и вслух согласился с Муравьем.
— А хорошо тебе живется, да, Муравей?
Тот сладко потянулся на солнышке и, довольный, ответил:
— Вообще отлично!
В этой главе обсуждается быстродействие блокчейна. Казалось бы, безналичный перевод денег — это далеко не новость, тем не менее, любой перевод требует определенных процедур, которые помогают банку или платежной системе удостовериться, что данная транзакция не является вредоносной или мошеннической. В зависимости от многих факторов — суммы транзакции, ее приоритета, валюты и так далее — проверка может занимать разное время. В случае с блокчейном все по-другому: валюта всего одна, а проверка транзакции — это фактически единственное, чем занимаются все пользователи (майнеры). Более того, сложность майнинга подбирается таким образом, чтобы новый блок (список транзакций) выходил с определенной периодичностью, например раз в 10 минут. Соответственно, если список взаимных транзакций составлен корректно (как в примере из сказки), они автоматически совершились бы уже в следующем созданном блоке, то есть через те самые 10 минут. А самое главное — подобное быстродействие не идет в ущерб безопасности. Это происходит за счет математического совершенства блокчейна, где проверка осуществляется не человеком, а изначально заложенным открытым алгоритмом.
«...и вот так Хомяк остался должен мне 18 орехов,» — подытожил Ежик.
Они вместе с Муравьем снова сидели на черничной полянке и делились друг с другом новостями за последнюю неделю. Ежик, понабравшись знаний о феромонном следе, решил вести свои дела в духе муравейника, однако, судя по всему, другие обитатели леса не сильно разделили его восторг от идеи метить все вокруг специфическими запахами. Тем не менее, Ежик был полон энтузиазма и даже успел рассказать Муравью о своей сделке с Хомяком.
— Так что же, орехи вкусные были? — поинтересовался Муравей.
— Не знаю, он их мне еще не отдал. Он вообще сказал, что сначала должен выяснить у Белки, кто из них остался должен, ведь орехи-то они вместе собирали. Так что как только они разберутся — вот тут-то я свою долю и отведаю.
— Понятно, — сказал Муравей, а про себя подумал «Ну, понеслась».
— Ну понимаешь, Муравей, орехи — штука такая, не так-то легко за ними следить. Но я могу быть спокоен, потому что Хомяк на моей феромонной бумажке все написал, вот, смотри, — и Ежик достал сложенную в 4 раза бумажку, всю исписанную вдоль и поперек печатными буквами и цифрами.
— Вот, вот здесь, он написал, что должен орехи Ежу (это мне, значит). Получается, отдаст. Это же феромонная бумажка!
Муравей саркастически посмотрел на Ежика и покивал. А потом поинтересовался:
— А где тут сказано, что это Хомяк написал? Тут рядом похожими буквами написано что-то про сосновые шишки, а вот здесь — про мед.
— Ну что ты, Муравей, это не он писал. Или он? Да какая разница, я же все помню.
— А он помнит?
— Не знаю, он тоже обещал такую бумажку завести.
— И все-все в лесу тоже обещали?
— Ну да, — голос Ежика звучал все менее уверенно.
Муравей покачал головой и приготовился объяснять все заново.
— Только не с самого начала, ладно, Муравей? — взмолился Ежик.
— Хорошо. Только одну деталь, договорились?
— Договорились!
Муравей попросил у Ежика чистую бумажку и карандаш и принялся быстро записывать вслед собственным словам:
— Вот ты делаешь новую запись, например, «Ежик нашел десять ягод черники». Если ты ее так и оставишь — ничего не сработает, кто угодно мог такое написать. Тебе нужна подпись. Да не просто подпись, а такая, чтобы никто больше не подделал. Есть идеи?
— Конечно! Я могу пробить бумажку несколькими своими иголками. Так больше в лесу никто не сможет.
— Отлично! Тогда ты подписываешь это у себя в бумажке, у Хомяка в бумажке, и вообще у всех, кого увидишь. А кто захочет проверить — проверит, что ты действительно первым нашел ягоды. А теперь надо то же самое проделать с вашей историей с орехами. Пусть Хомяк напишет, что он отдал Ежику 18 орехов. И тоже пусть подпись придумает!
— Это тоже легко! Он может прокусить бумажку своими большими зубами.
— Здорово! — Муравей не на шутку обрадовался.
— Понимаешь, Ежик, когда каждый свои слова подписывает, ни у кого не возникнет проблем с тем, чтобы вспомнить, кто, кому и сколько должен? Здорово?
Ежик призадумался.
— А если кто-то у себя в бумажке все переправит, как будто не было ничего?
— Так у других-то не переправит!
— А когда новую бумажку заводить придется?
— Да и это ерунда: возьми, да посчитай, сколько всякой еды на этой бумажке записано. Да количество букв тоже посчитай во всех записях. Прибавь все это и на новой странице запиши.
— Это еще зачем? — Ежик опять понял, что ничего не понял.
— Ну как, зачем. Если кто в старых бумажках что-то задумает исправить — всегда проверить можно будет, ведь что-то поменяется: или количество еды, или слова другие будут. Ты опять все посчитаешь, да с числом на следующей бумажке сравнишь. Если сошлось — все в порядке, никто не менял ничего.
— Здорово... — протянул Ежик, — а вы у себя в муравейнике так же делаете, да?
— Не-а, — отмахнулся Муравей, — у нас же феромонный след, он сам все за нас делает, удобно, правда?
— Да ну тебя, — фыркнул Ежик. А потом вдруг подскочил и стал Муравья трясти:
— Идея!
— Ну ты меня напугал, глупый! Какая такая идея? — Муравей вырвался из цепких ежиных лап и принялся отряхиваться.
— Зачем нам бумажки эти, когда у нас ты есть!
— Не понял, — насупился Муравей.
— Ну, у тебя же это след есть, да? И муравейник есть, так? И у вас все это давно работает, так?
— Таак, — недоверчиво протянул Муравей.
— Ну так давай мы просто будем все важные договоренности в ВАШ феромонный след записывать — какая разница, туда, или на бумажку?
Муравей призадумался.
— Ну, действительно, разницы нет. След-то даже получше работает, практика, знаешь ли, — добавил он не без гордости.
— Ну и вот! Мы если чем-то задумаем меняться, понесем в муравейник, и обещания в след запишем. Тогда и не пропадает ничего, и не подделает никто. Да и пользоваться удобно.
— А нам, муравьям, за это что?
— Ну, будем вам тоже ягод отсыпать, за помощь.
Муравей долго думал над идеей Ежика. И чем дольше думал, тем больше она ему нравилась.
— Знаешь что? Давай попробуем, — решил он наконец.
Друзья подхватили бумажки и побежали к Хомяку — радостную весть рассказать, что теперь он все-таки должен Ежику 18 орехов.
В этой главе ставится следующий вопрос: надо ли обязательно становиться майнером, приобретать и настраивать дорогостоящее оборудование, если можно пользоваться блокчейном как обычным внешним инструментом и только тогда, когда он необходим? Выясняется, что лицу, решившему заключить «умный контракт», совсем не обязательно самому усиленно заниматься майнингом — достаточно лишь иметь на своем счете сумму, необходимую для совершения описанной в контракте сделки. Гарантом выполнения «умного контракта» выступят все остальные пользователи блокчейна, за что получат свое вознаграждение (об этом говорилось в предыдущей главе).
Еще один важный аспект — цифровая подпись. Именно она обеспечивает максимальную прозрачность всех операций в блокчейне. Цифровая подпись основана на хэшах, которые невозможно подделать или подобрать. Пользователь в этом случае приравнивается к закрытому ключу, с помощью которого подписывается любая транзакция. В любой спорной ситуации достаточно пройти назад по цепочке транзакций, чтобы выяснить, чья подпись стоит на соответствующей записи.
Тарас Молотилин