Опубликован: 01.02.2018 | Уровень: для всех | Доступ: платный
Лекция 9:

Практика использования Биткоин в разных областях

< Лекция 8 || Лекция 9: 123 || Лекция 10 >
Аннотация: Безопасное проставление штампа времени: особенности применения и реализации. Практическое применение свойств Биткоина: организация и проведение лотерей, билеты, цветные монеты. Сущность рынка прогнозов и анализ возможности его построения на базе Биткоина.

Биткойн как журнал только для добавления данных

Из предыдущих лекций стало понятно, что Биткоин можно использовать в качестве валюты. Но есть много других практических применений, которые можно построить на базе Биткоина: гарантия обязательств, простановка безопасного штампа времени, выпуск в обращение новых типов криптовалюты, проведение лотерей, и, наконец, абстрактные рынки. В этой лекции будут рассмотрены некоторые возможности использования Биткоин и его свойств.

В блокчейн можно добавлять информацию, но нельзя ее оттуда удалить. Информация сохраняется там навсегда. Если рассматривать биткоин как журнал только для добавления данных, также можно сделать вывод о времени внесения заметок в журнал исходя из того, в какой блок они были включены. Другими словами, можно использовать блокчейн для установления защищенного штампа времени.

Цель защищенного штампа времени: доказать знание X в определенное время t. При этом, если требуется, не раскрывать значение X. Доказательства должны быть постоянными, то есть должна быть запись о знании некоторой информации X в момент времени t или ранее, которую никто не может уничтожить.

Чтобы не раскрывать x, можно публиковать хэш – H(X).

Свойства хеш-функции гарантируют, что нельзя найти какое-то другое значение Х’, которое имеет такое же значение хэш, что и Х. При этом хэш не должен раскрывать информацию об X – это будет верно только в случае действительно большого пространства возможных X. Итак, идея безопасного штампа времени с помощью журнала – публикация обязательства (commitment) в виде хэша X. Поэтому если кто-то публикует в блокчейне в момент времени t хэш данных X, то в дальнейшем любой может убедиться, что опубликовавший знал X в момент времени t (или ранее), так как эти данные невозможно подделать.

На практике это может пригодиться как доказательство знания чего-то в определенный момент времени. Например, можно опубликовать хэш проекта или схемы какого-то изобретения, не раскрывая при этом его сути. И в дальнейшем использовать это доказательство при получении патента.

Можно также использовать эту схему как доказательство получения. Например, при онлайн-голосовании сервер может опубликовать хэш каждого голоса и время его подачи. И это не позволит в дальнейшем проигнорировать этот голос. Безопасный штамп времени имеет множество практических применений.

Можно доказать знание о предстоящих событиях, например, финала спортивного матча или выборов. После их прохождения можно раскрыть информацию и доказать, что результат был известен заранее.

Несколько лет назад во время финала Кубка мира, кто-то фальсифицировал, что предугадал результаты. Он попытался доказать, что ФИФА, которая организует Кубок, является коррумпированной. Для этого он показал свою учетную запись в Twitter с результатами матча. На секунду можно поверить в то, что он знал данные результаты. Но на самом деле он записывал каждый возможный ход игры и результаты до начала матча, а за некоторое время до его конца удалил все предсказания, оказавшиеся неправдой.

Эту атаку можно провести против любой системы обмена сообщениями, которая позволяет вписать все возможные результаты, а затем опубликовать только те, которые совпали с истинными. Для того чтобы избежать этой проблемы необходимо ставить безопасный штамп времени на предсказания.

Еще до появления биткоина было подобное решение, которое заключалась в публикации хэша прогнозов в газете или в других средствах массовой информации. Газеты хранятся в библиотеках и в Интернете. И если кто-то увидит хэш в газете, он будет уверен в том, что хэш был поставлен в день публикации газеты. Также можно просто заплатить газете небольшую плату и поставить хэш любого дня, который необходим. А затем, после публикации газеты, всякий раз, когда необходимо доказать свое знание, можно просто опубликовать данные и сослаться на газету. Люди могут обратиться к газете и времени и узнать, кто и когда взял на себя это обязательство.

