Что представляет собой криптовалюта Facebook Libra? [Самое полное руководство]. Часть 2

Делитесь и голосуйте:

Содержание статьи:

  1. Криптовалюта Libra: консенсусный алгоритм
  2. Консенсус Накамото
  3. Классический консенсус
  4. Byzantine Tolerance
  5. Practical Byzantine Fault Tolerance или pBFT
  6. Криптовалюта Libra: протокол LibraBFT
  7. Криптовалюта Libra: ассоциация
  8. Криптовалюта Libra: управление резервом
  9. Увеличение децентрализации с течением времени
  10. Криптовалюта Libra: Move – язык программирования Libra
  11. Функция 1: статическая типизация снизу вверх
  12. Функция 2: тип ресурса
  13. Функция 3: дизайн безопасности контракта
  14. Функция 4: продвинутая модульная система
  15. Заключение: чем является криптовалюта Libra Facebook для криптографии

В первой части данного руководства мы познакомили читателей с криптовалютой Libra Facebook и рассказали о её блокчейне.

Мы также рассказали вам о том, что у Facebook есть уникальная возможность использовать свою пользовательскую базу, чтобы привлечь внимание к своей монете.

Теперь мы собираемся обсудить консенсусный алгоритм LibraBFT, язык программирования Move и Libra Association.

LibraBFT – это консенсусный алгоритм Libra. “Консенсусом” называют динамический способ достижения согласия в группе.

При голосовании принимается мнение большинства, а чувства и интересы меньшинства, игнорируются, тогда как консенсус обеспечивает достижение согласия, которое могло бы принести пользу всей группе в целом.

С более идеалистической точки зрения консенсус может использоваться людьми, разбросанными по всему миру, для создания более равноправного и справедливого общества.

Метод, с помощью которого достигается принятие решений на основе консенсуса, называется “консенсусным механизмом“.

Консенсусные механизмы можно подразделить на следующие категории

  • Консенсус Накамото.
  • Классический консенсус.

Читайте также Криптовалюта в Украине. Официальная позиция властей и перспективы 2019

Следующий этап эволюции консенсуса – консенсус Накамото.

Такие консенсусные механизмы, названные в честь псевдонима анонимного создателя Биткоина Сатоши Накамото, широко используются в современных децентрализованных экосистемах.

Итак, в чём заключаются основные требования консенсуса Накамото

  • Он должен быть в состоянии работать с обширной сетью.
  • Механизм консенсуса должен обеспечивать надлежащую проверку транзакций с использованием как минимум 2/3 сети.
  • Должен защитить от двойных трат.

Итак, что отличает системы консенсуса Накамото от классического консенсуса? В консенсусе Накамото в сеть внедрён особый элемент, называемый “сложностью“.

Эта сложность может быть связана с какой-нибудь работой, ресурсом, активом и т. д., который должен использовать участник сети для создания нового блока.

Сложность” помогает в следующем

  • Верификация блоков.
  • Контроль количества монет/токенов, находящихся в экосистеме.
  • Обеспечение безопасности системы.

Алгоритм Proof-of-work является примером консенсуса Накамото.

Читайте также Что представляет собой криптовалюта Facebook Libra? [Самое полное руководство]. Часть 1

В этом классе алгоритмов участвующие процессы достигают консенсуса через несколько раундов обмена сообщениями, проведения голосования и проверки безопасности.

Для того, чтобы эта система работала, голосования и доказательства безопасности должны быть согласованы значительным большинством процессов.

Классические консенсусные алгоритмы должны соответствовать следующим свойствам

  • Валидность. Если сообщение отправляется корректным процессом, то предполагается, что этот процесс в конечном итоге доставит это сообщение.
  • Согласие. Если сообщение доставляется корректным процессом, то в конечном итоге это сообщение будет им доставлено.
  • Целостность. Если сообщение доставляется корректным процессом, то предыдущий процесс, который доставил это же сообщение, должен быть корректным. Ни один корректный процесс не доставит одно и то же сообщение более одного раза.
  • Общий порядок. Если два сообщения m и n были отправлены двумя корректными процессами, то: если один процесс отправил m перед n, то мы можем автоматически предположить, что другой процесс также отправил m перед n.

