На прошлой неделе ключевые разработчики биткоина выпустили долгожданное обновление ядра версии 0.9.0. Сторонние разработчики уже пытаются «протолкнуть» свои изменения.
Counterparty, финансовая торговая площадка созданная на базе цепочки блоков биткоина, на прошлой неделе обратилась к основным разработчикам протокола с открытым письмом, в котором призывает программистов пересмотреть ключевой компонент последней версии протокола. Данный компонент носит название OP_RETURN, и был он разработан для того, чтобы позволить пользователям хранить дополнительные данные в цепи блоков.
Первоначально OP_RETURN предназначался для хранения 80 байт дополнительных данных в каждой биткоин-транзакции, но разработчики решили сократить объем до 40 байт. Именно это и стало причиной недовольства Counterparty. Финансовая торговая площадка предоставляет своим клиентам возможность создавать новые классы активов и производных финансовых инструментов для торговли через цепочку блоков биткоина, и сервису необходимы эти 80 байт для хранения своих данных.
«Лимит в 40 байт (вместо изначально запланированных 80) делает OP_RETURN совершенно непригодным для целей Counterparty», – говорится в письме.
Другое отличие заключается в использовании еще одной особенности протокола биткоина, так называемой мультиподписи выходных данных. Данная функция позволяет использовать более одной подписи для конкретной биткоин сделки, и предназначена в основном для платежей, в которых задействована третья сторона в качестве гаранта сделки. Но вторая подпись может быть также использована и для хранения данных.
«Если лимит так и останется на уровне 40 байт, то мы будем вынуждены подстраиваться под структуру протокола, неудобную для обеспечения нормальной работы нашей площадки», – говорится в письме Counterparty.
Чтобы избежать подобных затруднений компания предлагает разработчикам восстановить исходный предел в 80 байт.
В обсуждении на форуме Bitcoin Talk, один из основных разработчиков Джефф Гарзик аргументирует решение специалистов вдвое снизить объем хранимых данных. Он предупреждает пользователей о том, что если сделка обрабатывается в биткоин-сети, то ее обрабатывает каждый, а это значит, что данные, которые вы сохраняете в цепочке блоков, должны быть сохранены всеми пользователями.
«Это можно назвать фрирайдом. Учитывая то, что подавляющее большинство (более 90%) приложений для цепи блоков предназначено для валютных операций, использование полных нодов в качестве терминалов для хранения данных является просто нарушением норм эксплуатации сетевого ресурса»
Гарзик обвиняет CounterParty и Mastercoin (еще один сервис, использующий цепочу блоков в своих собственных целях) в том, что они «просто спятили, начав использовать P2P узлы биткоин-системы в качестве хранилищ нежелательных данных», и даже не задумались оповестить сообщество, прежде чем приступить к такой неразумной трате общих ресурсов.
Неужели разработчикам действительно нужно подстраиваться под сторонние сервисы, использующие цепочку блоков биткона? «Если система желает оставаться актуальной, то лучше чтобы это было так», — говорит «PhantomPhreak», главный программист CounterParty.
PhantomPhreak утверждает, что обеим сторонам выгодны отношения такого типа. Используя цепочки блоков биткоина, CounterParty и ему подобные сервисы получают заранее готовые услуги, включая минимизацию задержек, обнаружение кэширующих узлов, защиту от DOS-атак и т.п. Биткоин-система, в свою очередь, получает возможность оставаться актуальной.
«Биткоин может быть очень консервативен по отношению к поддерживаемому им функционалу, и в то же время система приобретает новые функции, которые помогают ей оставаться актуальной и полезной»
Получается, что Counterparty, не способствовавшая развитию открытого исходного кода ядра биткоина, и ядро биткоина, которому необходим вклад новых пользователей, тесно связаны друг с другом, и ни одна из сторон этому не рада. Phantomphreak говорит, что «некоторые из разработчиков Биткоин пытаются помешать Counterparty, используя протокол в его нынешнем виде, со всей его гибкостью».
Основной разработчик Майк Хирн предлагает свое решение того, как навести порядок во всей этой запутанной ситуации. На самом деле он говорил об этом еще в 2012 году, когда не существовало ни Counterparty, ни Mastercoin. Вместо того чтобы хранить большое количество данных в специальном поле цепочки блоков, почему бы просто не использовать для хранения третью сторону, пул хранения данных P2P? Этого можно достичь при помощи так называемой распределенной таблицы хешей (distributed hash table, DHT).
Блокчейн и так не маленький, ещё в него напихивать всякий мусор?