Новые блокчейны рождаются постоянно. Биткоин был единственным блокчейном в течение многих лет, но теперь их сотни. Проблема в том, что, если вы хотите использовать функции, предлагаемые другим блокчейном, вы должны купить её токены. Но скоро это может измениться. Одна из разрабатываемых технологий, называемая сайдчейны (с англ. sidechains – боковые цепи), обещает облегчить перемещение токенов между различными цепочками и, как следствие, открыть двери в мир возможностей, включая создание мостов для интеграции классических финансовых и банковских систем.
В октябре 2017 года Агелос Киаяс (Aggelos Kiayias), профессор Эдинбургского университета и главный научный сотрудник исследовательской компании IOGK; Эндрю Миллер (Andrew Miller), профессор Иллинойского университета в Урбане-Шампейне; и Дионис Зиндрос (Dionysis Zindros), исследователь из Афинского университета, выпустили статью «Non-Interactive Proofs of Proof-of-Work» - NiPoPoW («Не интерактивные подтверждения доказательства выполненной работы»), где была представлена отсутствовавшая в течение трех лет часть головоломки сайдчейнов.
Одна монета – разные цепи
Сайдчейны – это технология, которая позволяет вам без участия третьей стороны перемещать токены из одного блокчейна в другой, использовать их там, а затем возвращать обратно.
Изначально, «прародителем» являлся Биткоин, но это могла бы быть и любая другая цепь. Кроме того, когда токен перемещается в другой блокчейн, он должен сохранять свое значение. Другими словами, биткоин и в сайдчейне Эфириума остается биткоином.
Главное преимущество сайдчейнов заключается в том, что технология позволяет пользователям получать доступ ко множеству новых услуг. Например, вы можете переместить биткоины в стороннюю цепь, чтобы использовать ее особые функции конфиденциальности, более быстрые транзакции или возможности смарт-контрактов.
У сайдчейнов есть и другие виды использования. Эта технология может предложить более безопасный способ обновления протокола или выступить своего рода фаерволлом, так что в случае катастрофы в сайдчейне основная цепочка останется незатронутой.
«Это своего рода ограничение ответственности», - сказал Зиндрос в видео, объясняющем суть технологии.
Наконец, если банки будут создавать собственные блокчейны, технология сайдчейнов позволит пользователям криптовалют поддерживать с ними связь, осуществляя и отслеживая вклады, долговые обязательства и другие активы.
С чего все началось
Впервые криптовалютное сообщество заговорило о сайдчейнах в 2012 году, когда разработчики Bitcoin Core искали способы безопасного обновления протокола Биткоина.
Одна из идей заключалась в «односторонней связи», в условиях которой пользователи могли перемещать биткоины в отдельный блокчейн для тестирования. Однако, после перемещения их невозможно было вернуть обратно.
«Я думал об этом как о программном инструменте, который можно было бы использовать для внесения широкомасштабных изменений», - сказал тогда в интервью с Bitcoin Magazine Адам Бэк (Adam Back), генеральный директор компании Blockstream. «Можно сказать, что мы собираемся сделать новую версию Биткоина, и думаем, что она будет готова через год, но протестировать ее вы сможете раньше».
По словам Бэка на следующий год на канале IRC Bitcoin разработчик Bitcoin Core Грегори Максвелл предложил идею «двухсторонней связи», с которой появлялась возможность передать токен по альтернативной цепочке, а затем вернуться к Биткоину на более позднем блоке.
Разработка двусторонней связи также соответствовала интересам команды Bitcoin Core. Альтернативные монеты, такие как Litecoin и Namecoin, становились все более популярными. Опасность заключалась в том, что эти альткоины «разбавляли» ценность биткоина. Разработчики Bitcoin Core решили, что было бы разумно сохранить биткоин в качестве резервной валюты и нивелировать преимущества сайдчейнов на альткоинах.
Чтобы воплотить концепцию сайдчейнов в реальность, в 2014 году Бэк вместе с Максвеллом и несколькими другими разработчиками Bitcoin Core сформировали компанию Blockstream. В октябре того же года группа выпустила «Enabling Blockchain Innovations with Pegged Sidechains» - документ, описывающий новые возможности, которые даст внедрение сайдчейнов, и раскрывающий суть технологии в широком смысле. Соавтором документа выступил Миллер.
Как работает технология сайдчейнов
Одним из важных компонентов технологии сайдчейнов является упрощенная верификация платежей (SPV), которая показывает, что токены заблокированы в одной цепочке, поэтому валидаторы могут благополучно разблокировать эквивалентное значение в альтернативной цепи. Но для работы с сайдчейнами доказательство SPV должно быть достаточно кратким, чтобы вписаться в одну транзакцию с монетами – транзакцию, которая вознаграждает майнера за новые монеты.
В то время, когда исследователи Blockstream выпускали документ, они понимали, что для работы сайдчейнов им нужно сжатое доказательство SPV, но они еще не разработали необходимую криптографию. Поэтому они обозначили только общие идеи.
В документе, представленном Blockstream, описываются два типа двухсторонних связей: симметричная двухсторонняя, где обе цепи независимы от собственного майнинга; и асимметричная двухсторонняя, где майнеры сайдчейнов являются полными валидаторами исходной цепочки.
При симметричной двусторонней связи пользователь отправляет свои биткоины на специальный адрес. При этом средства в основном блокчейне Биткоина блокируются. Они остаются заблокированными на период конкурса, длящегося примерно один час (около шести блоков), для подтверждения прохождения транзакции. Затем создается доказательство SPV для отправки в сайдчейн.
В этот момент в сайдчейне появляется соответствующая транзакция с доказательством SPV, подтверждающая, что деньги были заблокированы в блокчейне Биткоина. После этого аналогичное значение монет разблокируется в сайдчейне.
Монеты используются, переходят из рук в руки и возвращаются обратно в основную цепь. Затем процесс повторяется – монеты блокируются в сайдчейне, проходит период ожидания, создается доказательство SPV и отправляется обратно, чтобы разблокировать монеты в основной цепочке.
Процесс асимметричной двухсторонней связи немного отличается. Переход от основной цепочки к боковой не требует доказательства SPV, потому что валидаторы в сайдчейне осведомлены о состоянии основной цепи. Однако, когда монеты возвращаются в первоначальную цепочку, доказательство SPV все же необходимо.
В поисках компактного доказательства
В боковой цепи компактное доказательство SPV должно содержать сжатую версию всех заголовков блоков той цепочки, в которой заблокированы средства – от генезис-блока и до конкурсного периода, а также данные транзакции и некоторые другие данные. Таким образом, доказательство SPV можно также рассматривать как «подтверждение PoW» для каждого конкретного вывода средств.
Вдохновением для сжатого доказательства SPV послужил метод, известный как «skip list» («пропускной лист»), разработанный 25 лет назад. Весь фокус применения этого метода к компактному доказательству SPV заключался в том, чтобы найти способ пропустить запись заголовков блоков, сохраняя при этом высокий уровень безопасности, без возможности подделки доказательства другой стороной.
Работая над проблемой, Blockstream представил Миллеру, который уже несколько лет обдумывал компактные SPV, ранний проект документа, описывающего технологию сайдчейнов.
В августе 2012 года, на форуме BitcoinTalk, в сообщении под названием «High-Value-Hash Highway» («Скоростной путь высоко значимого хэша»), Миллер описал идею «merkle skip list» («пропускной лист Меркла»), которую могла бы использовать легкая версия клиента Биткоина для быстрого определения самой длинной цепочки. В этой статье Миллер охарактеризовал значение структуры данных как «абсолютно ошеломляющее».
Ознакомившись с проектом, представленным компанией Blockstream, Миллер обнаружил уязвимость в компактном доказательстве SPV, описанном в документе. Обсуждения продолжились, но так и «не помогли найти способ решения проблемы без ущерба эффективности», как сказал Миллер.
Нетривиальными вкладами Миллера в статью Blockstream стали несколько абзацев в Приложении Б, в которых описываются проблемы создания компактного доказательства SPV.
«Должна быть возможность значительно сжать список заголовков, сохраняя при этом тот же объем работы, но оптимизация этих компромиссов и формирование гарантий безопасности выходят за рамки этой статьи и темы текущей работы».
Эта работа затянулась на три года.
Сделать не интерактивным
Тем временем рос интерес к сайдчейнам со стороны исследователей из IOHK, в чьих планах было создание Cardano – нового «proof-of-stake» (PoS) блокчейна, на создание которого IOHK заключил контракт.
Cardano должен был состоять из двух уровней: операционный уровень для хранения денежных поступлений, запущенный в сентябре 2017 года; и уровень смарт-контрактов. Эти уровни были бы двумя блокчейнами, поддерживаемыми сайдчейнами. Таким образом, расчеты могли оставаться простыми и одновременно защищенными от любых атак, которые могут возникнуть на уровне смарт-контрактов. Но если IOHK хотела добиться реализации работы Cardano в соответствии с замыслом, ей необходимо было разрешить боковые цепи.
В феврале 2016 года Киаяс, в то время – профессор Афинского университета, и двое его учеников – Николаос Лампроу (Nikolaos Lamprou) и Айкатерини-Панагиота Стоука (Aikaterini-Panagiota Stouka) – выпустили «Proofs of Proofs of Work with Sublinear Complexity» - PoPoW («Подтверждение доказательств работы с сублинейной сложностью»).
Эта статья стала первым официальным заявлением о создании компактного доказательства SPV. Однако доказательство, описанное в документе, было интерактивным, в то время как для работы с сайдчейнами требовалось не интерактивное.
В интерактивном доказательстве проверяющий и проверяемый вступают в переговоры, то есть может быть более одного круга обмена сообщениями. Не интерактивное доказательство, напротив, представляет собой простую короткую строку текста, которая будет аккуратно вписываться в одну транзакцию блокчейна.
Доклад PoPoW был представлен на семинаре Bitcoin'16, совмещенном с конференцией «Финансовая криптография и безопасность данных» Международной ассоциации финансовой криптографии (IFCA). Миллер, который был на конференции, подошел к Киаясу и поделился идеей сделать протокол не интерактивным.
«Это было замечательное наблюдение», - сказал Киаяс, «но защита доказательств абсолютно не очевидна и потребует значительных усилий».
Зиндрос, который только что начал работу над своей кандидатской диссертацией под руководством Киаяса, также присутствовал на конференции, и ему нужна была тема для диссертации. Киаяс решил, что это как раз то что нужно, так что «они втроем поднажали и адаптировали протокол PoPoW и доказательство безопасности к не интерактивным настройкам», как сказал Киаяс.
В октябре 2016 года Киаяс официально присоединился к IOHK. Через год, вместе с Миллером и Зиндросом, он выпустил NiPoPoW, добавив сжатое доказательство SPV. Это произошло спустя пять лет после первых обсуждений сайдчейнов на форумах разработчиков Биткоина.
«Я не знаю, работала бы технология, если бы доказательства были интерактивными, но с не интерактивными она действительно работает гладко», - сказал Зиндрос.
Впереди еще много работы
Даже с NiPoPoW сайдчейны все еще не до конца конкретизированы. Остается ряд открытых вопросов. К примеру:
-
Насколько сжатыми могут быть доказательства?
-
После того, как транзакция была заблокирована в одной цепочке, сколько времени должно пройти, прежде чем ее можно будет отправить на другую?
-
Можно ли перенести токен непосредственно с одной боковой цепи на другую?
«Многим теориям еще предстоит дать четкие определения», - сказал генеральный директор IOHK Чарльз Хоскинсон (Charles Hoskinson).
Кроме того, хотя NiPoPoW и предназначен для доказательства выполненной работы в блокчейнах, некоторые считают, что, если блокчейн займет свое место в мире в более широких масштабах, то будущее останется за такими протоколами, как Ouroboros, Algorand или Snow White, которые обещают быть более энергоэффективными, чем Биткоин.
В частности, если Cardano, базирующийся на Ouroboros, заработает в соответствии с планом, исследователям IOHK будет необходимо изучить NiPoPoS.
Хоскинсон уверен в собственных силах. «Мы можем это сделать», - сказал он. «Мы определенно можем использовать NiPoPoS. Вопрос только в том, сколько мегабайт или килобайт это займет? Сможем ли мы довести его до 100 КБ? Это действительно вопрос».