Читайте также Криптовалюта в России 2019. Закон о криптовалюте

Система называется Byzantine Tolerance, если она может решить Задачу византийских генералов.

Представьте себе следующий сценарий.

У нас имеется несколько генералов, окруживших вражескую крепость со своими армиями. Крепость очень надёжная, поэтому на неё должно напасть подавляющее большинство (2/3) генералов одновременно.

Никакой центральной власти, которая командует всеми этими генералами, нет, так что они действуют на своё усмотрение.

Единственный способ хоть как-то скоординировать атаку – это послать к каждому из генералов гонца с конкретным сообщением.

Однако именно здесь мы сталкиваемся с проблемой.

Дело в том, что не все наши генералы ведут себя честно. Некоторые из генералов пытаются организовать против нас заговор.

Их стратегия заключается в том, чтобы отказаться от атаки в последнюю секунду и оставить нашу армию в затруднительном положении. Вот это и есть Задача византийских генералов.

Проще говоря, как заставить децентрализованную систему работать, даже если некоторые из её участников ведут себя нечестно? Консенсусный алгоритм должен уметь это делать.

Ещё в восьмидесятых годах исследователи придумали метод решения Задачи византийских генералов, создав систему Byzantine Fault Tolerance (BFT). Принцип работы BFT довольно прост.

Распределённая система должна быть в состоянии достичь консенсуса, даже если некоторые ноды в сети становятся вредоносными.

Конечной целью этого механизма является защита от катастрофических сбоев системы за счёт уменьшения влияния, которое эти вредоносные ноды оказывают на работу сети.

В 1980-х годах было разработано несколько системных архитектур, в которых реализован BFT. К ним относятся FTMP от Draper, MMFC от Honeywell и SIFT от SRI.

Одним из наиболее ярких примеров классического консенсуса является Practical Byzantine Fault Tolerance или pBFT.

LibraBFT относится к классу классических консенсусных алгоритмов типа BFT.

Он основан на другом консенсусном алгоритме под названием HotStuff, который, в свою очередь, заимствует часть своей логики из pBFT.

Practical Byzantine Fault Tolerance является улучшенной в практическом плане формой BFT.

Принцип его работы основан на следующих предположениях

  • Ноды в сети постоянно связаны между собой.
  • В любой момент общее количество вредоносных нод просто не может превышать одной трети от общей их численности.

pBFT делает процесс достижения консенсуса чрезвычайно эффективным. В тот момент, когда 2/3 сети достигает согласия по определённому решению, оно исполняется.

Эта предпосылка также используется в более поздних механизмах консенсуса. Постоянная связь между нодами уменьшает задержку сети.

В pBFT используется асинхронная распределённая система, в которой все процессы соединяются между собой сетью.

Сеть может стать причиной того, что сообщения не доставляются, задерживаются, дублируются  или доставляются в искажённой форме.

Если N – общее количество процессов, а f – общее количество процессов византийского типа, то для поддержания системы pBFT её состояние следует поддерживать в виде: N ? 3f + 1.

Разработчики консенсусного протокола HotStuff улучшили pBFT, сделав его намного менее сложным.

Люди, готовящие запуск Libra, вдохновились успехами коллег из HotStuff и улучшили этот алгоритм, создав LibraBFT.

В LibraBFT ноды, отвечающие за создание блоков, называются “валидаторами“, и именно они добиваются прогресса в раундах.

В каждом раунде есть свой собственный назначенный валидатор, которого также называют лидером.

Он отвечает за предложение новых блоков и получение большинства голосов от остальных валидаторов, чтобы получить одобрение этого блока.

