Общая теория децентрализованных приложений

В российском сегменте интернета, как мне показалось, крайне мало освещена тема децентрализованных приложений. Поэтому я решил перевести "The General Theory of Decentralized Applications". Этот документ освещает тему децентрализованных приложений.

Введение

Появление децентрализованных приложений

Можно сказать, что появилась новая модель построения успешных и масштабируемых приложений. Bitcoin показал нам мощь использования open-source, peer-to-peer, криптографически сохраненных записей (цепочка блоков) и ограниченным количеством токенов. С прошлого года десятки приложении используют Биткоин-модель, чтобы добиться успеха. Ethereum, Omni и SAFE Network это лишь некоторые, «децентрализованные приложения», которые используют разнообразные способы в своей работе. Некоторые используют собственные цепочки блоков (Ethereum), некоторые используют существующие цепочки блоков и выпускают свои собственные токены (Omni Layer), а другие используют двухуровневый подход поверх существующих блокчейнов и выпуском собственных токенов.

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

Определение Dapp

Чтобы приложение считалось Dapp (произносится как Dee-app, аналогично email), оно должно соответствовать следующим критериям:

  1. Приложение должно быть полностью с открытым исходным кодом, оно должно работать автономно и не иметь организации, которая бы обладала большей частью его токенов. Приложение может адаптировать свой протокол, в ответ на предлагаемые улучшения и обратную связь от рынка, но все изменения должны приниматься на основе консенсуса всех своих пользователей.
  2. Данные приложения и отчеты по работе должны быть криптографически хранимы в публичной области, т.н. децентрализованном блокчейне, чтобы избежать любого возможного отказа сети.
  3. Приложение должно использовать криптографический токен (биткоин или нативный токен приложения), который необходим для доступа к приложению и любой вклад майнеров \ фермеров должен быть награжден в токенах приложения.
  4. Приложение должно генерировать токены согласно стандартному криптографическому алгоритму, выступающему как доказательство значений узлов в распространяемом приложении (Биткоин использует алгоритм Proof of Work).

Bitcoin как децентрализованное приложение

Сатоши Накомото, создатель Биткоинов описывал свое изобретение как "Одноранговая электронная платежная система". Биткоин показал, как эффективно решать проблемы, которые возникают из-за отсутствия доверия и проблем масштабирования электронной денежной системы, используя при этом peer-to-peer, а также распределенную бух.книгу (ledger), который теперь известен как Биткоин-блокчейн. Биткоин это также и приложение, через которое пользователи могут взаимодействовать при помощи программного обеспечения. Биткоин является децентрализованным приложением. И вот почему:

  1. Все биткоин приложения поставляются с открытым исходным кодом, нет организаций (правительства, компании или организации), контролирующей биткоины. Все записи, связанные с использованием биткоинов являются открытыми и общедоступными.
  2. Биткоин генерирует свои токены - биткоины, по определенному алгоритму, который не может быть изменен и эти токены необходимы для его функционирования. Биткоин-майнеры получают вознаграждение за свой вклад в обеспечение безопасности сети Биткоин.
  3. Все изменения биткоина должны быть одобрены главным консенсусом своих пользователей, через механизм proof-of-work.

Терминология и её значение

Децентрализованные приложения первоначально были описаны как «Децентрализованные Автономные Корпорации» (Decentralized Autonomous Corporations, DAC) в статье написанной Даниелем Ларимером. Наш же документ избегает термина "корпорации" по двум причинам.

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

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

Классификация децентрализованных приложении

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

Тип 1: децентрализованное приложение имеет свою цепочку блоков. Биткоин - это самый известный пример первого типа децентрализованных систем, Litecoin и другие альт-коины относятся к этому же типу.

Тип 2: децентрализованные приложения используют цепочки блоков децентрализованных приложений типа 1. Тип 2 децентрализованных приложений -- это протоколы и они также имеют токены, которые необходимы для их функционирования. Omni Protocol пример второго типа децентрализованных приложений.

Тип 3: децентрализованные приложения используют протокол второго типа децентрализованных приложений. Третий тип децентрализованных приложений -- это протоколы и они имеют токены, которые им необходимы для своей функциональной деятельности. Например SAFE Network использует Omni Protocol для выпуска "safecoins", которые могут быть использованы для приобретения распределенного файлового хранилища, SAFE Network является примером третьего типа децентрализованных приложений.

Вот такая аналогия будет для первого типа децентрализованного приложения: это операционная система (например Windows, Mac OS X, Linux, Android, iOS). Для второго типа децентрализованного приложения: программа (как например текстовый процессор, электронная таблица, файловая система синхронизации, как Dropbox). Для третьего типа децентрализованного приложения: специализированные программные решения (например mail-merge tool, который использует word processor, макрос отчета по расходам для электронных таблиц или блог-платформа, использующая Dropbox). Согласно этой аналогии, можно ожидать, что из-за сетевого эффекта, экосистема вокруг каждого децентрализованного приложения будет развиваться, будет несколько децентрализованных приложений первого типа, ещё больше второго типа и намного больше третьего типа.

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

