«Нервная система» блокчейна DFINITY. Часть 2

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

Как это работает

Дизайн первой итерации BNS на удивление прост. За определённую плату можно регистрировать в BNS предложения. Затем BNS принимает решение по предложениям основываясь на голосовании контролируемых людьми «нейронов», в автоматическом режиме следующих решению друг друга, как в системе делегативной демократии. BNS адаптируется и учится принимать более эффективные решения по тому, как нейроны реагируют на стимулы, а также при помощи системы обратной связи. Принимаемые нейроном решения распространяются по связям каскадным образом, недетерменированно из-за времени. Каждый нейрон управляется с помощью специального клиентского программного обеспечения, запускаемого его владельцем на границе сети. Часть BNS, работающая на стороне блокчейна, имеет доступ к привилегированным кодам операций EVM, которые она использует для исполнения принятых предложений.

1*8FFaEoYje8bykQasxt_qIA.png

Создание нейронов

Любой пользователь может создавать нейроны, управлять ими и получать вознаграждение за «майнинг мнений». Новые нейроны создаются через внесение в Blockchain Nervous System залогового депозита в токенах сети. Относительный вес голоса нейрона пропорционален размеру обеспечивающего его депозита. Для того, чтобы вернуть залоговый депозит, владельцу нужно расформировать нейрон, что занимает три месяца (в текущей версии; мы рассматриваем возможность увеличения этого интервала). Это создаёт сильный стимул способствовать принятию качественных решений, т.к. если BNS будет принимать вредные для сети решения, то стоимость токенов, хранящихся на депозите нейронов, вероятно, снизится.

Получение вознаграждений

Нейроны выплачивают своим владельцам вознаграждение за «майнинг мнений» за счёт выпуска новых токенов. Размер вознаграждения пропорционален доле решений, в принятии которых нейрон участвует, и размеру его залогового депозита. Например, если BNS устанавливает ставку доходности на уровне ~10%, выплачиваемую после создания нескольких тысяч блоков, нейрон, содержащий 100 токенов DFINITY, участвующий в принятии всех решений, в течение года принесёт своему владельцу ~10 токенов. Однако если этот же нейрон участвовал в принятии лишь половины решений, то он принесёт своему владельцу только ~5 токенов.

Управление нейронами

При создании нейрона, ему присваиваются два ключа. Один ключ – «делегат» – позволяет нейрону участвовать в голосовании. Другой ключ – «мастер» – должен храниться в надёжном месте и может использоваться для растворения нейрона и возврата залогового депозита либо для создания нового ключа-делегата. Нейроны управляются специальной клиентской программой, обычно устанавливаемой на ноутбук пользователя или защищённый сервер, и работающей в фоновом режиме, производя непрерывный мониторинг блокчейн-части BNS (реализуемой через смарт-контракты, имеющие доступ к привилегированным кодам операций) на предмет поступления новых предложений. Эта клиентская программа конфигурируется с помощью ключа-делегата, используемого для голосования, путём вызова содержащихся в блокчейне BNS-контрактов.

Голосование в ручном режиме

Когда пользователь открывает свою программу управления нейронами, она выводит на экран предложения, хранящиеся на блокчейн-части BNS. Предложения делятся по типам: «Экономика», «Политика», «Протокол», «Обновления клиентского программного обеспечения», «Исправление резидентной программы» и «Замораживание резидентной программы». Если решение по предложению не было принято, то нейрон может по нему проголосовать, если ещё этого не сделал. Вес голоса нейрона зависит от количества токенов на его депозите. При ручном голосовании пользователь выбирает между тремя ответами: «Принять», «Отклонить» и «Воздержался». Голоса «Воздержался» используются, чтобы показать, что нейрон принимал участие в процессе принятия решения, однако желает, чтобы решение определили нейроны с более выраженным мнением на этот счёт.

1ibgsacuvmdlujsut-jwuza

Автоматическое делегативное голосование

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

1*hTv7bqYo0tDBxB7AknzuGw.png

Граф следования и каскадное принятие решений

Конфигурации списков следования в клиентских приложениях складываются в ориентированный граф, хотя его грани хранятся на стороне клиентов и остаются неизвестными. Граф является представлением доверительных отношений внутри сообщества, динамически обновляемым децентрализованным сообществом владельцев нейронов по мере получения новой информации, на основе истории голосования нейронов, которым они следуют, а также успешности принятых решений. На практике, многие участники сообщества станут рекламировать свои нейронные адреса в своих профилях в Reddit или Twitter. Вес голоса легко скрыть: пользователь может сделать публичным нейрон, содержащий только один токен DFINITY, и привязать к его решениям другой, скрытый, нейрон, на счету которого содержится основная часть депозита.

1riqeu8xfwt8wwpnj2lb1na

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

