В этой статье на русском языке рассматривается whitepaper Libra и детали которые в нём указаны.
Всё что выделено как цитата - это перевод текста из whitepaper libra
Аннотация
1. Введение
Модель аккаунтов имеет смысл, потому что Facebook вряд ли будет заботиться о конфиденциальности, хотя кажется, что он заинтересован в умных контрактах.
2. Логическая модель данных
Цель размещения серий транзакций в контейнеры или блоки заключается в их упорядочивании, и маркировке по времени. Это очень важно для без разрешенных сетей, в которых данные аутентифицируются через динамические многосторонние подписи, где валидаторы могут свободно присоединяться и покидать сеть. Так как Libra работает с разрешенной системой, она может использовать более эффективный алгоритм консенсуса, который не требует серийной обработки транзакций, поскольку история транзакций гораздо реже может быть переписана.
3. Выполнение транзакций
Мы видим, что блокчейн Libra на самом деле не является блокчейном.
4. Аутентифицированные структуры данных и хранилище
5. Консенсус задачи византийских генералов
1. Противодействовать недетерминированным ошибкам, используя валидаторов, подписывающих состояние блока, а не только последовательность транзакций.
2. Лидер, который выдает явные тайм-ауты, и валидаторы полагаются на кворум тех, кто переходит в следующий раунд — это должно улучшить пригодность.
3. Непредсказуемый механизм выборов лидеров для ограничения DoS-атак на лидеров.
4. Совокупные подписи сохраняют личность валидаторов, подписывающих кворумные сертификаты для голосования за принятие блока.
6. Организация сети
7. Основная реализация Libra
8. Производительность
Минимальные требования к нодам:
9. Реализация политики в отношении экосистемы Libra с Move
(с) TheFuzzStone
Всё что выделено как цитата - это перевод текста из whitepaper libra
Аннотация
Скажем прямо — система будет контролироваться группой представителей сверху вниз. Однако следует отметить, что в ней говорится, что база данных предназначена для “программируемых ресурсов”, а не только для цифровой валюты.Протокол Libra позволяет использовать набор репликаторов, на которые ссылаются как на валидаторов — от различных органов власти для совместного ведения базы данных программируемых ресурсов.
Употребление общих слов, таких как “ресурсы”, заставляет меня подозревать, что это нечто гораздо большее, чем просто стейблкоин.Эти ресурсы принадлежат различным учетным записям пользователей, аутентифицированных криптографией с открытым ключом и придерживающихся пользовательских правил, установленных разработчиками этих ресурсов.
Хорошо, теперь это становится интересным. Использование специально разработанного “умного” языка контрактов приведет к возникновению большого числа вопросов о том, насколько многофункциональным является этот язык, и, как следствие, насколько надежна система в отношении к враждебным контрактам. Будут также вопросы о дружелюбном отношении к разработчикам и о том, насколько хорошо Libra может защитить разработчиков умных контрактов от “выстрела в ногу”.Транзакции основаны на предопределенных и, в будущих версиях, определенных пользователем умных контрактах на новом языке программирования под названием Move. Мы используем Move для определения основных механизмов блокчейна, таких как валюта и участие валидатора.
Звучит так, будто Libra Association будет федерацией, которая может развиваться с помощью системы голосования и какой-то уже существующей репутации.Эти основные механизмы позволяют создать уникальный механизм управления, основанный на стабильности и репутации существующих институтов на ранних этапах, но со временем осуществляющий переход к полностью открытой системе.
1. Введение
Libra — это общий протокол шифрования имущества, и первым активом будет стейблкоин.Эта экосистема предложит новую глобальную валюту — монету Libra, которая будет полностью обеспечена банковскими депозитами и ценными бумагами от высококачественных центральных банков.
Сильно похоже на proof of stake. Очевидно, что через пять лет членство должно быть открытым, и надеюсь, что к тому времени они уже разберутся с proof of stake, хотя я думаю, они столкнутся с теми же проблемами, что и Ethereum.Со временем право на членство изменится и станет полностью открытым, основываясь только на членских активах Libra.
Я почти уверен, что это будет первый раз, когда распределенная сеть перейдет с разрешенной на неразрешённую. Возможно, сеть в целом сможет переключиться на proof of stake, но для того, чтобы сохранять стейблкоин, некоторые организации должны держать мост открытым к традиционной финансовой системе. Это будет постоянной точкой централизованного контроля через Libra Association.Ассоциация опубликовала отчеты с изложением… дорожной карты перехода к неразрешенной системе.
Это похоже на Задачу Византийских Генералов, которая хорошо понимается 20-летним алгоритмом, хотя они, вероятно, и сделали несколько доработок. В Разделе 5 вайт пейпера мы видим, что он называется LibraBFT, что является вариацией протокола консенсуса HotStuff.Валидаторы по очереди управляют процессом проведения транзакций. Когда валидатор выступает в качестве лидера, он предлагает транзакции, как те, которые предоставлены ему непосредственно клиентами, и те, которые косвенно предоставлены через других валидаторов, к другим валидаторам. Все валидаторы выполняют транзакции и формируют аутентифицированную структуру данных, которая содержит новую историю регистра. Валидаторы голосуют за аутентификатора для данной структуры данных в рамках консенсуса протокола.
Это примечательно, в первую очередь потому, что это означает, что новые валидаторы должны иметь возможность быстро подключаться к сети и синхронизироваться, без необходимости повторно анализировать всю историю блокчейна, предполагая, что они доверяют уже существующим валидаторам.В рамках выполнения транзакции T в версии i, консенсус-протокол выдаёт подпись на полное состояние базы данных в версии i — включая всю её историю — для проверки подлинности запросов от клиентов.
Модель аккаунтов имеет смысл, потому что Facebook вряд ли будет заботиться о конфиденциальности, хотя кажется, что он заинтересован в умных контрактах.
2. Логическая модель данных
С точки зрения структуры данных, Libra больше похожа на Ethereum или Ripple, чем на Bitcoin. Модель UTXO имеет свои плюсы и минусы, такие как лучшая конфиденциальность и более надежная история транзакций, благодаря простоте истории на основе выходных данных, но может быть более трудной в работе со сложными умными контрактами. Таким образом, модель аккаунта имеет смысл, потому что Facebook вряд ли будет заботиться о конфиденциальности, даже несмотря на то, что платформа заинтересована в умных контрактах.Протокол Libra использует модель данных на основе учетных записей, чтобы шифровать состояние регистра.
Это звучит удивительно хорошо, но мне интересно, если это так и в случае с Libra Coin (активом). Будет интересно посмотреть, насколько открыта эта система для разработчиков, желающих создавать приложения, которые в большей степени сохраняют конфиденциальность.Протокол Libra не связывает учетные записи с личностью человека. Пользователь может создавать несколько учетных записей, создавая несколько пар ключей. Учетные записи, контролируемые одним и тем же пользователем, не имеют внутренней связи друг с другом. Эта схема аналогична схеме Bitcoin и Ethereum, поскольку она обеспечивает псевдонимность для пользователей.
Похоже, вы можете сгенерировать адрес, и этот адрес может иметь произвольное количество назначенных ему активов, если каждый из них имеет уникальное имя.Каждый ресурс имеет тип, заявленный модулем. Типы ресурсов — это номинальные типы, которые состоят из имени типа, имени и адреса ресурса объявившего модуль.
Теперь мы знаем, как система защищена от атак, связанных с исчерпанием ресурсов, предположительно с использованием системы стоимости ресурсов, аналогичной системе Ethereum.При выполнении транзакции T i формируется новое состояние регистра S i, а также код состояния выполнения, использование газа и список событий.
Интересно. Фактически нет никакой блокчйен-структуры данных в протоколе Libra, блоки являются скорее виртуальной, логической конструкцией, которая используется валидаторами с целью координации подтвержденных снимков состояния системы. Вспомним, что теперь первое предложение этого раздела имеет больше смысла:Отсутствует понятие блокировки транзакций в истории регистра.
Каждая крипто-сеть, с которой я знаком, работает одинаково на высоком уровне: есть состояние системы, затем выполняется транзакция, которая фактически является переходной функцией состояния системы, а затем возникает новое состояние системы.Все данные в Libra Blockchain хранятся в единой версии базы данных. Номер версии — это 64-битное целое число, соответствующее количеству совершенных в системе транзакций.
Цель размещения серий транзакций в контейнеры или блоки заключается в их упорядочивании, и маркировке по времени. Это очень важно для без разрешенных сетей, в которых данные аутентифицируются через динамические многосторонние подписи, где валидаторы могут свободно присоединяться и покидать сеть. Так как Libra работает с разрешенной системой, она может использовать более эффективный алгоритм консенсуса, который не требует серийной обработки транзакций, поскольку история транзакций гораздо реже может быть переписана.
Это очень похоже на планы “членства открытого валидатора”, о которых говорилось выше. Похоже, что Facebook еще не решил ни одну из огромных проблем, над которыми Ethereum работает уже много летВ первоначальной версии протокола Libra для пользователей будет доступно только ограниченное количество функций Move. Хотя Move используется для определения основных концепций системы, таких как валюта Libra, пользователи не могут публиковать персональные модули, которые декларируют свои собственные типы ресурсов. Такой подход позволяет использовать язык Move и инструментарий, основанный на опыте реализации основных компонентов системы, до того, как они будут представлены пользователям. Этот подход также позволяет избежать проблем с масштабируемостью при проведении транзакций и хранении данных, присущих универсальной платформе смарт контрактов.
Монеты Libra на самом деле являются родной единицей протокола, так же как и ETH является родной единицей протокола Ethereum. Это приводит к другому вопросу о псевдонимной природе Libra: можете ли вы приобрести монеты без AML/KYC? Если нет, то, похоже, вы не сможете анонимно использовать ни одну из функциональных возможностей системы. Читая о бумажнике Calibra, вы увидите, что для его использования потребуется AML/KYC. Поэтому мне интересно, будут ли, в конечном счете, в системе появляться препятствия, которые не находятся под жестким контролем.Для управления спросом на вычислительные мощности, протокол Libra взимает плату за транзакции, выраженную в монетах Libra.
Это очень расплывчато и вызывает много вопросов: Что такое низкая плата? Что такое нормальная работа? Что такое достаточный потенциал?Система спроектирована таким образом, чтобы иметь низкую плату при нормальной эксплуатации, когда имеется достаточный потенциал.
3. Выполнение транзакций
Это звучит довольно опасно, но авторы документа отмечают, что основные компоненты должны быть написаны защитно, чтобы предотвратить DoS-атакиМногие части основной логики блокчейна определяются с помощью Move, включая взимание платы за газ. Во избежание замкнутости VM отключает измерение газа во время выполнения этих основных компонентов.
Это проясняет более ранний вопрос о том, являются ли монеты Libra родным активом, как ETH или BTC. Я ожидаю, что эти монеты являются только стандартным или единственным типом ресурса, который будет разрешен в системе при ее запуске, а другие ресурсы появятся позже.Ключевой особенностью Move является возможность задавать собственные типы ресурсов… Система Move type предоставляет специальные гарантии безопасности ресурсов. Ресурс никогда не может быть скопирован, только перемещен. Соблюдение этих гарантий обеспечивается на статической основе с помощью Move VM. Это позволяет нам представлять монеты Libra как тип ресурса в языке Move.
Это звучит очень продуманно; надеюсь, это означает, что безопасность их языка будет проверена лучше, чем у Ethereum.В стековом байткоде Move меньше инструкций, чем в исходном языке более высокого уровня. Кроме того, каждая команда имеет простую семантику, которая может быть выражена еще меньшим количеством действий. Это уменьшает влияние спецификаций протокола Libra и облегчает обнаружение ошибок реализации.
Мы видим, что блокчейн Libra на самом деле не является блокчейном.
4. Аутентифицированные структуры данных и хранилище
В очередной раз мы видим, что Libra Blockchain на самом деле не является блокчейном. Очень странно, что данный протокол очень хорошо спроектирован, и все же его продолжают называть блокчейном, когда структура данных регистра представляет собой набор подписанных состояний самого регистра. Валидаторы выполняют свои обязательства для каждого состояния регистра, и все состояния регистров также выполняются в деревьях Меркля, но мне еще не удалось увидеть никаких связанных списков данных, образующих цепочку — гораздо меньше цепочки блоков.Протокол Libra использует единственное дерево Меркля для обеспечения аутентифицированной структуры данных для истории регистра … в частности, история регистра использует аккумулятор дерева Меркля для формирования других деревьев Меркля, что также обеспечивает эффективные операции с приложениями.
Хммм, звучит как открытость к DoS-атакам, если нет ограничений на объем данных, хранящихся на данной учетной записиАутентификатором учетной записи является хэш этого сериализованного представления. Обратите внимание, что это представление требует пересчета аутентификатора над учётной записью, после любого изменения учётной записи. Стоимость этой операции O от n, где n — длина байтового представления полноценного аккаунта.
Мы предполагаем, что по мере использования системы рост объема памяти, связанный с учетными записями, может стать проблемой. Подобно тому, как газ поощряет ответственное использование вычислительных ресурсов, мы ожидаем, что для хранения газа может понадобиться аналогичный механизм, основанный на арендной основе. Мы оцениваем широкий спектр подходов к арендному механизму, который лучше всего подходит для экосистемы.
Еще одна нерешённая проблема. Не могу дождаться мемов “Чертовски высокая арендная плата!”
Ай. Неясно, как долго этот “период времени”, но если период времени меньше суток, то, наверное, указанный “период времени” тоже. Представляется, что этот консенсус-протокол недостаточно прочен, чтобы участники могли покинуть сеть и вновь присоединиться к ней по своему желанию.Голосование должно оставаться честным как в течение определенного периода времени, так и после него, чтобы позволить клиентам синхронизироваться с новой конфигурацией. Клиенту, который находится вне сети дольше этого времени, необходимо заново синхронизироваться, используя какой-то внешний источник достоверной информации, чтобы получить точку, которой он доверяет.
5. Консенсус задачи византийских генералов
Подобно PBFT, этот алгоритм консенсуса может выдержать 33% валидаторов, считая их нечестными. Модификации HotStuff звучат разумно:LibraBFT предполагает, что набор из 3f + 1 голоса распределяется между набором валидаторов, которые могут быть честными, или византийскими. LibraBFT остается в безопасности, предотвращая такие атаки, как двойные расходы и форки, когда не более f голосов контролируются византийскими валидаторами.
1. Противодействовать недетерминированным ошибкам, используя валидаторов, подписывающих состояние блока, а не только последовательность транзакций.
2. Лидер, который выдает явные тайм-ауты, и валидаторы полагаются на кворум тех, кто переходит в следующий раунд — это должно улучшить пригодность.
3. Непредсказуемый механизм выборов лидеров для ограничения DoS-атак на лидеров.
4. Совокупные подписи сохраняют личность валидаторов, подписывающих кворумные сертификаты для голосования за принятие блока.
6. Организация сети
Это потребует большой работы для того, чтобы система прошла несколько сотен валидаторов.Каждый валидатор в протоколе Libra сохраняет полноправное членство в системе и подключается непосредственно к любому валидатору, с которым ему необходимо общаться. Предполагается, что валидатор, к которому невозможно подключиться напрямую, подпадает под квоту византийских ошибок, допускаемых системой.
7. Основная реализация Libra
Подводя итог этому разделу, можно сказать, что он написан на языке Rust, который, похоже, является хорошим началом для производительности и безопасности.Безопасность цепочки блокчейна Libra зависит от правильной реализации валидаторов, программ Move и Move VM. Работа над решением этих вопросов в Libra Core продолжается.
8. Производительность
Так как будет только около 100 валидаторов, и все они напрямую связаны друг с другом, 10-секундный интервал между блоками звучит вполне реально.Мы ожидаем, что первый запуск протокола Libra будет поддерживать 1000 платежных транзакций в секунду с 10-секундным интервалом между отправкой транзакции и ее завершением.
Минимальные требования к нодам:
- Интернет-соединение 40 Мбит/с
- 1 CPU
- 16 ТБ SSD
9. Реализация политики в отношении экосистемы Libra с Move
Хорошо, но теперь мы говорим о событиях, которые не связаны с сетью. Как было сказано ранее, сеть не способна выполнять скрипты, использующие входные данные, которые являются внешними по отношению к состоянию сети. Таким образом, модификаторы “могут” и “должны” в вышеприведенном фрагменте, несомненно, ссылаться на политику Libra Association или договорные обязательства, о которых сеть не знает.Резерв Libra Coin является ключевым механизмом сохранения ценности. Благодаря резерву, каждая монета полностью обеспечена набором стабильных и ликвидных активов. Контракт на выпуск монет Libra позволяет ассоциации выпускать новые монеты, когда спрос растет, и уничтожать их, когда спрос сокращается. Ассоциация не проводит денежно-кредитной политики. Она может выпускать и сжигать монеты только по требованию уполномоченных реселлеров. Пользователям не нужно беспокоиться об ассоциации, вводящей инфляцию в систему или девальвирующей валюту: Для выпуска новых монет в резерве должно быть соответствующий фиатный депозит.
Если предположить, что валидаторы голосуют за изменения в группе валидаторов, похоже, что это приводит к проблемам, аналогичным той, что мы видим в proof of stake системам — long range атакам. Если достаточное количество приватных ключей членов-основателей будет скомпрометировано, может ли злоумышленник создать новую историю регистра с генезис-блока? Если да, примут ли его другие узлы? Неясно, позволяет ли консенсус-протокол переписывать старые состояния или же он существует только в одном месте.Алгоритм консенсуса основан на управлении набором валидаторов с помощью модуля Move, который поддерживает текущий набор валидаторов и управляет распределением голосов между валидаторами. Изначально блокчейн Libra предоставляет голоса только членам-основателям.
(с) TheFuzzStone