Значимость Dapps и их токенов

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

Механизм установления консенсуса

Существует два общих инструмента, с помощью которых Dapp может установить консенсус: proof-of-work (POW) и proof of stake (POS).

При proof-of-work, решение о внесении изменений в Dapp делается на основе объема работы, которую делает каждая из заинтересованных сторон способствующих функционированию Dapp. Биткоин использует этот подход для своей повседневной работы. Установление консенсуса через POW, обычно, называется майнинг.

При proof-of-stake, решение о внесении изменений в Dapp делается на основе процента владения, которое имеют заинтересованные стороны. Например, при голосовании, стейкхолдеры, которые контролируют 10% токенов выпущенных Dapp, имеют 10% от общего количества голосов. Omni Protocol основан на механизме POS.

Два механизма могут использоваться параллельно, как в случае с Peercoin. Такое сочетание позволяет Dapp работать с меньшими энергозатратами, чем при использовании только POW. Это также позволяет им быть более устойчивыми к атаке 51%.

Механизм распространения токенов

Существуют три распространенных механизма с помощью которых Dapps могут распространять свои токены: майнинг, фандрайзинг и расвитие.

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

При фандрайзинге токены распределяются между теми людьми, которые финансируют начальное развитие Dapp. Поговорим о Master Protocol, как о примере. Mastercoins были изначально розданы тем, кто отправил BTC по указанному адресу, 100 Mastercoins за 1 отправленный BTC. Собранные BTC затем были использованы для финансирования разработки приложения, что способствовало развитию Master Protocol.

При механизме расширения, токены генерируются с помощью предопределенного механизма и доступны только для развития Dapps. Например, в дополнении к фандраузингу, Master Protocol использует коллаборационным механизм для финансирования своего дальнейшего развития. Дополнительные 10% Mastercoins генерируемые путем сбора средств были отправлены в разработку Master Protocol. То есть Mastercoins становятся доступными через заранее определенный график и распространяется через управляемой сообществом системе щедрости, где решения принимается на основе механизма POS.

Подводя итоги:

Формирование и развитие Dapp

Развитие децентрализованных приложений происходит в три шага.

Шаг 1: В Белой книге публикуется описание Dapp и его возможности.

Это наиболее распространенный способ (как и в случае с Биткоин), с помощью которого Dapp принимает форму публичного релиза. Белая книга описывает протокол, его особенности и реализацию. Обратная связь от сообщества, после публичного релиза, необходима для дальнейшего развития Dapp.

Шаг 2: Распределение начальных токенов.

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

Если Dapp использует фандрайзинг, то нужна программа-кошелек. Которая становится доступной для стейкхолдеров Dapp, чтобы они могли обменять токены Dapp. В случае с Мастеркоинами, исходный фандрайзинг адрес и скрипт кошелька были выставлены в паблик.

Если Dapp использует механизм разработки для распространения своих токенов, то должна публиковаться система щедрости. Которая позволяет отслеживать выполняемые задачи, следить за людьми, которые работают над этими задачами и критериям, по которым будет присуждаться вознаграждение.

Шаг 3: Распространение права собственности в Dapp.

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

Случай с биткоинами это иллюстрирует. По некоторым оценкам Сатоши Накоомто намайнил первые 1 миллион биткоинов. Как только разработчики начали расширять код биткоина, а майнеры поспособствовали вычислительной силе сети биткоин, рынок начал ценить биткоины очень высоко. Как только система повзрослела, то много людей с различными компетенциями начали особо ценить систему Биткоин и поспособствовали её развитию. Теперь, когда более 12 миллионов BTC в обороте, большой % первоначальных активов Сатоши Накомто стал размыт.

Правовая модель деятельности Dapps

Действуя в рамках лицензии с открытым исходным кодом, Dapp открыто к инновациями без ограничений в авторских правах или патентов. Кроме того, будучи полностью с открытым исходным кодом, децентрализованные приложения могут работать под правовой моделью программного обеспечения с открытым исходным кодом. Биткоин, например, использует лицензию открытого исходного кода MIT. Master Protocol аналогичным образом требует весь код, который основан на нём, быть с открытым исходным кодом и доступным сообществу.

Выпуск и владение токенов

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

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

Некоммерческие организации

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

  1. Выдача начальных токенов
  2. Управление развитием токенов
  3. Управление системой щедрости
  4. Определение направления развития Dapp

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

Лучшие практики для создания Dapp и часто задаваемые вопросы

Что классифицирует программного приложение как Dapp?

Что такое токен?

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