Граф доверия имеет первостепенное значение при принятии решений, хотя этот процесс не детерминирован, т.к. время влияет на то, какому нейрону будет следовать программа. Как правило, решения принимаются в результате каскадного голосования нейронов. То есть, когда голосуют нейроны с большим числом последователей, их позиция, вследствие транзитивных доверительных отношений, будет поддержана значительной частью графа. Тем не менее, сам граф и конкретные задействуемые связи полностью скрыты и распределены между многими тысячами нейронов BNS. Реализованная в BNS система принятия решений напоминает скорее голосование по принципу «Ожидание тишины» (Wait For Quite Voting), нежели традиционные кворумы.

Действия на основе принятых решений

После того, как BNS приняла решение по предложению, дальнейшие действия зависят от типа предложения. В общем, есть два действий: пассивные и активные. Пассивное действие происходит, когда BNS принимает предложение по изменению телеметрии системы. Например, предложение может вносить поправку к конституции, определяющей поведение и отношения в сообществе держателей нейронов, или менять размер вознаграждения, получаемого за майнинг блока. В этом случае новые значения просто вписываются в соответствующие поля смарт-контрактов BNS, в результате чего создаётся ссылка на новую версию конституции или клиентское программное обеспечение для майнинга начинает получать вознаграждение за майнинг каждого блока в новом размере, как то предписывает протокол.

Активные действия подразумевают выход BNS за рамки собственных смарт-контрактов для изменения существующих артефактов в цепочке, превалируя над принципом «код есть закон». К примеру, BNS может принять предложение «заморозить» смарт-контракт, нарушающий конституцию, как, например, рынок заказных убийств, или запустить произвольный код в привилегированном режиме, чтобы исправить отдельные неполадки системы. Активные действия непременно включают в себя исполнение специальных кодов операций, которые мы добавляем в EVM (Виртуальную машину Эфириума). Это можно сделать с внесением минимальных изменений в компилятор Solidity, и смарт-контракты BNS могут ссылаться на коды операции, как нормальная сборка.

%d1%81%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-2017-01-24-%d0%b2-12-02-35

Сборы и залоговые депозиты за вносимые предложения

Реализация некоторых типов предложений может потребовать выполнения значительного объёма работы. Представьте, например, что автономная система, управляющая неким консорциумом, приходит в непредусмотренное состояние, в результате чего её выполнение блокируется. Члены консорциума хотят предложить исправление. Этому консорциуму понадобится создать предложение, включающее в себя следующую важную информацию: (i) доказательство того, что у них есть моральное право запрашивать данное исправление; (ii) точное описание и подтверждение рассматриваемой проблемы; и (iii) код адреса загруженного в блокчейн привилегированного смарт-контракта, который BNS может использовать для решения проблемы (обратите внимание, что, хотя привилегированный код можно загрузить в блокчейн, запустить его исполнение может только BNS).

Предложение должно быть рассмотрено в несколько этапов. В первую очередь будет предпринята попытка установить моральное право заявителей. В нашем примере исправления системы работа по принятию решения начнётся с проверки включённого в предложение URL со ссылками на связанные с возникшей проблемой страницы на веб-сайтах участников консорциума и других подтверждений, таких, как посты в Твиттере и даже контакты для прямой связи. Те, кто изучает предложение, захотят убедиться в том, что страницы «доказательства полномочий» не были созданы хакером, обладающим доступом к нескольким сайтам, а также в том, что степень моральной поддержки внутри сообщества необходимости исправления проблемы является подавляющей. Необходим серьёзный анализ, который может включать личное общение по Скайпу или через другие средства связи.

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

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

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

Типы аккаунтов и абсолютная власть

Тимо Ханке, член команды DFINITY, предложил ввести два типа аккаунтов и контрактов, по отношению к одному из которых BNS будет иметь полную власть, а другой BNS сможет только заморозить или разморозить. Цель заключается в том, чтобы обеспечить возможность избежать рисков и нежелательных побочных эффектов – реальных или мнимых – для владельцев аккаунтов и создателей контрактов, которые совершенно уверены в безопасности и корректности своих систем. У этого предложения есть много достоинств, однако всегда следует иметь в виду: BNS может обновлять протокол по своему усмотрению, а потому, в конечном итоге, её власть абсолютна.

К чему стремится BNS, общие вопросы безопасности и лечение помешательства

Всесилие BNS имеет большое значение. Когда в 2017 году сеть DFINITY выйдет в свет (релиз Cooper), она будет иметь «генезисную конституцию», задача которой будет заключаться в том, чтобы направлять и координировать держателей нейронов. По сути, эта первая конституция будет отражать этос, который можно кратко сформулировать как «нет порокам, нет насилию». Тем не менее, существование конституции нисколько не ограничивает нейроны в том, как им голосовать. Кроме того, BNS обладает правом вносить поправки в конституцию, и мы ожидаем, что со временем конституция будет быстро развиваться. Обладает ли, в таком случае, BNS какими-либо определяющими её действия принципами, постоянными и неизменными?

