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

1_8

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

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

1

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

Модель Биткойна

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

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

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

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

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

2

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

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

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

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

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

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

Проблемы с транзакциями

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

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

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

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

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

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

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

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

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

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

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

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

Централизованные поставщики кошельков как сайдчейн «для бедных»

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

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

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

Ключ к пониманию сайдчейнов

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

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

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

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

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

3

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

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

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

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

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

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

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

***

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

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



Categories: Альткойны, Инфраструктура, Сервисы, Теория, Технологии

Leave a Reply

55 Комментарий на "О сайдчейнах для непосвященных"

Notify of
avatar
Анонимно
Гость

Уже существующий клиент сети SuperNet уже реализует концепцию с несколькими криптовалютами с возможностью децентрализованного обмена этих валют не только между собой, но и на фиатные деньги.

jonn113
Гость

А если в сайдчейн можно перевести несколько криптовалют, то можно сделать децентрализованную биржу а ля Ripple, но без необходимости доверять ноде.)

Анонимно
Гость

Уже есть, называется SuperNet.org.
Перевод между блокчейнами и быстрый ввод/вывод в фиат прям из клиента.
Пока поддерживается не так много валют, но растёт.

arvicco
Администратор

Да, это так.

Алексей Безродных
Гость

Для меня в статье два неясных момента:
1. Каким образом мои биткоины блокируются — количественно или физически? Т.е. когда я захочу забрать свои биткоины обратно, то я получу конкретно мои биткоины или просто эквивалентную сумму. Это может быть важно для каких-либо новых сервисов.
2. Но главное — зачем в этой схеме биткоин? Если сайдчейны обладают преимуществами, не зависящими от биткоина. то зачем их привязывать к биткоин системе?
В общем идея хорошая, но какова ее цель для меня осталось загадкой?

Анонимно
Гость

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

Анонимно
Гость

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

arvicco
Администратор

«Уязвимость» пока ровно одна: невозможно «ввести» биткойны обратно с сайдчейна на блокчейн биткойна. Базовый код биткойна просто такую операцию не поддерживает.

Nego
Гость

«невозможно «ввести» биткойны обратно с сайдчейна на блокчейн биткойна. Базовый код биткойна просто такую операцию не поддерживает.» Если я правильно понял статью, то этой проблемы нет.

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

То есть, переходя из блокчейна в сайдчейн, я должен передать сайдчейну права владения своими биткойнами. Он (сайдчейн) эти биткойны никуда не двигает! Эти биткойны просто ждут в блокчейне, когда кто-то из сайдчейна заявит на них свои права: станет их новым владельцем.

Анонимно
Гость

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

arvicco
Администратор

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

Юрий
Гость

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

eug
Гость

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

arvicco
Администратор

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

wpDiscuz