Давайте посмотрим, как работает этот протокол (контент позаимствован у Block Crypto)

  • Раунд начинается. Раунд – это фаза взаимодействия, инициируемая случайно выбранным лидером. Предложения, сделанные лидером, объединяются в цепочку с использованием криптографических хешей.
  • Лидер предлагает блок.
  • Если блок оказывается валидным, валидаторы подписывают его и отправляют свои голоса лидеру.
  • Когда лидер получает достаточное количество голосов для достижения кворума, он объединяет эти голоса в сертификат кворума (Quorum Certificate, QC).
  • Далее QC транслируется на каждую из нод.
  • Если лидер не сможет собрать QC, то другие валидаторы объявят тайм-аут и перейдут к следующему раунду. При этом лидер меняется.
  • В итоге, достижение достаточного количества блоков и QC позволит своевременно расширять цепочку, и каждый блок будет соответствовать правилам подтверждения протокола.
  • Если блок соответствует правилу подтверждения, цепочка неподтверждённых блоков до соответствующего блока становится подтверждённой.

Libra Association является управляющим органом блокчейна Libra. Это независимая некоммерческая организация, штаб-квартира которой находится в Женеве.

В whitepaper проекта говорится следующее:

ассоциация призвана способствовать работе блокчейна Libra; координировать согласие между его участниками – нодами валидаторов сети – в их стремлении продвигать, развивать и расширять сеть, а также управлять резервом“.

Ассоциация управляется Советом (Libra Association Council), в который входит по одному представителю на каждую ноду валидатора.

Совет принимает все решения, касающиеся сети, большинством в 2/3 голосов. Первоначально Совет будет состоять только из учредителей.

Наряду с принятием решений, Libra Association также будет выполнять две более важные задачи

  1. Управление резервом Libra.
  2. Увеличение децентрализации с течением времени.

Управление Libra Reserve имеет жизненно важное значение для стабильности и роста экономики Libra.

Только ассоциация может чеканить и сжигать монеты Libra

  • Токены создаются только тогда, когда авторизованные реселлеры приобретают их у ассоциации за фиатные деньги, которые полностью покрывают новые монеты.
  • Сжигаются эти токены только тогда, когда авторизованные реселлеры продают монеты Libra ассоциации в обмен на базовые активы.

Одной из важнейших целей Libra Association является продвижение в сторону децентрализации с течением времени. Переход начнётся в течение пяти лет с момента запуска.

В течение переходного периода зависимость сети от учредителей будет постепенно уменьшаться.

Вот полный список учредителей и партнёров

  • Andreessen Horowitz.
  • Anchorage.
  • Bison Trails.
  • Booking Holdings Inc.
  • Breakthrough Initiatives.
  • Calibra от Facebook.
  • COINBASE Inc.
  • EBay Inc.
  • Farfetch Ltd.
  • Iliad SA’s Free.
  • Lyft Inc.
  • Mastercard.
  • Mercado Pago от MercadoLibre Inc.
  • PayPal.
  • PayU от Naspers Ltd.
  • Ribbit Capital.
  • Spotify Technology SA.
  • Stripe Inc.
  • Thrive Capital.
  • Union Square Ventures.
  • Uber.
  • Visa.
  • Vodafone Group.
  • Xapo.
  • Creative Destruction Lab.
  • Kiva.
  • Mercy Corps.
  • Women’s World Banking.

Экономические отчёты и другие новости позволяют предположить, что за право управления нодой в экосистеме Libra компания Facebook взяла примерно по 10 миллионов долларов с каждого из участников.

Move – это новый язык программирования, предназначенный для реализации логики транзакций и “смарт-контрактов” на блокчейне Libra.

Главным приоритетом Move является обеспечение высокого уровня безопасности смарт-контрактов. Для этого Move использует подход, характерный для функциональных языков программирования.

Как работает функциональное программирование?

Предположим, что существует функция f(x), и мы хотим использовать её для вычисления функции g(x), которая нам требуется для работы с функцией h(x).

Вместо того, чтобы решать все эти задачи последовательно, мы можем просто объединить их в одну функцию:

h(g(f(x))).

Это упрощает математическое обоснование функционального подхода. Именно поэтому функциональные программы являются более безопасным подходом к созданию смарт-контрактов.

Это также помогает упростить формальную проверку, то есть, уменьшает количество усилий, необходимых для математического доказательства того, что делает программа и как она действует.