Итак, это действительно простое решение, оно отлично работает в автономном режиме, то есть без Интернета. Вопрос в том, как и где можно поставить хеш-обязательство в биткойне; какое место в блокчейне или в транзакциях будет занимать хэш информации, знание которой необходимо доказать в будущем? Самый простой способ – отправка денег не на хэш открытого ключа, который является адресом, а на хеш данных, знание которых нужно подтвердить. Так как это хэш данных, а не реальный адрес, отправленные деньги нельзя будет потратить. Поэтому имеет смысл отправлять минимальную сумму – 1 сатоши. Недостатком этого метода является то, что фактически создаются недействительные транзакции, которые являются метками времени. И сообщество вынуждено их отслеживать и поддерживать в блокчейне.

Есть более сложный способ поставить штамп времени - КомитКойн (CommitCoin). Это небольшой протокол для поиска открытых ключей и подписей, при котором фиксируемые данные вставляются в биты открытого ключа и подписи. Для того чтобы найти специальный открытый ключ, формируется множество открытых ключей и множество подписей. Хэш данных, которые необходимо подтвердить, будет "встроен" в искомый открытый ключ. Для постороннего наблюдателя эта операция будет выглядеть как обычное формирование открытого ключа. При этом не создаются непередаваемые транзакционные выходы. У данного метода один недостаток – он сложнее и, как следствие, дороже. Подробнее с протоколом можно ознакомиться в статье по ссылке: https://issuu.com/ptmannion/docs/bitcoin_protocol.

В лекции 3 упоминался скрипт OP_RETURN, который используется для уничтожения монет (доказательство сжигания). Он всегда немедленно возвращается с ошибкой и в него можно включить некоторые данные. При этом также придется потратить какую-то минимальную сумму.

Единственным недостатком является то, что это все еще не стандартная транзакция, поэтому она не будет передаваться по умолчанию узлами сети. Но это предпочтительный способ зафиксировать данные в цепочке блоков. И на самом деле есть куча стартапов, которые фактически запускают небольшие веб-сайты, которые собирают множество обязательств людей в большое дерево Merkle. В конце дня все обязательства публикуются с помощью OP_RETURN. Это способ уменьшить стоимость публикации OP_RETURN и ограничить раздувание блокчейна нетрадиционными транзакциями.

В один скрипт OP_RETURN можно записать 40-байтное обязательство по стоимости 1 транзакционной комиссии, которая составляет около 0,0001 биткоина или 0,05 долларов США. Это достаточно низкая цена, которая приводит к основному недостатку данной схемы – злоупотреблению. Люди могут записывать любой, в том числе незаконный, контент в блокчейн.

Известны попытки отдельных людей компрометировать сообщество Биткоин. Публикация незаконного контента в блокчейне приводит к тому, что полные узлы, которые хранят копию всей цепочки блоков, подвергаются опасности, так как фактически работают с запрещенным контентом. И нет никого способа помешать людям публиковать произвольные данные в блокчейн.

Запись любых данных в блокчейн дает возможность создавать совершенно новую валютную систему без разработки нового консенсусного механизма. При этом биткоин будет использоваться как журнал, а все данные, необходимые для новой валюты, будут записываться в его блокчейн. Такая валюта называется оверлейной валютой. При этом данные о новой валюте должны быть в виде непередаваемых выходов транзакций биткоинов.

Самая известная оверлейная валюта – Mastercoin (Мастеркоин). Она построена поверх биткоина, все транзакции Mastercoin записываются в цепочку блоков биткойнов, и она поддерживает гораздо более расширенный набор функций, чем биткойн. Главная идея оверлейной валюты – не нужно разрабатывать новый консеснусный механизм. И поскольку майнерам биткойна не нужно знать о правилах Mastercoin, она может поддерживать гораздо более специфические функции, более сложные интеллектуальные свойства, интеллектуальные контракты, определяемые пользователем валюты. По сути, API во много раз больше, чем API Биткойна, потому что майнерам это не нужно понимать. Они готовы просто вслепую написать что-либо в цепочку блоков, которая отформатирована как действительная транзакция Bitcoin. И сообщество Mastercoin должно посмотреть на все эти данные и собрать вместе действительное владение Mastercoin на основе того, что написано в блочной цепочке биткойнов. Таким образом, можно развивать валюту, не создавая собственную систему консенсуса. Не требуются новые майнеры, можно просто добавить больше возможностей и развивать их быстрее. Но оверлейная валюта полагается на Биткоин. Это может быть неэффективно, так как нет возможности предотвратить запись недействительных транзакций в блокчейн. Мастеркойн более подробно будет рассмотрен в лекции 11.

