О сайдчейнах для непосвященных

Делитесь и голосуйте:

Содержание статьи:

Сайдчейны как платформа для создания «полудецентрализованных» биткойн-продуктов и сервисов

Как известно, 22 октября была опубликована важная работа:

Если вы следите за Биткойном, то должны знать хотя бы некоторые из этих имен, потому что принадлежат они серьезным специалистам по криптовалютам. В этой статье они описали способ создания «прикрепленных» сайдчейнов (pegged sidechains). Сама технология сайдчейнов не нова: идеи, лежащие в ее основе, и способы создания сайдчейнов уже известны даже неспециалистам, а ключевой прорыв в этой области был описан в апреле. И все же данная статья вызвала немалый интерес и получила много комментариев. Почему? Давайте разберемся.

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

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

Прежде всего, забудьте на время обо всем, что связано с деньгами или платежами. Выбросьте также из головы идею блокчейна как бухгалтерской книги или журнала операций. Секрет Биткойна в том, что на самом деле это не бухгалтерская книга. Все, что важно — это только транзакции и блоки транзакций. Чтобы понять сайдчейны, нужно твердо уяснить это.

«Перемещая» биткойны из кошелька в кошелек, вы, по сути, заявляете следующее:

  • Привет всем! Мне хотелось бы переместить эти конкретные биткойны.
  • Вот доказательство того, что я имею право перемещать их.
  • А вот как их получатель в свою очередь должен будет подтвердить, что у него есть право перемещать их.

Три критических элемента биткойн-транзакции

Важно отметить несколько моментов.

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

Повторяйте эти три этапа, пока не запомните их практически наизусть.

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

Эта транзакция публикуется в сети, добавляется в блок, и после наращивания цепочки еще на несколько блоков все могут быть уверены в том, что отмены транзакции не будет.

Тройная структура биткойн-транзакции вполне надежна и открывает возможности для реализации многих интересных сервисов. Например, благодаря неполной взаимозаменяемости биткойнов можно помечать отдельные монеты — эта идея лежит в основе цветных монет и «умной» собственности. Однако Биткойн не лишен недостатков. Давайте их обсудим.

Интервал создания блоков

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

Структура транзакции

Несмотря на то, что структура транзакции достаточно универсальна, она позволяет передавать только права владения биткойнами. Некоторые люди хотели бы передавать более сложную информацию — например, для работы децентрализованной биржи нужен механизм размещения заказов. Разработчики Mastercoin, Counterparty, NXT и других подобных проектов создают для этого специальные функциональные слои поверх Биткойна или пишут совершенно новый код.

Условия трансфера

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

Недифференцированная модель безопасности

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

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

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

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

  • Вы отправляете монеты в кошелек с конкретным биткойн-адресом.
  • Они появляются в вашем кошельке Circle, и вы больше не контролируете их в блокчейне.
  • В какой-то момент в будущем вы можете вернуть монеты, отправив их из кошелька на свой биткойн-адрес.
  • Теперь вы снова контролируете эти монеты в блокчейне!

С точки зрения биткойн-сети, Circle — это черный ящик. У вас были какие-то монеты, вы отправили их на конкретный адрес… дальше произошло что-то, невидимое для биткойн-сети… а спустя какое-то время вы снова получили контроль над монетами. Все выглядит так, как если бы эти монеты были выведены из биткойн-сети, а затем возвращены в нее.

Идея, лежащая в основе сайдчейнов, на самом деле проста:

Что если бы можно было отправлять биткойны не только другим пользователям, на другие адреса и в централизованные сервисы, но и в другие блокчейны?

Представьте, что вы хотите использовать какую-то другую биткойн-подобную систему — например, litecoin, ethereum или какую-то другую. Возможно, она нужна вам из-за сокращенного интервала подтверждения блоков или более мощного скриптового языка — это не имеет значения. Важно только то, что вам нужно использовать ее, но вы не готовы идти на риск и не хотите покупать токены этой платформы. Как-никак, у вас уже есть биткойны — почему нельзя использовать их?

Механизм работы сайдчейнов заключается в следующем.

  • Вы отправляете свои биткойны на специально созданный биткойн-адрес. Монеты, находящиеся по этому адресу, не контролируются ни вами, ни кем-либо другим. Они заблокированы и могут быть разблокированы, только если кто-то докажет, что они больше нигде не используются (чуть позже я объясню, что это значит). Иначе говоря, используя базовые принципы биткойн-транзакций, описанные выше, вы задали конкретное условие, которое будущий владелец, кем бы он ни был, должен будет выполнить, чтобы получить контроль над монетами.
  • Как только эта блокирующая транзакция получает достаточно подтверждений, вы отправляете сообщение в другой блокчейн — тот, который вы хотите использовать. Оно должно подтвердить, что монеты были отправлены на этот специальный биткойн-адрес, что они, таким образом, заблокированы, и (это очень важно!) что отправили их вы.
  • Во втором блокчейне (сайдчейне) создается эквивалентное количество соответствующих токенов, и вам передается контроль над ними.
  • Все выглядит так, как если бы ваши биткойны были переведены во вторую цепочку. Обратите внимание, что они заблокированы в исходной биткойн-сети, так что мы ничего не создавали и не уничтожали, а просто «переместили» монеты.
  • Теперь вы можете совершать операции с этими монетами во второй цепочке по действующим в ней правилам. Возможно, блоки в ней создаются быстрее; возможно сценарии в ней Тьюринг-полные; возможно, вам нужно заплатить за услуги защиты сайдчейна — не имеет значения: правила будут такими, какие задали операторы сайдчейна. Важен лишь единственный принцип: если вы можете подтвердить, что сделали какое-то количество биткойнов недоступными в исходной биткойн-сети, в сайдчейне для вас будет создано эквивалентное количество токенов этой сети.
  • А теперь вторая хитрость. Описанная выше логика симметрична. Иначе говоря, тот, кому принадлежит контроль над этими монетами в сайдчейне, в любой момент может отправить их назад в биткойн-сеть, заблокировав токены в сайдчейне. Они исчезнут из сайдчейна и снова станут доступны в биткойн-сети для пользователя, который владел ими в сайдчейне последним.

Для блокировки биткойнов на время их нахождения в сайдчейне используется стандартная тройная транзакция

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

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

Оставим детали и подумаем, что это нам дает. Теперь у нас есть способ перемещения биткойнов на другую платформу (в сайдчейн) и обратно. Фактически именно это мы делаем, когда переводим монеты поставщику кошельков или на биржу. Разница в том, что «платформа», куда мы их переместили, тоже является блокчейном, то есть поддерживает децентрализованные технологии обеспечения безопасности и прозрачности, но при этом позволяет экспериментировать с различными криптовалютными инновациями.

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

Сайдчейны открывают множество новых возможностей, позволяя разрабатывать экспериментальные продукты и сервисы без создания новой валюты и без возврата к старому централизованному стилю. Я воспринимаю сайдчейны как перспективную архитектуру для внедрения полудецентрализованных биткойн-сервисов, которые ранее были невозможны.

Да, пока этой технологии присущи некоторые серьезные проблемы. Например, Питер Тодд выражает сомнения в ее безопасности, к тому же, она может потребовать однократного изменения Биткойна, но это только начало. Я с интересом слежу за развитием этого направления.

***

Автор: Ричард Гендал Браун (Richard Gendal Brown), исполнительный архитектор, отделение инновационных банковских и финансовых решений, британское отделение IBM.

Источник: блог Ричарда Брауна

Государство и общество

Ждем новостей

Нет новых страниц

Следующая новость