Предлагаем вашему вниманию сокращённый перевод интервью Эндрю Поэлстра из Blockstream в подкасте What Bitcoin Did Питера Маккормака.
Питер МакКормак: Привет, Эндрю, спасибо, что пришёл на мой подкаст. Я был на твоём выступлении сегодня утром. Для начала расскажи о себе. Ты математик, верно?
Эндрю Поэлстра: Я математик.
Питер МакКормак: Итак, расскажи о своей работе. Кто-то сказал мне: «Эндрю большой математический ум».
Эндрю Поэлстра: Хорошо, но начну с того, что сегодня утром я был в Массачусетском технологическом институте. Мы все знаем, что студентам в МТИ нравятся стартапы, которые занимаются созданием странных, безрассудных криптографических штук. Моя цель была в том, чтобы отговорить их от попыток создать криптографические протоколы, так как они не были готовы проводить исследования, которые нужны для этого, поэтому я пытался их немного запугать. И похоже (я слышал от нескольких людей), что они не поняли этого. Хотя, по правде говоря, у меня было только 20 минут, чтобы осветить эту тему.
А вообще я работаю в Blockstream, возглавляю исследования. Одно из главных направлений исследований Blockstream — это набор технологий, которые я называю технологией подписи или скриптами без скриптов (в зависимости от моих маркетинговых настроений). Это целая куча методов, которыми мы должны кодировать интересные, мносторонние — не хотелось бы использовать тут термин смарт-контракт — ну, в общем, семантику смарт-контракта в протоколах подписи. Я подразумеваю под этим создание цифровых подписей или так называемых мультиподписей.
Цифровая подпись создана группой участников так, что ни одна их подгруппа не может создать подпись. Это то, что совместно принадлежит всем этим людям одновременно. Мы расширяем эти протоколы подписей, чтобы они имели другие интересные возможности.
Самым простым примером этих других вохможностей может служить атомарный своп между блокчейнами, когда кто-то говорит, что хочет отправить биткоины контрагенту, но не хочет, чтобы эти деньги ушли, если он также не получают эквивалентную сумму в лайткоине в блокчейне лайткоина. Так что происходит своп биткоина на лайткоин. Проблема в том, что блокчейн биктоина не знает о лайткоине, а блокчейн лайткоина не знает о биткоине. Никто из них, конечно же, не хочет помещать свой код проверки в другой блокчейн.
Итак, как вы можете заставить эти два блокчейна общаться между собой? Существует стандартный способ. Где-то в 2012-2013 была разработана спецификация TierNolan, когда в основном вы удерживаете монеты на обеих блокчейнах так называемым вызовом перед созданием хеша, где вы по сути говорите, что, чтобы переместить эти монеты, вы должны раскрыть какой-то секрет. Хитрость в том, что вы используете один и тот же секрет в двух блокчейнах. Поэтому изначально одна сторона знает секрет, а другая — нет. Затем сторона, которая знает секрет, раскрывает его в блокчейне, чтобы забрать свои монеты. Может быть, она раскрывает его в сети лайткоина, чтобы забрать лайткоины. Другая сторона копирует секрет цепочки лайткоина в блокчейн биткоина и использует его, чтобы забрать свои монеты.
Питер МакКормак: Хорошо. Но вы тогда не занимаетесь поддержкой шиткоинов?
Эндрю Поэлстра: Существует много блокчейнов. Blockstream разрабатывает сайдчейн под названием Liquid. Сайдчейн — это блокчейн, у которого нет собственного нативного актива. Следуя правилам системы, клиенты должны подписать, что правила системы были соблюдены, перемещая монеты из биткоина в Liquid. Так что Liquid — это отдельный блокчейн, который поддерживает биткоин.
Он также поддерживает другие активы, которые могут выпускать люди, и какова семантика этих активов, решать только эмитенту. Это не интересует сайдчейн. Что ему интересно, так это то, что если вы хотите перевести биткоины в Liquid, вам нужно поместить их в какой-то выход, который контролируется консорциумом клиентов с мультиподписью. Затем, чтобы его распознать и перенести их на Liquid, нам нужно 100 подтверждений, а это занимает много времени. Это занимает большую часть дня.
Питер МакКормак: почему 100?
Эндрю Поэлстра: 100 — это то, что называется лимитом зрелости в биткоине. Если в биткоине случится реорганизация блокчейна, тогда (если не будет нечестной игры) те же транзакции в конечном итоге окажутся в блокчейне, и люди (которые не хотели воспользоватся реорганизацией) в принципе не увидят никаких изменений, так как транзакции просто возвращаются в блокчейн. Может быть, в другом порядке, может быть, в разных блоках. Таким образом, обычных пользователей не должна беспокоить реорганизация, если они не поддерживают синхронизацию нод и тому подобное. Но есть одно большое исключение: coinbase-транзакции, которые создаются в новом блоке. Таким образом, человек, который создает блок, получает возможность создать транзакцию, которая даст ему 12,5 монет и не имеет никаких входов. Если случится реорганизация, эти транзакции полностью уничтожаются. Они не могут вернуться в блокчейн, потому что новые блоки будут иметь другие coinbase-транзакции. У них будут разные идентификаторы транзакций.
Питер МакКормак: Итак, если будет реорганизация, мы уменьшим общий объем эмиссии?
Эндрю Поэлстра: Нет, реорганизация заменит одни блоки другими блоками. Таким образом, 12,5 биткоинов в уничтоженных блоках исчезнут. Но там будут другие 12,5 биткоинов.
Питер МакКормак: Сайнеры, которые их добыли, сильно расстроятся.
Эндрю Полстра: Да, майнеров это, безусловно, расстроит. И любого, кто получит монеты от этого майнера, ведь майнеры можнт создать немедленно отправить их кому-то. Этот кто-то посмотрит в блокчейн и скажет: «О, эти монеты действительно были получены из coinbase-транзакции, поэтому я не хочу принимать эти монеты, они очень рискованные». Таким образом, возникло правило, согласно которому вы не можете перемещать транзакции на 100 блоков. И оно немного надуманное — никогда не было реорганизации 100 блоков. Никогда не было реорганизации более 20, 25 блоков.
Питер МакКормак: Когда это случалось? Довольно давно, верно?
Эндрю Поэлстра: Да, случалось. Я не помню деталей, поэтому не скажу точно, но полагаю, что это было в 2013 году или около того, и было связано с ошибкой синхронизации в Bitcoin — до того, как его переименовали в Bitcoin Core.
Питер МакКормак: Итак, Liquid защитает от ситуации, когда может произойти реорганизация?
Эндрю Поэлстра: По сути да. В Liquid, если бы была настолько глубокая реорганизация, монеты перешли бы в Liquid, а затем вышли и фактически были бы признаны недействительными из-за атаки. По сути, платежеспособность системы была бы в опасности. Таким образом, нам нужен был предел, который был бы настолько высок, что его достижение спровоцировало бы кризис всей экосистемы, и кто знает, что произойдет в случае такой реорганизации. Вам, как получателю монет, даже не нужно думать или беспокоиться о том, что «эти монеты более рискованны, чем другие». Вы можете сказать, что после 100 блоков все монеты, как правило, взаимозаменяемы.
Но вернёмся к протоколам с мультиподписью.
Существует несколько исследовательских проектов, позволяющих вам реализовать мультиподпись с использованием схемы подписи ECDSA (Elliptic Curve Digital Signature Algorithm), которая сегодня используется в биткоине. Все они включают в себя гораздо более сложную криптографию, значительно более сложный код. Их криптографические основы намного сильнее, чем допущение дискретного логарифма эллиптической кривой, которое мы привыкли использовать в биткоине. Но ECDSA требует, чтобы вы шли на компромиссы, не внося их в блокчейн, и участникам этих протоколов придется идти на компромиссы. Это сложные задачи, и мы знаем, как их реализовать так или иначе в течение нескольких лет (я полагаю, на это уйдёт четыре или пять лет).
ECDSA создаёт излишние трудности, и, вообще-то, делает это нарочно. История ECDSA интересна сама по себе, и это урок для любого, кто задумывается о патентовании решений в области криптографии. В 1989 году Клаус Шнорр разработал схему подписи, которая стала известна как схема Шнорра — алгебраически это очень простой тип подписи. Это самое простое из возможных доказательств знания, которое является самым простым из возможных… Самая простая вещь, которую вы можете сделать с помощью криптографии — это сделать цифровую подпись. Шнорр запатентовал это.
Питер Маккормак: В прошлом году истек срок патента?
Эндрю Поэлстра: Срок истёк в 2008 году. Шнорр запатентовал это и хотел использовать свой патент. Он требовал выплаты роялти всеми, кто хотел его использовать.
Питер МакКормак: Но никто его не использовал!
Эндрю Полстра: Да! Реальность такова, что никто не хочет использовать запатентованную криптографию. Это невозможно стандартизировать, поскольку организации не хотели работать с запатентованной криптографией, которая включала бы выплаты роялти каким-то людям (в этом случае доктору Шнорр лично). В ответ NIST (Национальный институт стандартов и технологий) разработал ECDSA — точнее, DSA. Первоначально это была не эллиптическая кривая. Хотя это было относительно простое изменение исходной схемы — использовать эллиптические кривые.
По сути, DSA была ответом Шнорру, где они взяли простую алгебраическую структуру Шнорра и сделали ее настолько сложной, насколько могли — я думаю, это лучший способ описать эту схему.
Подписи Шнорра просто умножают и складывают, что является простейшими вещами, которые вы можете сделать. Все эти усложнения были разработы только для того, чтобы избежать патентов, и Шнорр заявлял об этом на протяжении многих лет. Я думаю, что ECDSA действительно нарушает патент Шнорра, несмотря на эти изменения. Но, насколько мне известно, он никогда не заявлял об этом в суде.
В результате все использовали ECDSA, она была стандартизирована, а в 2008 году срок действия патента истек. Я не знаю, быстро ли это заметили, но стоит отметить, что в 2010 году Дэн Бернштейн выпустил протокол подписи Ed25519, который является разновидностью подписи Шнорра…
Питер МакКормак: Так значит срок действия патента истек за год до биткоина?
Эндрю Полстра: Да, именно так. Я не верю а то, что Сатоши знал об истечении срока действия патента. Причина, по которой я в это не верю, заключается в том, что биткоин в своем первоначальной реализации использовал открытый SSL для подписи. Он также использовал открытый SSL во многих других местах.
Он сделал это, используя все эти открытые функции SSL, и это есть в согласованном коде в нескольких местах. Из этого я заключаю, что Сатоши принял множество решений, основанных на использовании доступных готовых библиотек.
Мы написали код для мультиподписей Шнорра. Мы написали код для выполнения пороговых подписей, когда, к примеру, есть 10 участников, но вы хотите, чтобы любые семь из них могли создать подпись. Тут можно сделать несколько интересных вещей.
Питер МакКормак: Шнорр есть в Zcash, верно?
Эндрю Полстра: Zcash, думаю, использует ECDSA для своих открытых транзакций, потому что это по сути просто биткоин-транзакции. Но для своих закртытых (защищенных) транзакций они используют более сложные криптографические конструкции.
Питер МакКормак: Итак, вы руководитель исследований в Blockstream. Вы всегда там занимали эту должность?
Эндрю Поэлстра: Нет. Когда я начал работать в Blockstream, там был Грегори Максвелл. Он был техническим директором, и в то время мы были меньшей компанией, чем сейчас. По сути, каждый, кто занимался какой-либо разработкой, был так или иначе исследователем, а Грег более-менее контролировал то, чем мы занимаемся.
Мы выросли, и позиция Грега как CTO все больше походила на должность менеджера. Как мне кажется, Грегу не нравилось делать каждый день те вещи, которые и я думаю его отвлекали от решения проблем, которые его интересовали, поэтому в 2017 году он ушёл из компании.
Когда он ушел с поста технического директора, возникла проблема в управлении исследованиями. Вместо Грега мы создали новую должность, директора по исследованиям, и Грег попросил меня занять эту должность. На самом деле я мог бы продолжать заниматься своими собственными исследовательскими проектами, но нужен был кто-то, кто отвечал бы за исследования и мог бы общаться со СМИ. Я разговаривал со СМИ немного больше, чем ожидал, и у меня было меньше времени, чтобы заниматься этим исследованием.
Питер Маккормак: Я полагаю, что вы, будучи руководителем исследований в Blockstream, в действительности являетесь исследователем биткоина?
Эндрю Поэлстра: Да! Всё, что я делаю и всё, что делает исследователи Blockstream, в конечном итоге сводится к решениям, которые бы хорошо повлияли на экосистему биткоина, чтобы люди могли реально пользоваться этой системой.
Новости о биткоин, блокчейне и криптовалютах
Автор: Саша Косован