Практические применения свойств биткоина

Рассмотрим еще одно альтернативное применение биткоин.

В прошлых лекциях был рассмотрен пример, когда на основе графа транзакций были сделаны выводы о владельцах кластеров. Несмотря на то, что фактически биткоин представляет собой неизрасходованный транзакционный выход, проще представлять его в виде монеты. И каждая монета имеет длинную историю, связанную с ней, которую любой может видеть в цепочке блоков. История всех, кто владел какой-либо частью монеты, которая через передачу и транзакции с другими монетами превратилась в текущую неизрасходованную транзакцию или текущий биткойн.

Как уже отмечалось ранее, это плохо для анонимности. Интересное свойство в том, что биткойны не являются взаимозаменяемыми. Взаимозаменяемый – это экономический термин, который означает, что каждый биткойн имеет то же значение, что и любое другой, и их можно обменять без потери или изменения стоимости.

Каждый биткойн уникален и имеет свою историю. Поэтому они не взаимозаменяемы. История одного биткоина при определенном контексте может быть лучше истории другого биткоина. Отсутствие взаимозаменяемости имеет как плюсы, так и минусы.

Представим, как можно добавить метанные на традиционную валюту, например, на доллар.

Если просто написать что-то на банкноте, это не будет иметь никакой ценности. Нужно, чтобы метаданные были привязаны к конкретной купюре, и никто не смог бы это подделать. Для этого кто-то, обладающий авторитетом и имеющий ключ, должен подписать комбинацию метаданных и серийного номера банкноты. Предположим, что футбольная команда "Динамо" хочет начать использовать долларовые купюры в качестве билетов. Они утверждают, что конкретный серийный номер банкноты теперь представляет собой билет на определенную игру, возможно, с определенным местом. Тот, кто владеет этой банкнотой, может прийти на матч и посмотреть его. Для обеспечения аутентичности будет использован закрытый ключ "Динамо". Им будет подписано сообщение с указанием номера конкретной игры, даты и всей информации вместе с серийным номером банкноты. Эту информацию можно наклеить на банкноту в виде 2D штрих-кода.

Теперь владелец этой банкноты может показать ее перед входом на стадион, в базе данных будет найдена соответствующая подпись и он сможет спокойно посмотреть игру. На самом деле штамп не обязательно использовать. На стадионе можно просто иметь базу данных, в которой есть список разных серийных номеров банкнот с указанием мест на стадионе. Зачем же использовать дополнительно штрих-код?

Валюта может быть не только билетом на спортивный матч. Есть множество практических приложений рассмотренной схемы.

Банкнота имеет определенные анти-поддельные свойства. В каждом государстве есть специалисты, которые следят за уникальностью банкнот, так как это важно для поддержания любой валютной системы. Итак, если анти-поддельные свойства банкноты высоки, можно просто привязывать ее серийный номер к любым метаданным. При этом базовая стоимость купюры сохраняется. В рассмотренном примере с футбольной командой "Динамо", после того, как владелец купюры зашел на стадион, он может потратить ее на покупку мороженного.

Ценность метаданных и их смысл зависят от доверия к тому, кто подписал их своим закрытым ключом. В рассмотренном примере болельщики "Динамо" будут знать, что у команды есть ключ для подписания билетов на матч. Для остальных же долларовые купюры будут выглядеть как обычные банкноты.

Как можно реализовать то же самое в криптовалюте, которая позволяет быстро совершать онлайн-обмены и не доверять банку?

Решением является покраска монет в определенный цвет. При этом монеты не потеряют своей стоимости. Просто они и включенные в них метаданные будут цветными.

В транзакцию вставляется дополнительный бит метаданных, который заявляет, что некоторые из выходов имеют определенный цвет. В одной транзакции будет выпущено пять фиолетовых биткоинов, в другой – семь обычных биткоинов без цвета. И, возможно, кто-то другой с другим ключом входа и в другой транзакции выпустит четыре зеленых биткойна.