Именно это даёт Cardano его свойство под названием “код высокой гарантии” (High Assurance Code).

Давайте возьмём пример из реальной жизни и посмотрим, как это свойство может стать чрезвычайно важным и даже спасительным для жизни в определённых условиях.

Предположим, мы пишем программу, которая управляет воздушным движением.

Как вы сами понимаете, написание кода для такой системы требует высокой степени точности и аккуратности.

Мы не можем просто слепо писать какой-то код и надеяться на лучшее, когда жизнь людей находится под угрозой.

В подобных ситуациях нам нужен код, который гарантированно работает с высокой степенью математической достоверности.

Именно поэтому так желателен функциональный подход.

И это именно поэтому Cardano использует Haskell для кода своей экосистемы, а Plutus для своих смарт-контрактов. Как Haskell, так и Plutus являются функциональными языками.

Итак, давайте рассмотрим преимущества функционального подхода

  • Помогает создавать код с высокой степенью надёжности, потому что при его использовании гораздо легче математически проверить, как код будет себя вести.
  • Повышает удобочитаемость и ремонтопригодность, поскольку каждая функция предназначена для выполнения конкретной задачи. Эти функции также являются независимыми от состояния.
  • Код легче поддаётся преломлению, и любые изменения в коде проще реализовать. Это существенно упрощает циклическую разработку.
  • Отдельные функции можно легко изолировать, что облегчает их тестирование и отладку.

Три основных применения Move

  1. Выпуск криптовалют, токенов и цифровых активов.
  2. Обработка транзакций на блокчейне.
  3. Управление валидаторами.

Давайте рассмотрим некоторые из функций Move.

Статическая типизация Move намного строже, чем в Solidity. Благодаря этому многие простые ошибки обнаруживаются во время компиляции, а не во время выполнения.

Логика заключается в том, что хорошо типизированные программы никогда не зависают.

Поскольку смарт-контракты обычно обрабатывают транзакции на миллионы долларов, очень желательно, чтобы их код был отлажен идеально.

Move не является на 100% статически типизированным из-за требований к практичности. Он пытается выполнять проверку типов во время компиляции, а не во время развёртывания.

Примечательно, что виртуальная машина Move тоже использует статическую типизацию.

Традиционные языки программирования, включая Solidity, записывают цифровые активы как значения, которые могут быть представлены в виде неправильных чисел.

Проблема здесь заключается в том, что при программировании люди читают и копируют эти значения. С другой стороны, “Ресурс” – это то, что вы потребляете и не можете скопировать.

Именно поэтому цифровые активы в контракте Move имеют “тип ресурса” и обладают следующими качествами

  • Цифровые активы не могут быть скопированы.
  • Цифровые активы не могут исчезнуть.

Как указано в документации:

ресурсы первого класса – это очень общая концепция, которую программисты могут использовать не только для создания безопасных цифровых активов, но и для написания правильной бизнес-логики для защиты активов и применения политики контроля доступа“.

Основная идея “ресурсов первого класса” заключается в том, что цифровые активы являются гражданами первого класса.

Это свидетельствует о том, что Move является языком смарт-контрактов, разработанным именно для управления цифровыми активами.

Технически цифровые активы могут быть переменными в контрактах, которые будут сохраняться, назначаться и становиться параметрами/возвращаемыми значениями функций и процессов.

Статическая типизация Move позволяет компилятору обнаруживать большинство ошибок ресурсов во время компиляции и перед развертыванием, повышая безопасность смарт-контрактов.

Давайте разберемся в различиях между динамической и статической диспетчеризацией.

Динамическая диспетчеризация – это гибкий языковой механизм, который позволяет вписать в код несколько функций, процессов или подпрограмм, позволяющих программе вызывать внешнюю неизвестную программу/функцию для выполнения различных функций.

Статическая диспетчеризация, с другой стороны, позволяет программам вызывать только те функции, поведение которых уже известно.

На бумаге динамическая диспетчеризация кажется лучше, верно?

Тем не менее, чрезмерная гибкость открывает программу для ошибок и различных уязвимостей. Поэтому контракты Move не поддерживают динамическую диспетчеризацию.