Как токены распределяются?

Существуют несколько способов, благодаря которым токены могут быть распределены:

  1. Крауд-продажи (фандрайзинг) токенов: изначальная продажа токенов - как способ начального финансирования Dapp. Средства вырученные из такой продажи должны быть контролируемы организацией, независимой от основателей Dapp, обыкновенно это Foundation.
  2. Разработка токенов: часть токенов может быть распределена по разработчикам, которые разрабатывают проект. Так как рынок устанавливает стоимость оценки проекта. Токены разработчика увеличат свою стоимость в зависимости от распространения приложения.
  3. Премайнинг токенов: лучше всего, если нет токенов премайнинга, потому что большинство сообществ и инвесторы негативно смотрят на это. А премайн может быть успешным, только если имеет значимую причину предусмотренную учредителями.
  4. Майнинг ресурсов: распределение токенов посредством майнинга подталкивает сообщество содействовать разивтию Dapp. В Биткоин, каждый блок награждается каждые 10 минут, что подталкивает майнеров снабжать сеть Биткоин вычислительной мощностью. Аналогично, Dapp необходимо определить, каким образом стимулировать сеть, чтобы она распространяла ресурс, поскольку это важно при распределении токенов.

Как я могу начать разработку Dapp?

При разрабатке Dapp советуют выполнить следующие действия:

  1. Создать официальный документ, который имеет, по крайней мере, следующие разделы:
    - намерения и цели Dapp
    - план по распространению токенов
    - механизмы создания консенсуса
    - структуре некоммерческой организации, которая курирует Dapp
    - управление разработкой системы щедрости
    - техническое описание Dapp
  2. Увеличение вовлечения общественности, выпустив релиз и его ревизию на основе фидбека от сообщества
  3. Установка даты, когда сообщество может принять участие в сборе средств или фандразинге
  4. Продажа начальных токенов основных на вашей белой бумаге и создании некоммерческой организации курирующей развитие Dapp
  5. Начинать выполнять вашу идею и некоммерческие планы будущего развития

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

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

Что такое награда за пользовательское поведение?

Награда за пользовательское поведение дается участникам, которые развивают полезность сети. В "белой бумаге" [White Paper] следует изложить что представляется полезностью для Dapp (для примера, мощность хэширования полезна в Биткоин сети и она награждается). Полезность должна быть измерима, как в случае хранения данных Dapp, объем хранения поддается измерению.

Текущее состояние Второго и Третего типа децентрализованных приложений

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

Master Protocol, для примера, встраивают дополнительные данные в транзакции сети биткоин. Хотя в настоящее время (февраль 2014) Mastercoin встраивает свои дополнительные данные в ad-hoc в блокчейн биткоина, релиз 0.9 версии клиента Биткоин предоставляет стандартный способ для этого встраивания. Используя методику "способных к сокращению выходов" второй тип децентрализованных приложений, которые основаны на Bitcoin, будут иметь возможность вставлять данные на систематической основе и майнеры Bitcoin будут иметь возможность обрезать эти данные.

Учитывая это, несколько Dapp третьего типа находятся в различных стадиях развития. Они включают в себя:

Заключение

У Dapp есть потенциал, чтобы быть самоподдерживающимися, потому что они дают возможность стейкхолдерам инвестировать в развитие Dapp. Из-за этого вполне возможно, что Dapp для платежей, хранения данных, пропускной способности и облачных вычислений, однажды может превзойти транснациональные корпорации, такие как Visa, Dropbox, Comcast и Aмазон, которые сейчас наиболее активны в мире.

Приложение

Ресурсы по экономической модели Dapps

Предлагаемая метафора для Dapps

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

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

Термины, которые выходят из термина зигота: zyprotocol, протокл zygotic, zapp, приложение zygotic, zen, сущность zygotic и zybit, zygotic бит.

Законы Джонстона

“Всё, что может быть децентрализовано, должно быть децентрализовано”. David A. Johnston

Существующие централизованные сервисы будут перемещены со временем в децентрализованные альтернативы.

johnstonslaw.org

Ссылки

  1. Группы в Facebook
    facebook.com/groups/appcoins
    facebook.com/groups/unitchain
  2. TBD - other social channels / skype group (need an admin for the skype group to get contact requests)

Перевод: IlyaDruzhinin
26.03.2016


Источник: unitchain.ru/obshhaja-teorija-decentralizovannyh-prilozhenij

Первоисточник: github.com/DavidJohnstonCEO/DecentralizedApplications/blob/master/README.md

Авторы: David Johnston, Sam Onat Yilmaz, Jeremy Kandah, Nikos Bentenitis, Farzad Hashemi, Ron Gross, Shawn Wilkinson and Steven Mason

See also the previous version of this document on Google Drive.



Децентрализованные Автономные Организации (DAO)