Итак, теперь есть биткойны с разными цветами, и с ними можно совершать все стандартные транзакции. Таким образом, можно иметь одну биткойновскую транзакцию, которая включает в себя несколько выходов, некоторые из них зеленые монеты, некоторые фиолетовые, некоторые неокрашенные монеты. Далее она перемешивает их и имеет выходы, поддерживающие цвет. И в них будут метаданные, которые позволят убедиться, что монетам соответствует правильный цвет.

Итак, единственное, что добавилось к базовым возможностям Биткоина – это возможность добавить немного метаданных в транзакции, где в одной выходной транзакции некоторые монеты имеют определенный цвет. И, конечно, должна быть подпись, чтобы не каждый мог использовать любой цвет.

Самое популярное предложение для реализации цветовой схемы называется открытыми активами. Выпуск осуществляется через специальный хэш-адрес хэша данных Х. Поэтому для выпуска цветных монет нужно выбрать хеш-адрес с оплатой за клик, который будет выдавать любой цвет, который необходим (например, цвет билета на матч "Динамо"). И тогда любая монета без цвета, которая пройдет через этот адрес, уйдет с цветом, обозначенным этим адресом. Информацию о соответствии адреса цвету нужно опубликовать на одном из сервисов, которые отслеживают соответствие адресов и цветов. При этом монеты могут иметь более одного цвета.

Теперь каждый раз, когда есть транзакция с цветными монетами, нужно использовать специальный маркерный вывод. Это невыносимый результат, который в случае обязательств позволяет писать дополнительные метаданные в транзакцию. А в любой транзакции Bitcoin, привычные метаданные определяют, как значение всех входных транзакций разделено между выходными транзакциями, нужно добавить этот маркерный вывод при работе с цветными монетами, чтобы решить, какой цвет монеты использовать. Протокол также поддерживает добавление дополнительных метаданных.

Преимущества заключаются в том, что данная система совместима с Bitcoin. Это дает возможность для объявления любого цвета и помещения любых метаданных на любую монету. При этом майнеры не будут участвовать в процессе, занимая какую-либо позицию или устанавливая правила передачи цветов.

Для того чтобы начать выпуск цветных биткоинов, не нужно обращаться в какой-то центральный орган. Недостатки этой схемы заключаются в том, что приходится ставить вывод непереносимого маркера в каждую транзакцию, которая включает в себя цветные монеты. Из-за этого добавляются небольшие накладные расходы в виде регулярных биткойнов каждый раз, когда необходимо торговать цветными монетами. И поскольку выход этого маркера является особенным , для проверки владения цветными монетами, необходимо проверить всю историю транзакций. Недостаточно просто покрасить монету в какой-то цвет, так как майнеры не работают с цветными монетами. Это является плюсом системы, так как майнеры не могут на нее влиять. С другой стороны у работающего с цветными монетами не может быть слабого клиента, так как ему необходимо проверять весь блокчейн. Это исключает работу с цветными монетами на ограниченных платформах, например, на телефонах, так как они не смогут хранить всю цепочку и поддерживать ее обновленную копию. Ранее был рассмотрен пример применения цветных монет в качестве билетов на какое-то мероприятие. Другой распространенный пример применения – цветные монеты, представляющие акции компании. Каждый раз, когда необходимо опубликовать новую акцию, биткоины передаются через хэш-адрес pay-to-script, который окрашивает их в определенный цвет. После этого люди могут начать торговать ими. Для выпуска акций в таком формате не нужна биржа или какая-либо инфраструктура, которая используется в автономном мире, можно просто обменять акции в обмен на обычные биткойны. Покупатели должны верить эмитенту акций. При этом цветные монеты могут фактически отображать факты в реальном мире – например, владение автомобилем или домом. В лекции 11 будет рассказано о некоторых трудностях, как юридических, так и социальных, возникающих при работе с цветными монетами, представляющими недвижимость .

Есть еще один интересный пример применения цветных монет – можно торговать владением доменных имен и возможностью запускать сервер в цепочке блоков биткойнов. У этого примера достаточно оговорок и странных свойств. Например, необходимо, чтобы люди владели не простыми доменными именами, а скупали все хорошие доменные имена. Фактически это было запущено как отдельный Altcoin под названием NameCoin, о котором будет рассказано в следующей лекции.

< Лекция 8 || Лекция 9: 123 || Лекция 10 >
Александр Шабанов
Александр Шабанов
Россия, Москва, МГОУ, 2007
Максим Кучинский
Максим Кучинский
Россия