Вы здесь

Сайдчейны: сколько сторон у криптовалюты?

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

Сайдчейны: сколько сторон у криптовалюты?

Конечно, можно просто сделать еще одну криптовалюту, которая объединила бы в себе лучшие черты. Нечто вроде стандарта для криптовалют. Подождите, это что-то мне напоминает...

Несомненно, такой подход может оказаться жизнеспособным, в теории. Однако, на практике это не осуществимо. Во-первых, идея «всего лучшего» очень личная. Не все считают, что плата за простой в Freicoin – это очень полезное свойство. Кроме того, возникли бы сложности при выборе стандарта из широкого диапазона функций Proof-of-Work. Во-вторых, некоторые вещи по своей сути не могут быть объединены: представьте себя на месте услуги, которая должна учитывать миллион свойств ОДНОЙ криптовалюты. Хотели бы ее принять? И, наконец, очень сложно с технической точки зрения продолжать внедрять все инновации, появляющиеся в других проектах.

Умножая альткоины

Вот еще одна точка зрения. Предположим, вы – успешный разработчик криптовалюты. Вы изобрели новое свойство и теперь хотите проверить его на практике. Вы не можете просто все быстро состряпать и запустить (ваш проект вам дорог), но вы также не можете проверить ваше свойство без реальных пользователей. Что вы можете сделать? Вы хотите, чтобы у вашей валюты было свойство (чтобы люди им пользовались), и в то же время чтобы ее не было (чтобы никто не потерял деньги в случае критической ошибки).

Блокчейны

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

Второй вариант описал два года назад Адам Блэк, известный вам человек (я надеюсь): так называемая двусторонняя привязка (в своей работе он говорит, что автор данной концепции – Грегори Максвелл). Смысл заключается в том, что вы все-таки запускаете параллельный блокчейн с экспериментальным свойством, но монет (еще) нет. Пользователь может «заблокировать» монеты в основной цепи (отправив их на специальный адрес-скрипт), и то же количество появится в параллельной цепи.

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

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

Давайте снова поговорим о биткоинах

Как же должны выглядеть такие «блокирующие» адресные скрипты? Хотите больше информации – пожалуйста. Давайте рассмотрим их на примере биткоина.

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

Пример транзакций

Самый частый выход (упрощенный) – это «ПУБЛИЧНЫЙ КЛЮЧ 'A' + КОМАНДА ПРОВЕРКИ ПОДПИСИ», а вход – «ПОДПИСАТЬ ДАННЫМ КЛЮЧОМ». Если подпись успешно проверена по ключу, то часть транзакции является действительной и все в норме. Следовательно, скрипты в нашем случае с двусторонней привязкой могут выглядеть таким образом. Действующие субъекты:

  • Транзакция TX1, которая блокирует деньги в главной цепи, чтобы перевести их в альтернативную;
  • TX2, которая реализует деньги в альтернативной цепи и передает их далее в рамках данной цепи;
  • TX3, которая блокирует деньги в альтернативной цепи для возврата в главную;
  • TX4, которая разблокирует деньги в главной цепи.

Итак, действия выглядят следующим образом:

  • Выход TX1.OUT: «ПУБЛИЧНЫЙ КЛЮЧ 'A' + КОМАНДА БЛОКИРОВКИ ДЛЯ ЦЕПИ 2 + ПУБЛИЧНЫЙ КЛЮЧ 'B' + КОМАНДА ПРОВЕРКИ ПОДПИСИ». Деньги теперь заблокированы и не могут быть выкуплены без данных блокировки.
  • Вход TX2.IN выводит TX1.OUT: "ПОДТВЕРЖДЕНИЕ SPV (ПРОСТАЯ ПРОВЕРКА ОПЛАТЫ) OUT1 + ПОДПИСАТЬ КЛЮЧОМ 'A'». В рамках данной альтернативной цепи этот скрипт не обрабатывается как обычный вход, который выкупает деньги из той же цепи, но как передача из главной цепи.

Что такое ПОДТВЕРЖДЕНИЕ SPV OUT1? Это транзакция TX1 (содержащая OUT1) и случайные данные других транзакций в том же блоке, что и TX1. Таким образом, мы можем заново построить дерево Меркла для всех таких транзакций и проверить, действительно ли они происходят из цепи 1 (да, нам необходимо знать хеши блоков из цепи 1, и это не вполне достаточная информация). Данный тип схемы применяется также для «упрощенных кошельков», когда нам необходимо проверить, существует ли транзакция без оценки всего блокчейна. Это называется Простой проверкой оплаты, и информацию о ней можно найти даже в статье Сатоши Накамото.

