Больше денег: что такое Ethereum и как блокчейн меняет мир - Виталий Дмитриевич Бутерин
Дерево Меркла
Слева: лишь малое число вершин в дереве Меркла необходимо для доказательства валидности ветви. Справа: любая попытка изменить любую часть дерева Меркла приведет к нестыковке в корне дерева
Для масштабируемости протокола Bitcoin важно, что каждый блок встроен в многоуровневую структуру данных. Упомянутый хеш блока – на самом деле только хеш заголовка блока, примерно 200-байтовый фрагмент данных, включающий в себя временную метку, одноразовый код блока, хеш предыдущего блока и корневой хеш структуры данных под названием дерево Меркла, которая и хранит всю информацию о транзакциях блока. Дерево Меркла – тип бинарного дерева, устроенный следующим образом: внизу – набор нод, содержащих всю информацию; в середине – промежуточные ноды, где каждая представляет собой хеш двух дочерних нод; а наверху – одна корневая нода, также сформированная хешем двух дочерних нод.
Цель дерева Меркла – раздробить данные в блоке: ноде достаточно загрузить только заголовок блока из одного источника и нужную часть дерева из другого, чтобы быстро удостовериться, что вся информация корректна. Все это работает, потому что хеши вычисляются «вверх»: если злоумышленник попытается «подсунуть» фейковую транзакцию внизу дерева Меркла, все ноды сверху также изменят свои хеши, ноды над ними – тоже, и так до самого корня, из-за чего изменится и хеш блока. Из-за этого протокол будет воспринимать такой блок как совершенно другой (proof-of-work которого будет практически наверняка не валиден).
Можно сказать, что деревья Меркла необходимы для жизнеспособности системы Bitcoin в долгосрочной перспективе. На апрель 2014 года полная нода сети Bitcoin, которая полностью хранит и обрабатывает каждый блок, занимает 15 Гб дискового пространства и растет более чем на 1 Гб в месяц. На данный момент хранить полную копию блокчейна могут позволить себе владельцы ПК (но не смартфонов), а в будущем с этим будут справляться только специальные компании и отдельные энтузиасты. Протокол «упрощенной верификации платежей» (simplified payment verification, SPV) допускает существование также «легких нод», которые загружают лишь заголовки блоков, проверяют их proof-of-work и затем загружают «ветви» дерева Меркла лишь с необходимыми держателю такой ноды транзакциями. Это позволяет держателям легких нод надежно определить статус любой биткойн-транзакции, а также собственный текущий баланс, загрузив при этом крайне малую часть всего блокчейна.
АЛЬТЕРНАТИВНЫЕ ПРИЛОЖЕНИЯ БЛОКЧЕЙНА
Идея нефинансового применения блокчейн-технологии также имеет долгую историю. В 2005 году Ник Сабо изложил концепцию «безопасного хранения права на собственность», в которой описал, как «новые достижения в технологии реплицированных баз данных» позволят использовать основанные на блокчейне системы для хранения реестра земельной собственности, – что возможно выработать фреймворк, способный описывать, в частности, самообеспечение, «враждебное» владение землей и налог на земельную собственность. Но, к сожалению, никакой эффективной реализации реплицированных баз данных на тот момент не было, и протокол не имел практического применения. Однако с развитием системы децентрализованного консенсуса Bitcoin число альтернативных применений блокчейна стало быстро расти.
◊ NAMECOIN. Созданный в 2010 году Namecoin можно описать как децентрализованную базу данных зарегистрированных имен. Децентрализованным протоколам вроде Tor, Bitcoin и BitMessage нужен какой-то способ идентификации учетных записей, чтобы другие люди могли с ними взаимодействовать, но во всех существующих возможен лишь один вид идентификации – псевдослучайный хеш вроде 1LW79wp5ZBqaHW1jL5TCiBCrhQYtHagUWy. В идеале пользователям хотелось бы иметь возможность создавать аккаунты с именами вроде «george». Но проблема в том, что если кто-то может создать аккаунт «george», то другой пользователь сможет таким же образом зарегистрировать аккаунт с тем же именем и выдавать себя за первого человека. Единственное решение здесь – парадигма «первого заявителя», где второй заявитель не сможет претендовать на уже занятое имя. Такой подход прекрасно сочетается с протоколом консенсуса Bitcoin. Namecoin – первый и самый успешный пример такой системы регистрации имен.
◊ ЦВЕТНЫЕ МОНЕТЫ. Цель цветных монет – позволить людям создавать собственные цифровые валюты (или, что тоже важно, валюты с одной единицей – цифровые токены) на блокчейне Bitcoin. В протоколе цветных монет любой может «выпустить» новую валюту, публично перекрасив свои UTXO из Bitcoin. Протокол рекурсивно окрашивает UTXO в цвет монет на входе создавших их транзакций (в случаях, когда на входе присутствует несколько цветов, применяются особые правила). Это позволяет пользователям поддерживать кошельки, содержащие только UTXO определенного цвета, и отправлять их так же, как обычные биткойны, отслеживая в истории цвет любого полученного UTXO.
◊ МЕТАКОЙН. Идея следующая: протокол метакойна располагается поверх сети Bitcoin, в ней же хранятся метакойн-транзакции, но при этом используется другая функция изменения состояния – APPLY’. Поскольку метакойн-протокол не может предотвратить появление невалидных метакойн-транзакций в блокчейне Bitcoin, в протокол добавляется правило: если APPLY’ (S, TX) выдает ошибку, применить APPLY’ (S, TX) = S. Это обеспечивает простой механизм для создания произвольного протокола криптовалюты с расширенным функционалом, невозможным внутри самого Bitcoin, но с очень низкой стоимостью разработки, поскольку сложности майнинга и сетевого взаимодействия уже обрабатываются протоколом Bitcoin. Метакойны используют для реализации некоторых классов финансовых контрактов, регистрации имен и децентрализованных бирж.
Таким образом, есть два подхода к созданию протокола консенсуса: построить независимую сеть или же построить протокол поверх сети Bitcoin. Первый подход при всей его успешности в приложениях вроде Namecoin трудноосуществим; для реализации каждой конкретной идеи необходимо построить свой блокчейн, а также создать и протестировать все необходимые переходы состояний и сетевой код. Кроме того, мы прогнозируем, что набор приложений для технологии децентрализованного консенсуса будет распределяться по степенному закону, где
Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Больше денег: что такое Ethereum и как блокчейн меняет мир - Виталий Дмитриевич Бутерин, относящееся к жанру Прочая околокомпьютерная литература / Публицистика. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.