Ответ – да. Можно сказать, BNS имеет единственную цель: рост рыночной стоимости токенов DFINITY в долгосрочной перспективе, что примерно соответствует целям повышения безопасности, производительности, пропускной способности и эффективности сети. Причина этого заключается в том, что каждый нейрон обеспечен значительным депозитом токенов DFINITY, которые могут быть получены обратно только через растворение нейрона, которое занимает несколько месяцев. Если BNS будет последовательно принимать решения, способствующие росту пользовательской базы и совершенствованию сети, то стоимость этих токенов, несомненно, возрастёт. С другой стороны, на очевидно проигрышные решения BNS рынки будут реагировать быстрым снижением цены токенов.

Скорость реакции рынка делает злоупотребления и тому подобные краткосрочные стратегии неинтересными для рациональных держателей нейронов. Например, если BNS внесёт неоправданные изменения в протокол, даже введя при этом значительное «специальное вознаграждение» для владельцев нейронов, стоимость токенов DFINITY на рынке упадёт настолько быстро, что участники сети почти наверняка понесут чистый убыток. Даже если BNS решит произвести более тонкие изменения, например, введя ограничения на создание новых нейронов и неправомерно увеличив вознаграждение за «майнинг мнений», рынки, вероятнее всего, интерпретируют это как сигнал о том, что безопасность, обеспечиваемая децентрализацией, была подорвана, и быстро отреагируют снижением стоимости токена сети. Что же в таком случае может пойти не так?

Есть два основных риска. Первый заключается в том, что противник захватит власть над BNS путём агрессивной скупки нейронов и будет продавливать принятие вредных для сети предложений. Для достижения этой цели он должен приобрести огромное количество токенов: многие пользователи будут создавать нейроны для того, чтобы получать вознаграждение за «майнинг мнений» и ради участия в новой главе развития криптографии – так что оппоненту понадобится преодолеть сопротивление владельцев этих нейронов. Скупая необходимые токены на рынках, противник будет способствовать росту их стоимости, значительно увеличивая свои расходы, что делает предпочтительным вариантом кражу токенов. Если он не ставит перед собой задачу навредить сети DFINITY любой ценой, он должен будет попытаться компенсировать свои расходы, разместив короткие позиции по продаже токенов на рынке, однако на практике получить прибыль с такой стратегией будет крайне непросто.

Второй риск – на мой взгляд, более реальный – это активизация демагогов из сообщества держателей нейронов. Шоковая ситуация для системы, как, например, падение стоимости токенов DFINITY вследствие проблемы с обновлением протокола, может спровоцировать такую угрозу. Несложно представить себе пользователя, широко рекламирующего адрес своего нейрона и обещающего «вернуть DFINITY былое величие». Демагог может и сам искренне верить в благотворность предложений, которые он продавливает, однако весьма вероятно, что на практике их принятие сведёт на нет мудрость коллективного разума и приведёт сеть к катастрофе Здесь есть только одно решение: развивать интеллектуальную искушённость и развитость сообщества держателей нейронов как можно более быстрыми темпами – так, чтобы демагоги не смогли легко повлиять на мнения участников сети.

Но что делать, если случилось невообразимое и BNS сошла с ума? Представьте себе ситуацию, в которой противник сумел продавить принятие решения заморозить все основные системы, построенные на основе DFINITY! На самом деле, это не обязательно будет означать конец для сети. Благодаря системе контроля версий, которой оснащены клиентские приложения DFINITY, используемой также для быстрой синхронизации повторно подключенных узлов, изменения могут быть и отменены. Это повлечёт за собой «реальный» хард-форк, при котором программы-клиенты DFINITY будут реконфигурированы для отмены опасных изменений и, самое главное, отключения нейронов, проголосовавших за вредоносное предложение. Важность этого последнего пункта невозможно переоценить: в чрезвычайной ситуации следование решениям плохих нейронов может дорого обойтись, в том числе, и добросовестным владельцам нейронов, поэтому ни в коем случае нельзя небрежно относиться к вопросу настройки следования нейронов.

Важность конфиденциальности

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

Заключение

BNS сделает DFINITY подходящей родственной сетью для Эфириума. Разработчики могут выбирать для запуска Dapps любую из них, и выбор, в значительной мере, будет строиться на компромиссе – доверяете ли вы своей системе, является ли она в такой степени прочной и неуязвимой, что вы предпочтёте следовать принципу «код есть закон», или сочтёте, что для вас безопаснее управляемая ИИ среда, обеспечиваемая BNS, или же, по политическим причинам, вам необходимы средства защиты от взломов, блокировок и других технических проблем.

BNS вводит концепцию существующей в киберпространстве среды, управляемой при помощи алгоритма, без прямого человеческого участия, контролирующего или посреднического. Если концепция докажет свою работоспособность, это поможет решить многие проблемы, с которыми мы сталкиваемся сегодня. Это является также уходом от упрощённых режимов регулирования вознаграждения за майнинг, впервые использованного в Биткойне, и представлением сложной, многомерной и гибкой системы экономического управления на основе многих параметров, единственной целью которой является конечный успех сети. Мы чрезвычайно вдохновлены результатами работы BNS в сети DFINITY и планируем включить её в исходный релиз сети, «Cooper».

Источник: блог DFINITY



Рубрики:DApps, Сообщество, Футурология, Ethereum, смарт-контракты

Метки: ,

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s