Сайдчейны

  • Итак, у нас есть действительный вход для N монет, которые пришли из цепи 1 в TX2. Они могут быть выкуплены в цепи 2, пока не придет время их возврата. То есть, путь монет TX3 не имеет значения: они могут сменить принадлежность или нет.
  • Выход TX3.OUT в альтернативной цепи: «КОМАНДА БЛОКИРОВКИ В ЦЕПИ 2».
Как выглядит команда блокировки? Например, деньги можно просто пересылать на публичный ключ, например «000000», или хеш чего-либо; никто не должен знать личный закрытый (приватный) ключ. С данного момента TX3.OUT во второй цепи становится практически невозвратимым. С технической точки зрения мы создали аналог Доказательства уничтожения.
  • Вход TX4.IN в главной цепи: «СВЯЗЬ С TX1.OUT + ПОДТВЕРЖДЕНИЕ БЛОКИРОВКИ SPV + ПОДПИСАТЬ КЛЮЧОМ 'B'»

Мы рассматриваем TX1.OUT так как главная цепь не имеет никакого понятия об альтернативной. Вероятно, кажется, будто деньги никогда не исчезали: они были направлены на выход TX1.OUT, и теперь они тратятся на входе TX4.IN. Цепь сравнивает команды подтверждения из скрипта TX1.OUT с данными в TX4.IN, и они все подходят! Мы просто должны научить скрипт паре новых команд, и все.

ПОДТВЕРЖДЕНИЕ БЛОКИРОВКИ SPV – это еще одной компактное криптографическое доказательство, что во вторичной цепи есть выход, в котором имеются деньги, которые были навсегда заблокированы.

Преимущества сайдчейнов

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

Для этого нам необходимо назвать данную концепцию Сайдчейн, нанять команду разработчиков биткоинов и прочих добровольцев, открыть компанию Blockstream и собрать $21 миллион с инвесторов. Звучит легко.

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

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

Изолированное подтверждение – реструктуризация транзакции, чтобы «выбросить» ненужные данные, например, подписи. Если транзакция уже в блокчейне, то она несомненно является действительной. Зачем же нам тогда подпись?

Относительное время блокировки – новый способ присвоения временных меток транзакциям. Например, это позволит тратить деньги, которые могут быть «потрачены N блоками после того, как они были включены в один». Подтверждение подписи Шнорра – еще один алгоритм подписывания, более эффективный чем текущий Bitcoin ECDSA. Кроме того, Подписи Шнорра – это основа Новых рабочих кодов CryptoNote: новые команды скриптов для проверки на практике. Опасная задача, требующая большой осторожности. Теперь это можно сделать в изолированной программной среде и т.д.

Суть нашего обсуждения заключается в том, что сайдчейны практично использую монеты из главной цепи, а не из собственных. То есть, если вы «связываете» DigitalNote с системой биткоинов, то у вас появляется новый тип входа, который вводит «иностранные монеты» в систему. Вы можете превратить некоторые биткоины в XDN и использовать функции XDN (отправлять секретные сообщения, получать процент блокчейна и т.д.) с биткоинами. Курс обмена и качество XDN остаются неизменными. Далее вы блокируете (уничтожаете) биткоины внутри XDN, и это дает вам право разблокировать их в цепи BTC.

Достижения Blockstreams

Осенью 2014 года Blockstream выпустила статью после описания двусторонней привязки. Прошел год, и на днях компания объявила о первом сайдчейне под названием «Liquid», цель которого – обеспечить быстрые транзакции между крупными финансовыми узлами (биржи и онлайн кошельки).

Blockstream - сайдчейн Liquid Network

Вместо изъятия из Kraken и внесения в BTCC, пользователь просто щелкает по кнопке в своем профиле. Его биткоины отправляются в блокчейн Liquid на адрес в Kraken, который тут же направляет их на адрес BTCC, и BTCC сам переводит их назад в блокчейн биткоина в собственный кошелек. С технической точки зрения, это аналог банковского клиринга в режиме реального времени.

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

Ясно, что в данных целях можно разработать более простые способы. Но в нашем случае Liquid – это элемент, имеющий большую важность. Liquid первый, но, надеюсь, не последний.

Категория: 
Криптовалюты
Технология: 
5
Ваша оценка: Нет Средняя: 5 (2 оценок)
23122 / 1
Аватар пользователя admin
Публикацию добавил: admin
Дата публикации: ср, 11/25/2015 - 22:54

Что еще почитать:

Комментарии:

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

чт, 11/26/2015 - 00:01

Анонимус

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

чт, 11/26/2015 - 00:28

Roman

Без сомнения сайдчейн Liquid отличное решение для масштабирования биткоина, но насколько я понимаю он почему-то практически не применяется, особенно если сравнивать с сайдчейном Lightning Network, который в свою очередь наоборот все бельше применяется и количество пользователей этого решения растет.

пн, 12/03/2018 - 12:15