Модульная система Move не поддерживает циклическую рекурсивную зависимость, поэтому ошибка повторного входа невозможна.

Именно эта ошибка сделала возможным печально известный взлом DAO, который привёл к тому, что Ethereum разделился на Ethereum и Ethereum Classic.

К слову о модульных системах.

В технической документации Libra Coin говорится:

Модули Move похожи на смарт-контракты на других блокчейн-языках. … Тем не менее, модули обеспечивают сильную абстракцию данных – каждый тип прозрачен внутри своего модуля и непрозрачен за его пределами“.

Модульная система Move оптимизирована для проведения эффективной формальной верификации.

Формальная верификация – это процесс, который математически показывает, что делает программа и как она действует.

Для критически важных программ, таких как смарт-контракты, формальная верификация является абсолютной необходимостью

  • Во-первых, модульная система Move обеспечит прочную основу для формальной верификации, позволяя вам определять инварианты (постоянные величины) внутри модуля. Инвариант – это строгое ограничение состояния цифровых активов, позволяющее получать ценную информацию для автоматизации формальной проверки.
  • Во-вторых, модульная система позволит сделать формальную верификацию модульной. Таким образом, вместо верификации всего контракта можно официально верифицировать только некоторые его части, что значительно сократит расходы.

Итак, теперь, когда мы подошли к концу, как вы думаете, хороша Libra для криптографии в целом или нет? Сообщество, судя по всему, раскололось. Давайте посмотрим на некоторые примеры реакции:

Положительная реакция

Брэд Гарлингхаус, генеральный директор Ripple, заявил, что Libra ускорила каталитическую контрактную деятельность Ripple. Он добавил:

Я пошлю ящик шампанского Дэвиду Маркусу – парню, который управляет Libra“.

Генеральный директор Morgan Creek Энтони Помплиано:

Самое важное в объявлении Facebook заключается в том, что каждый пользователь  Facebook в итоге получит цифровой кошелёк. Почти 1/3 населения Земли присоединится к миру криптовалют. Это очень хорошо для Bitcoin“.

Руководитель Банка Англии Марк Карни:

Банк Англии рассматривает проект Libra от Facebook с открытым умом, но не с открытой дверью. В отличие от социальных сетей … условия участия для таких инновационных проектов, как Libra, должны приниматься до их запуска. Чтобы оставаться доминирующим игроком в Великобритании, мы должны делать то, что делают лондонские рынки: развиваться“.Читайте также Криптовалюта deCRED (DCR): все, что необходимо знать

Негативная реакция

Нуриэль Рубини:

Этот проект не имеет никакого отношения к блокчейну. Полностью частная, контролируемая, централизованная, верифицируемая и авторизованная небольшим числом эксклюзивных нод сеть. Какое отношение она имеет к криптовалюте или блокчейну? Никакого“.

Сара Джейми Льюис:

С нетерпением жду появления криптовалюты с этикой Uber, сопротивлением цензуре Paypal и централизацией Visa, и чтобы всё это было связано проверенной конфиденциальностью Facebook“.

Министр финансов Франции Бруно Ле Мэр:

[Libra] не может и… не должна появиться… не может быть и речи о том, чтобы [Libra] стала суверенной валютой“.

Член Конгресса США Шеррод Браун, главный демократ в банковском комитете Сената:

Facebook уже слишком большой и слишком мощный, и он использует эту власть для эксплуатации данных пользователей, не защищая их конфиденциальность. Мы не можем позволить Facebook запустить рискованную новую криптовалюту со счёта в швейцарском банке и без какого-либо надзора“.

Надзорные работают сверхурочно, пытаясь изучить Libra и выработать стратегию, которая позволит контролировать её использование.

Пожалуй, только время покажет, сможет ли новая криптовалюта стать “глобальной монетой“, которой она стремится быть.

Понравилось то, что вы прочитали? Не забудьте поставить лайк и поделиться с друзьями.

Государство и общество

Ждем новостей

Нет новых страниц

Следующая новость