Смотри как делают деньги на бинарных опционах. Делай как на видео! Регистрация





ЗАДАТЬ СВОЙ ВОПРОС | РЕГИСТРАЦИЯ
Трейдер Мистер Бин создал вопрос 27-09-2019, 14:26

White Paper Ethereum по русски. Часть 3

В этой статье мы рассмотрим, что такое White Paper Ethereum по русски. Часть 3 и как на этом заработать. Внимательно изучите эту и другие статьи по теме. Если появились вопросы, задайте их в комментариях.

Ethereum

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

Ethereum делает это, создавая, по сути, конечный абстрактный базовый уровень: блокчейн со встроенным языком программирования, полным по Тьюрингу, который позволяет любому писать умные контракты и децентрализованные приложения, где они могут создавать свои собственные произвольные правила для владельцев, форматов транзакций и функции перехода состояний. Голая версия Namecoin может быть написана в две строки кода, и другие протоколы, такие как валюты и системы репутации, могут быть встроены до двадцати. Умные контракты, криптографические «ящики», которые содержат значение и разблокируют его только при соблюдении определенных условий, также могут быть построены на платформе с гораздо большей мощностью, чем та, которую предлагают биткойн-сценарии, благодаря дополнительным возможностям полноты Тьюринга, осознание ценности, осознание блокчейна и состояние.

философия

Дизайн Ethereum должен следовать следующим принципам:
  1. Простота : протокол Ethereum должен быть максимально простым, даже за счет некоторого хранения данных или неэффективного времени. п. 3 Среднестатистический программист в идеале должен уметь следовать и выполнять всю спецификацию, fn. 4, чтобы полностью реализовать беспрецедентный потенциал демократизации, который несет криптовалюта, и продвигать видение Эфириума как протокола, открытого для всех. Любая оптимизация, которая добавляет сложность, не должна быть включена, если эта оптимизация не дает очень существенного преимущества.
  2. Универсальность : фундаментальная часть философии дизайна Ethereum заключается в том, что у Ethereum нет «особенностей». п. 5 Вместо этого Ethereum предоставляет внутренний язык сценариев, полный Turing, который программист может использовать для создания любого умного контракта или типа транзакции, которые могут быть математически определены. Хотите изобрести собственную финансовую производную? С Ethereum вы можете. Хотите сделать свою собственную валюту? Установите это как контракт Эфириума. Хотите настроить полноценный Daemon или Skynet? Для этого вам может понадобиться несколько тысяч взаимосвязанных контрактов, и вы обязательно должны их щедро кормить, но ничто не мешает вам Эфириум на кончиках ваших пальцев.
  3. Модульность : части протокола Ethereum должны быть максимально модульными и разделенными. В ходе разработки наша цель состоит в том, чтобы создать программу, в которой, если бы нужно было внести небольшую модификацию протокола в одном месте, стек приложения продолжал бы функционировать без какой-либо дальнейшей модификации. Инновации, такие как Ethash (см. Приложение к желтой бумаге или статья в вики ), модифицированные деревья Патриции ( желтая бумагавики ) и RLP ( YPвики).) должны быть реализованы в виде отдельных, полнофункциональных библиотек. Это связано с тем, что даже если они используются в Ethereum, даже если Ethereum не требует определенных функций, такие функции все еще можно использовать и в других протоколах. Разработка Ethereum должна быть максимально возможной, чтобы принести пользу всей экосистеме криптовалюты, а не только ей самой.
  4. Ловкость : детали протокола Эфириума не изложены в камне. Хотя мы будем предельно разумны в отношении внесения изменений в высокоуровневые конструкции, например, с помощью сегментированной дорожной карты , абстрагирования выполнения, с единственной доступностью данных, закрепленной на основе консенсуса. Вычислительные тесты в дальнейшем в процессе разработки могут привести нас к обнаружению, что определенные модификации, например, в архитектуре протокола или виртуальной машине Ethereum (EVM), значительно улучшат масштабируемость или безопасность. Если такие возможности будут найдены, мы будем их использовать.
  5. Недискриминация и цензура : протокол не должен пытаться активно ограничивать или предотвращать определенные категории использования. Все регулирующие механизмы в протоколе должны быть разработаны таким образом, чтобы непосредственно регулировать вред, а не пытаться противостоять конкретным нежелательным приложениям. Программист может даже запускать сценарий бесконечного цикла поверх Ethereum до тех пор, пока он готов продолжать платить за транзакцию за этап вычисления.

Эфириум Счета

В Ethereum состояние состоит из объектов, называемых «учетными записями», причем каждая учетная запись имеет 20-байтовый адрес, а переходы между состояниями представляют собой прямые передачи значения и информации между учетными записями. Учетная запись Ethereum содержит четыре поля:
  • Nonce , счетчик используется , чтобы обеспечить каждую сделку может быть обработан только один раз
  • Текущий баланс аккаунта
  • Код договора аккаунта , если имеется
  • В учетной записи для хранения (по умолчанию пусто)
«Эфир» является основным внутренним криптопливом Эфириума и используется для оплаты транзакций. Как правило, существует два типа учетных записей: учетные записипринадлежащие извне , контролируемые закрытыми ключами, и контокоррентные счета , контролируемые их кодом контракта. У учетной записи, находящейся во внешней собственности, нет кода, и можно отправлять сообщения из учетной записи, находящейся во внешней собственности, путем создания и подписания транзакции; в контокоррентном счете каждый раз, когда контокоррентный счет получает сообщение, его код активируется, что позволяет ему считывать и записывать во внутреннее хранилище и отправлять другие сообщения или создавать контракты по очереди.
Обратите внимание, что «контракты» в Ethereum не должны рассматриваться как нечто, что должно быть «выполнено» или «выполнено»; скорее, они больше похожи на «автономных агентов», которые живут внутри среды выполнения Ethereum, всегда исполняют определенный фрагмент кода, когда «тыкаются» сообщением или транзакцией, и имеют прямой контроль над собственным балансом эфира и своим собственным ключом / хранилище значений для отслеживания постоянных переменных.

Сообщения и транзакции

Термин «транзакция» используется в Ethereum для обозначения подписанного пакета данных, в котором хранится сообщение для отправки из учетной записи, находящейся во внешней собственности. Транзакции содержат:
  • Получатель сообщения
  • Подпись, идентифицирующая отправителя
  • Количество эфира для передачи от отправителя получателю
  • Необязательное поле данных
  • STARTGASЗначение, представляющее максимальное количество вычислительных шагов , выполнение транзакции разрешено принимать
  • GASPRICEЗначение, представляющее плату отправитель платит за шагом вычислительной
Первые три являются стандартными полями, ожидаемыми в любой криптовалюте. Поле данных не имеет функции по умолчанию, но виртуальная машина имеет код операции, который контракт может использовать для доступа к данным; в качестве примера использования, если контракт функционирует как служба регистрации домена в блокчейне, то он может захотеть интерпретировать передаваемые ему данные как содержащие два «поля», первое поле - домен для регистрации, а второе поле является IP-адресом для регистрации. Контракт будет считывать эти значения из данных сообщения и надлежащим образом помещать их в хранилище.
STARTGASиGASPRICEполя имеют решающее значение для модели противодействия отказу в обслуживании Эфириума. Чтобы предотвратить случайные или враждебные бесконечные циклы или другие вычислительные потери в коде, каждая транзакция должна устанавливать ограничение на количество вычислительных шагов выполнения кода, которые она может использовать. Основной единицей вычисления является «газ»; обычно вычислительный этап стоит 1 газ, но некоторые операции требуют больших объемов газа, потому что они требуют больших вычислительных затрат или увеличивают объем данных, которые должны храниться как часть состояния. В данных транзакции также взимается плата в размере 5 газов за каждый байт. Целью системы оплаты является требование от злоумышленника платить пропорционально за каждый ресурс, который он использует, включая вычисления, пропускную способность и хранилище; следовательно,

Сообщения

Контракты имеют возможность отправлять «сообщения» другим контрактам. Сообщения - это виртуальные объекты, которые никогда не сериализуются и существуют только в среде выполнения Ethereum. Сообщение содержит:
  • Отправитель сообщения (неявный)
  • Получатель сообщения
  • Количество эфира для передачи вместе с сообщением
  • Необязательное поле данных
  • STARTGASзначение
По сути, сообщение похоже на транзакцию, за исключением того, что оно создается контрактом, а не внешним субъектом. Сообщение генерируется, когда контракт, в настоящее время исполняющий код, выполняет CALLкод операции, который создает и выполняет сообщение. Как и транзакция, сообщение приводит к тому, что учетная запись получателя выполняет свой код. Таким образом, контракты могут иметь отношения с другими контрактами точно так же, как это могут делать внешние участники.
Обратите внимание, что квота на газ, назначенная транзакцией или контрактом, применяется к общему количеству газа, потребленного этой транзакцией, и ко всем дополнительным исполнениям. Например, если внешний субъект A отправляет транзакцию в B с 1000 газами, а B потребляет 600 газов перед отправкой сообщения C, а внутреннее выполнение C потребляет 300 газов перед возвратом, то B может потратить еще 100 газов перед выполнением из газа.

Переходная функция Эфириума

ethertransition.png
Функция перехода состояния Эфириума APPLY(S,TX) -> S'может быть определена следующим образом:
  1. Проверьте, правильно ли сформирована транзакция (т. Е. Имеет правильное количество значений), действительна ли подпись и соответствует ли одноразовый номер одноразовому номеру в учетной записи отправителя. Если нет, верните ошибку.
  2. Рассчитайте комиссию за транзакцию как STARTGAS * GASPRICEи определите адрес отправки по подписи. Вычтите комиссию из баланса счета отправителя и увеличьте одноразовый номер отправителя. Если на балансе недостаточно средств, верните ошибку.
  3. Инициализируйте GAS = STARTGASи снимите определенное количество газа на байт, чтобы оплатить байты в транзакции.
  4. Перенесите значение транзакции со счета отправителя на счет получателя. Если получающая учетная запись еще не существует, создайте ее. Если получающая учетная запись является контрактом, запустите код контракта либо до завершения, либо до тех пор, пока выполнение не закончится.
  5. Если передача значения не удалась из-за того, что у отправителя не было достаточно денег, или при выполнении кода не хватило газа, отмените все изменения состояния, кроме оплаты сборов, и добавьте сборы на счет майнера.
  6. В противном случае, верните пошлины за весь оставшийся газ отправителю и отправьте пошлины за газ, потребленный майнеру.
Например, предположим, что код контракта:
if !self.storage[calldataload(0)]:
    self.storage[calldataload(0)] = calldataload(32)
Обратите внимание, что на самом деле код контракта написан в низкоуровневом коде EVM; этот пример написан на Serpent, одном из наших языков высокого уровня, для ясности, и может быть скомпилирован в код EVM. Предположим, что хранилище контракта начинается с пустого, и транзакция отправляется с 10 эфирными значениями, 2000 газами, 0,001 эфирными газами и 64 байтами данных, причем байты 0-31 представляют число, 2а байты 32-63 представляют строку CHARLIEп. 6 Процесс для функции перехода состояния в этом случае выглядит следующим образом:
  1. Убедитесь, что сделка действительна и правильно оформлена.
  2. Убедитесь, что отправитель транзакции имеет не менее 2000 * 0,001 = 2 эфира. Если это так, то вычтите 2 эфира из счета отправителя.
  3. Инициализировать газ = 2000; предполагая, что длина транзакции составляет 170 байт, а плата за байт равна 5, вычтите 850, чтобы осталось 1150 газов.
  4. Вычтите еще 10 эфира из счета отправителя и добавьте его в счет контракта.
  5. Запустите код. В этом случае это просто: он проверяет, используется ли хранилище по индексу в хранилище 2, замечает, что это не так, и поэтому устанавливает в хранилище по индексу 2значение CHARLIE. Предположим, что для этого требуется 187 газов, поэтому оставшееся количество газа составляет 1150 - 187 = 963.
  6. Добавьте 963 * 0,001 = 0,963 эфир обратно на счет отправителя и верните полученное состояние.
Если бы не было контракта на принимающей стороне транзакции, то общая комиссия за транзакцию была бы просто равна предоставленной, GASPRICEумноженной на длину транзакции в байтах, и данные, отправленные вместе с транзакцией, были бы неактуальными.
Обратите внимание, что сообщения работают аналогично транзакциям с точки зрения возвратов: если выполнение сообщения заканчивается, то выполнение этого сообщения и все другие выполнения, инициированные этим выполнением, возвращаются, но родительские выполнения не должны возвращаться. Это означает, что для контракта «безопасно» называть другой контракт, как будто А вызывает B с G-газом, тогда выполнение A гарантированно потеряет не более G-газа. Наконец, обратите внимание, что есть код операции CREATE, который создает контракт; его механизмы исполнения, как правило, аналогичны CALL, за исключением того, что выходные данные исполнения определяют код вновь созданного контракта.

Выполнение кода

Код в контрактах Ethereum написан на низкоуровневом языке байт-кода на основе стека, называемом «кодом виртуальной машины Ethereum» или «кодом EVM». Код состоит из серии байтов, где каждый байт представляет операцию. Как правило, выполнение кода представляет собой бесконечный цикл, который состоит из многократного выполнения операции на текущем счетчике программы (которая начинается с нуля) и последующего увеличения счетчика программы на единицу до тех пор, пока не будет достигнут конец кода или пока не произойдет ошибка или STOPили RETURNИнструкция обнаружена. Операции имеют доступ к трем типам пространства для хранения данных:
  • Стек , лифо контейнеру, значения которых может быть задвинуты и совали
  • Память , бесконечно расширяемый байтовый массив
  • Долгосрочное хранение контракта, хранилище ключей / значений. В отличие от стека и памяти, которые сбрасываются после завершения вычислений, хранение сохраняется в течение длительного времени.
Код также может обращаться к значению, отправителю и данным входящего сообщения, а также к данным заголовка блока, и код также может возвращать байтовый массив данных в качестве вывода.
Формальная модель исполнения кода EVM удивительно проста. Во время работы виртуальной машины Ethereum ее полное вычислительное состояние может быть определено кортежем (block_state, transaction, message, code, memory, stack, pc, gas), где block_stateнаходится глобальное состояние, содержащее все учетные записи, а также балансы и хранилище. В начале каждого раунда выполнения текущая инструкция определяется путем взятия pc-го байта code (или 0, если pc >= len(code)), и каждая инструкция имеет свое собственное определение с точки зрения того, как оно влияет на кортеж. Например, ADDвыбрасывает два элемента из стека и складывает их сумму, уменьшает gasна 1 и увеличивает pcна 1, иSSTOREвытаскивает два верхних элемента из стека и вставляет второй элемент в хранилище контракта по индексу, указанному первым элементом. Хотя существует множество способов оптимизировать выполнение виртуальной машины Ethereum с помощью своевременной компиляции, базовая реализация Ethereum может быть выполнена в несколько сотен строк кода.

Блокчейн и майнинг

apply_block_diagram.png
Блокчейн Ethereum во многом похож на цепочку биткойнов, хотя и имеет некоторые отличия. Основное различие между Ethereum и Bitcoin в отношении архитектуры блокчейна состоит в том, что, в отличие от Bitcoin (который содержит только копию списка транзакций), блоки Ethereum содержат копию как списка транзакций, так и самого последнего состояния. Помимо этого, в блоке также хранятся два других значения, номер блока и сложность. Основной алгоритм проверки блоков в Ethereum выглядит следующим образом:
  1. Проверьте, существует ли предыдущий указанный блок и является ли он действительным.
  2. Проверьте, что временная метка блока больше, чем у предыдущего блока, на который есть ссылка, и менее 15 минут в будущем
  3. Убедитесь, что номер блока, сложность, корень транзакции, корень дяди и лимит газа (различные концепции низкого уровня для Ethereum) действительны.
  4. Проверьте, что доказательство работы на блоке является действительным.
  5. Позвольте S[0]быть состояние в конце предыдущего блока.
  6. Позвольте TXбыть список транзакций блока, с nтранзакциями. Для всех iв 0...n-1комплекте S[i+1] = APPLY(S[i],TX[i]). Если какое-либо приложение возвращает ошибку, или если общее количество газа, потребляемого в блоке до тех пор, пока эта точка не превысит GASLIMIT, вернет ошибку.
  7. Позвольте S_FINALбыть S[n], но добавив блок вознаграждение выплачивается майнеру.
  8. Проверьте, S_FINALравен ли корень дерева Merkle состояния конечному корню состояния, указанному в заголовке блока. Если это так, блок действителен; в противном случае это недействительно.
На первый взгляд, этот подход может показаться крайне неэффективным, поскольку он должен хранить все состояние каждого блока, но в действительности эффективность должна быть сопоставима с биткойн. Причина заключается в том, что состояние сохраняется в древовидной структуре, и после каждого блока необходимо изменить только небольшую часть дерева. Таким образом, в общем случае между двумя смежными блоками подавляющее большинство дерева должно быть одинаковым, и поэтому данные могут храниться один раз и ссылаться дважды с помощью указателей (то есть хэшей поддеревьев). Для этого используется специальный вид дерева, известный как «дерево Патриции», в том числе модификация концепции дерева Меркле, которая позволяет эффективно вставлять и удалять узлы, а не просто их изменять. Кроме того, поскольку вся информация о состоянии является частью последнего блока,
Часто задаваемый вопрос - «где» код контракта выполняется с точки зрения физического оборудования. На это есть простой ответ: процесс выполнения кода контракта является частью определения функции перехода состояния, которая является частью алгоритма проверки блока, поэтому, если транзакция добавляется в блок B, будет выполняться выполнение кода, порожденное этой транзакцией. всеми узлами, сейчас и в будущем, которые загружают и проверяют блок B.

Приложения

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

Системы токенов

Системы токенов на блокчейне имеют множество применений: от субвалют, представляющих активы, такие как доллары США или золото, до акций компании, отдельные токены, представляющие интеллектуальную собственность, безопасные не поддаваемые купоны и даже системы токенов, не имеющие вообще никакой связи с обычной стоимостью, используемые в качестве точки. системы стимулирования. Системы токенов удивительно легко внедрить в Ethereum. Ключевым моментом для понимания является то, что валюта или система токенов, по сути, является базой данных с одной операцией: вычтите X единиц из A и передайте X единиц B, при условии, что (1) A имела как минимум X единиц до транзакции и (2) транзакция одобрена A. Все, что требуется для реализации системы токенов, - это внедрить эту логику в контракт.
Основной код для реализации системы токенов в Serpent выглядит следующим образом:
def send(to, value):
    if self.storage[msg.sender] >= value:
        self.storage[msg.sender] = self.storage[msg.sender] - value
        self.storage[to] = self.storage[to] + value
По сути, это буквальная реализация функции перехода состояния «банковской системы», описанной выше в этом документе. Необходимо добавить несколько дополнительных строк кода, чтобы обеспечить начальный этап распределения денежных единиц в первую очередь и несколько других крайних случаев, и в идеале должна быть добавлена функция, позволяющая другим контрактам запрашивать баланс адреса , Но это все, что нужно сделать. 

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

Производные финансовые инструменты и валюты со стабильной стоимостью

Производные финансовые инструменты являются наиболее распространенным применением «умного контракта» и одним из самых простых для реализации в коде. Основная проблема при реализации финансовых контрактов заключается в том, что большинство из них требуют ссылки на внешний ценовой тикер; например, очень желательным приложением является умный контракт, который хеджируется от волатильности эфира (или другой криптовалюты) по отношению к доллару США, но для этого требуется, чтобы контракт знал, какова стоимость ETH / USD. Простейший способ сделать это - через контракт «подачи данных», поддерживаемый конкретной стороной (например, NASDAQ), разработанный таким образом, чтобы эта сторона имела возможность обновлять контракт по мере необходимости, и предоставляя интерфейс, который позволяет другим контрактам отправлять сообщение на этот контракт и получить ответ, который предоставляет цену.
Учитывая этот критически важный компонент, договор хеджирования будет выглядеть следующим образом:
  1. Подождите, пока сторона А введет 1000 эфира.
  2. Подождите, пока партия B введет 1000 эфира.
  3. Запишите в хранилище значение 1000 эфира в долларах США, рассчитанное путем запроса контракта на подачу данных, скажем, что это $ x.
  4. Через 30 дней позвольте A или B «повторно активировать» контракт, чтобы отправить эфир на сумму $ x (рассчитанный путем повторного запроса контракта на подачу данных для получения новой цены) к A, а остальное - к B.
Такой контракт имел бы значительный потенциал в крипто-коммерции. Одна из главных проблем, о которых говорится в криптовалюте, заключается в том, что она нестабильна; хотя многим пользователям и продавцам может потребоваться безопасность и удобство работы с криптографическими активами, они могут не захотеть столкнуться с такой возможностью потерять 23% стоимости своих средств за один день. До настоящего времени наиболее часто предлагаемым решением были активы, обеспеченные эмитентом; идея заключается в том, что эмитент создает субвалюту, в которой он имеет право выпускать и отзывать единицы, и предоставлять одну единицу валюты любому, кто предоставляет им (в автономном режиме) одну единицу указанного базового актива (например, золото). , ДОЛЛАР США). Затем эмитент обещает предоставить одну единицу базового актива любому, кто отправляет обратно одну единицу криптоактива.

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

Системы идентификации и репутации

Самая ранняя альтернативная криптовалюта, Namecoin , пыталась использовать биткойн-подобный блокчейн для обеспечения системы регистрации имен, где пользователи могут регистрировать свои имена в общедоступной базе данных наряду с другими данными. Основной цитируемый сценарий использования для системы DNS - сопоставление доменных имен, таких как «bitcoin.org» (или, в случае Namecoin, «bitcoin.bit»), с IP-адресом. Другие варианты использования включают аутентификацию электронной почты и потенциально более продвинутые системы репутации. Вот основной контракт на создание системы регистрации имен, подобных Namecoin, в Ethereum:
def register(name, value):
    if !self.storage[name]:
        self.storage[name] = value
Контракт очень прост; все это база данных внутри сети Ethereum, которую можно добавлять, но нельзя изменять или удалять. Любой может зарегистрировать имя с некоторым значением, и эта регистрация останется навсегда. Более сложный договор о регистрации имени также будет иметь «функциональное предложение», позволяющее другим договорам запрашивать его, а также механизм для «владельца» (т. Е. Первого регистратора) имени, чтобы изменить данные или передать право собственности. Можно даже добавить репутацию и функциональность доверия.

Децентрализованное хранилище файлов

За последние несколько лет появилось несколько популярных онлайн-стартапов для хранения файлов, наиболее известной из которых является Dropbox, которые стремятся позволить пользователям загружать резервную копию своего жесткого диска, а сервисная служба хранит резервную копию и позволяет пользователю получить к ней доступ. в обмен на абонентскую плату. Однако на данный момент рынок файловых хранилищ временами относительно неэффективен; краткий обзор различных существующих решений показывает, что, особенно на уровне «сверхъестественной долины» объемом 20–200 ГБ, на котором не действуют ни бесплатные квоты, ни скидки на уровне предприятия, месячные цены на основные расходы на хранение файлов таковы, что вы платите больше, чем стоимость всего жесткого диска. ездить за один месяц. Контракты Ethereum могут позволить создать децентрализованную экосистему хранения файлов, где отдельные пользователи могут зарабатывать небольшие суммы, сдавая в аренду собственные жесткие диски, а неиспользуемое пространство может использоваться для дальнейшего снижения затрат на хранение файлов.

Ключевым элементом такого устройства было бы то, что мы назвали «децентрализованным контрактом Dropbox». Этот контракт работает следующим образом. Сначала кто-то разбивает нужные данные на блоки, шифруя каждый блок для обеспечения конфиденциальности, и строит из него дерево Меркля. Затем составляется контракт с правилом, согласно которому каждый N блоков будет выбирать случайный индекс в дереве Меркля (используя хеш предыдущего блока, доступный из кода контракта, в качестве источника случайности) и передавать X ether для первый объект, предоставляющий транзакцию с упрощенным подтверждением платежа, как подтверждение владения блоком по этому конкретному индексу в дереве. Когда пользователь хочет повторно загрузить свой файл, он может использовать протокол канала микроплатежей (например, pay 1 szabo на 32 килобайта) для восстановления файла;

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

Децентрализованные автономные организации

Общая концепция «децентрализованной автономной организации» - это концепция виртуальной организации, которая имеет определенный набор членов или акционеров, которые, возможно, с 67% -ным большинством, имеют право расходовать средства организации и изменять ее код. Члены коллективно принимают решение о том, как организация должна распределять свои средства. Методы распределения средств DAO могут варьироваться от премий, зарплат до даже более экзотических механизмов, таких как внутренняя валюта для вознаграждения за работу. 

Это по существу копирует юридические атрибуты традиционной компании или некоммерческой организации, но использует только криптографическую технологию блокчейна для правоприменения. До сих пор большая часть разговоров о DAO была связана с «капиталистической» моделью «децентрализованной автономной корпорации» (DAC) с акционерами, получающими дивиденды, и торгуемыми акциями; альтернатива, которая может быть описана как «децентрализованное автономное сообщество», будет предусматривать равное участие всех членов в процессе принятия решений и потребует, чтобы 67% существующих членов согласились добавить или удалить члена. Требование о том, что один человек может иметь только одно членство, должно быть коллективно обеспечено.

Общая схема кодирования DAO выглядит следующим образом. Простейший дизайн - это просто часть самоизменяющегося кода, который изменяется, если две трети участников соглашаются на изменение. Хотя код является теоретически неизменным, можно легко обойти это и иметь де-факто изменчивость, имея фрагменты кода в отдельных контрактах и имея адрес, по которому контракты должны вызываться, хранится в изменяемом хранилище. В простой реализации такого контракта DAO будут три типа транзакции, отличающиеся данными, предоставленными в транзакции:
  • [0,i,K,V]зарегистрировать предложение с индексом iдля изменения адреса в индексе хранилища Kна значениеV
  • [1,i] зарегистрировать голосование в пользу предложения i
  • [2,i]завершить предложение, iесли было подано достаточно голосов
Контракт будет иметь пункты для каждого из них. Он будет вести учет всех изменений открытого хранилища, а также список тех, кто голосовал за них. Это также будет иметь список всех членов. Когда за любое изменение хранилища проголосуют две трети членов, за него может выполнить завершающая транзакция. Более сложный каркас также будет иметь встроенную возможность голосования для таких функций, как отправка транзакции, добавление и удаление участников, и может даже обеспечить ликвидную демократию.в стиле делегирования голосов (т. е. любой может назначить кого-либо голосовать за него, и назначение является транзитивным, поэтому, если A назначает B, а B назначает C, тогда C определяет голос A). Такой дизайн позволил бы DAO органично расти как децентрализованное сообщество, что позволило бы людям в конечном итоге делегировать задачу по отфильтровыванию того, кто является членом специалистов, хотя в отличие от «нынешней системы», специалисты могут легко появляться и исчезать со временем. как отдельные члены сообщества меняют свои расклады.

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

Дальнейшие применения

1. Сберегательные кошельки . Предположим, что Алиса хочет сохранить свои средства в безопасности, но боится, что она проиграет или кто-то взломает ее закрытый ключ. Она заключает договор с банком Бобом на эфир:
  • Алиса одна может снять максимум 1% средств в день.
  • Один только Боб может снимать максимум 1% средств в день, но Алиса может совершить транзакцию с помощью своего ключа, отключив эту возможность.
  • Алиса и Боб вместе могут снять все что угодно.
Обычно Алисе достаточно 1% в день, и если Алиса хочет снять больше, она может обратиться к Бобу за помощью. Если ключ Алисы взломан, она бежит к Бобу, чтобы перевести средства на новый контракт. Если она потеряет свой ключ, Боб в конце концов получит деньги. Если Боб окажется злым, тогда она может отключить его способность уйти.
2. Страхование урожая . Можно легко заключить контракт с производными финансовыми инструментами, но с использованием данных о погоде вместо любого индекса цен. Если фермер в Айове покупает производную, которая выплачивается обратно в зависимости от количества осадков в Айове, тогда, если есть засуха, фермер автоматически получит деньги, и если будет достаточно дождя, фермер будет счастлив, потому что его урожай будет хорошо. Это может быть расширено до страхования от стихийных бедствий вообще.
3. Децентрализованная подача данных . Для финансовых контрактов на разницу, на самом деле может быть возможно децентрализовать поток данных через протокол, называемый SchellingCoin . SchellingCoin в основном работает следующим образом: все N сторон вводят в систему значение заданного значения (например, цену ETH / USD), значения сортируются, и каждый, кто находится между 25-м и 75-м процентилем, получает один жетон в качестве награды. У каждого есть стимул дать ответ, который дадут все остальные, и единственная ценность, с которой реально может согласиться большое количество игроков, - это очевидный дефолт: правда. Это создает децентрализованный протокол, который теоретически может предоставить любое количество значений, включая цену ETH / USD, температуру в Берлине или даже результат конкретного жесткого вычисления.
4. Умное мультиподпись условного депонирования . Биткойн позволяет заключать контракты с множеством подписей, где, например, три из данных пяти ключей могут потратить средства. Эфириум допускает большую гранулярность; например, четыре из пяти могут тратить все, три из пяти могут тратить до 10% в день, а два из пяти могут тратить до 0,5% в день. Кроме того, Ethereum multisig является асинхронным - две стороны могут зарегистрировать свои подписи в блокчейне в разное время, и последняя подпись автоматически отправит транзакцию.
5. Облачные вычисления, Технология EVM также может быть использована для создания проверяемой вычислительной среды, позволяющей пользователям просить других выполнять вычисления, а затем опционально запрашивать доказательства того, что вычисления в определенных случайно выбранных контрольных точках были выполнены правильно. Это позволяет создать рынок облачных вычислений, где любой пользователь может участвовать со своим настольным компьютером, ноутбуком или специализированным сервером, и можно использовать выборочную проверку вместе с депозитами безопасности, чтобы гарантировать надежность системы (т. Е. Узлы не могут прибыльно обманывать) , Хотя такая система может не подходить для всех задач; Например, задачи, требующие высокого уровня межпроцессного взаимодействия, не могут быть легко выполнены в большом облаке узлов. Другие задачи, однако, гораздо проще распараллелить; такие проекты, как SETI @ home,
6. Одноранговая азартная игра . Любое количество одноранговой сети игорных протоколов, такие как Фрэнк Stajano и Ричард Клейтона Cyberdice , может быть реализовано на blockchain Эфириума. Простейший протокол азартных игр на самом деле представляет собой просто контракт на разницу в хэше следующего блока, и оттуда можно создавать более продвинутые протоколы, создавая игровые сервисы с почти нулевой платой, которые не способны обманывать.
7. Прогнозирование рынков . При наличии оракула или SchellingCoin рынки прогнозирования также просты в реализации, и рынки прогнозирования вместе со SchellingCoin могут оказаться первым распространенным применением футархии в качестве протокола управления для децентрализованных организаций.
8. Децентрализованные торговые площадки , использующие систему идентификации и репутации в качестве основы.

Разное и проблемы

Модифицированная реализация GHOST

Протокол «Жадное самое тяжелое наблюдаемое поддерево» (GHOST) является нововведением, впервые представленным Йонатаном Сомполинским и Авивом Зоаром в декабре 2013 года., Мотивация GHOST заключается в том, что цепочки блоков с быстрым временем подтверждения в настоящее время страдают от снижения безопасности из-за высокой скорости устаревания - потому что блокам требуется определенное время для распространения по сети, если майнер A добывает блок, а затем майнер B добывает другой блок перед тем, как блок майнера А перейдет к B, блок майнера B будет потрачен впустую и не будет способствовать безопасности сети. Кроме того, существует проблема централизации: если майнер A является пулом майнинга с 30% хэш-мощности, а B имеет 10% хэш-мощности, у A будет риск получения устаревшего блока в 70% случаев (так как остальные 30% времени A произвел последний блок и поэтому немедленно получит данные о майнинге), тогда как B будет иметь риск получить устаревший блок в 90% случаев. Таким образом, если интервал блокировки является достаточно коротким, чтобы устаревшая скорость была высокой, А будет существенно эффективнее просто благодаря своим размерам. Сочетание этих двух эффектов приводит к тому, что блокчейны, которые быстро генерируют блоки, могут привести к тому, что один пул майнинга будет иметь достаточно большой процент хэш-мощности сети, чтобы де-факто контролировать процесс майнинга.

Как описано Sompolinsky и Zohar, GHOST решает первую проблему потери безопасности сети, включая устаревшие блоки в расчете, какая цепочка является «самой длинной»; то есть, не только родитель и дальнейшие предки блока, но также устаревшие потомки предка блока (в жаргоне Ethereum, «дяди») добавляются к вычислению того, какой блок имеет наибольшее общее доказательство работы поддержки Это. Чтобы решить вторую проблему смещения централизации, мы выходим за пределы протокола, описанного Сомполинским и Зоаром, и также предоставляем награды за блок устаревшим: блок устаревшего получает 87,5% его базового вознаграждения, а племянник, который включает устаревший блок, получает оставшиеся 12,5%. Однако плата за транзакцию не начисляется дяде.
Ethereum реализует упрощенную версию GHOST, которая работает только на семи уровнях. В частности, это определяется следующим образом:
  • Блок должен указывать родителя, и он должен указывать 0 или более дядей
  • Дядя, включенный в блок, Bдолжен иметь следующие свойства:
  • Это должно быть прямым потомком kпредка третьего поколения B, где 2 <= k <= 7.
  • Это не может быть предком B
  • Дядя должен быть действительным заголовком блока, но не обязательно должен быть ранее проверенным или даже действительным блоком
  • Дядя должен отличаться от всех дядей, включенных в предыдущие блоки, и всех других дядей, включенных в тот же блок (не двойное включение)
  • Для каждого дяди Uв блоке B, то шахтер Bполучает дополнительный 3,125% добавляют к его награде coinbase и шахтер U получает 93.75% от стандартной награды coinbase.
Эта ограниченная версия GHOST, с дядями, включающими до 7 поколений, использовалась по двум причинам. Во-первых, неограниченный GHOST будет включать слишком много сложностей в расчете, какие дяди для данного блока являются действительными. Во-вторых, неограниченный GHOST с компенсацией, используемой в Ethereum, устраняет стимул для майнера добывать в главной цепи, а не в цепи публичного злоумышленника.

сборы

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

Проблема с этим аргументом заключается в том, что обработка транзакций не является рынком; хотя интуитивно привлекательно рассматривать обработку транзакций как услугу, которую майнер предлагает отправителю, в действительности каждая транзакция, которую включает майнер, должна обрабатываться каждым узлом в сети, поэтому подавляющее большинство затрат на обработку транзакций несут третьи стороны, а не майнер, который принимает решение о том, включать или нет Это. Следовательно, проблемы трагедии общего достояния очень вероятны.
Однако, как выясняется, этот недостаток рыночного механизма, когда дано конкретное неточное упрощающее предположение, волшебным образом устраняет себя. Аргумент заключается в следующем. Предположим, что:
  1. Сделка приводит к kоперации, предлагая вознаграждение kRлюбому шахтера , который включает его , где Rустанавливается отправителем и k и Rявляются (примерно) видна комбайном заранее.
  2. Операция имеет стоимость обработки Cдля любого узла (т. Е. Все узлы имеют одинаковую эффективность)
  3. Существуют Nмайнинговые узлы, каждый с точно равной вычислительной мощностью (т. 1/NЕ. Всего)
  4. Полных узлов без майнинга не существует.
Майнер будет готов обработать транзакцию, если ожидаемое вознаграждение превышает стоимость. Таким образом, ожидаемое вознаграждение заключается в kR/Nтом, что у майнера есть 1/Nшанс обработать следующий блок, а стоимость обработки для майнера просто kC. Следовательно, майнеры будут включать транзакции, где kR/N > kC, или R > NC. Обратите внимание, что Rэто плата за каждую операцию, предоставляемая отправителем, и, таким образом, является нижней границей выгоды, которую отправитель получает от транзакции, и NCявляется стоимостью для всей сети вместе с обработкой операции. Следовательно, у майнеров есть стимул включать только те транзакции, для которых общая утилитарная выгода превышает стоимость.
Однако в действительности существует несколько важных отклонений от этих допущений:
  1. Майнер платит за обработку транзакции более высокую стоимость, чем другие проверяющие узлы, поскольку дополнительное время проверки задерживает распространение блока и, таким образом, увеличивает вероятность того, что блок станет устаревшим.
  2. Существуют не майнинг полных узлов.
  3. Распределение добычи полезных ископаемых может оказаться радикально неэгалитарным на практике.
  4. Спекулянты, политические враги и сумасшедшие, чья функция полезности включает в себя причинение вреда сети, существуют, и они могут хитро заключать контракты, где их стоимость намного ниже стоимости, которую платят другие проверяющие узлы.
(1) предоставляет майнеру тенденцию включать меньше транзакций, и (2) увеличивается NC; следовательно, эти два эффекта по крайней мере частично компенсируют друг друга. Как? (3) и (4) являются основной проблемой; для их решения мы просто устанавливаем плавающий предел: ни один блок не может иметь больше операций, чем BLK_LIMIT_FACTORдлительная экспоненциальная скользящая средняя. В частности:
blk.oplimit = floor((blk.parent.oplimit \* (EMAFACTOR - 1) +
floor(parent.opcount \* BLK\_LIMIT\_FACTOR)) / EMA\_FACTOR)
BLK_LIMIT_FACTORи EMA_FACTORявляются константами, которые пока будут установлены на 65536 и 1,5, но, вероятно, будут изменены после дальнейшего анализа.
Есть еще один фактор, который не стимулирует использование больших размеров блоков в биткойнах: большие блоки будут размножаться дольше и, следовательно, с большей вероятностью станут устаревшими. В Ethereum для блоков с высоким потреблением газа также может потребоваться больше времени для распространения, поскольку они физически больше и потому, что им требуется больше времени для обработки переходов состояния транзакции для проверки. Это замедление задержки является важным фактором в биткойнах, но в Эфириуме в меньшей степени из-за протокола GHOST; следовательно, опора на регулируемые пределы блоков обеспечивает более стабильную базовую линию.

Вычисление и Тьюринг-Полнота

Важным примечанием является то, что виртуальная машина Ethereum является полной по Тьюрингу; это означает, что код EVM может кодировать любые вычисления, которые могут быть выполнены, включая бесконечные циклы. Код EVM позволяет зацикливаться двумя способами. Во-первых, есть JUMPинструкция, позволяющая программе вернуться к предыдущему месту в коде, и JUMPIинструкция для условного перехода, допускающая такие выражения, какwhile x < 27: x = x * 2, Во-вторых, контракты могут вызывать другие контракты, потенциально позволяя выполнять циклическую рекурсию. Это, естественно, приводит к проблеме: могут ли злоумышленники по сути отключить майнеры и заполнить узлы, заставив их войти в бесконечный цикл? Проблема возникает из-за проблемы в информатике, известной как проблема остановки: в общем случае невозможно определить, остановится ли данная программа когда-либо.
Как описано в разделе о переходе между состояниями, наше решение работает, требуя от транзакции установить максимальное количество вычислительных шагов, которые ей разрешено делать, и если выполнение занимает больше времени, вычисления возвращаются, но сборы все еще выплачиваются. Сообщения работают одинаково. Чтобы показать мотивацию нашего решения, рассмотрите следующие примеры:
  • Злоумышленник создает контракт, который запускает бесконечный цикл, а затем отправляет транзакцию, активирующую этот цикл, майнеру. Майнер обработает транзакцию, запустив бесконечный цикл, и подождет, пока не закончится газ. Даже несмотря на то, что выполнение заканчивается и заканчивается на полпути, транзакция все еще действительна, и майнер по-прежнему требует плату от атакующего за каждый вычислительный шаг.
  • Злоумышленник создает очень длинный бесконечный цикл с намерением заставить майнера продолжать вычисления в течение такого долгого времени, что к моменту окончания вычислений появится еще несколько блоков, и майнер не сможет включить транзакцию требовать плату. Однако злоумышленнику потребуется указать значение для STARTGASограничения количества вычислительных шагов, которые может выполнить выполнение, поэтому майнер заранее узнает, что вычисление выполнит слишком большое количество шагов.
  • Злоумышленник видит контракт с кодом некоторой формы, подобным ему send(A,contract.storage[A]); contract.storage[A] = 0, и отправляет транзакцию с достаточным количеством газа для выполнения первого шага, но не второго (т. Е. Осуществления вывода, но не снижения баланса). Автору контракта не нужно беспокоиться о защите от таких атак, потому что если выполнение останавливается на полпути после изменений, они возвращаются.
  • Финансовый контракт работает, принимая медиану из девяти запатентованных потоков данных, чтобы минимизировать риск. Злоумышленник получает один из каналов данных, который предназначен для изменения с помощью механизма переменных-адресов-вызовов, описанного в разделе о DAO, и преобразует его в бесконечный цикл, пытаясь таким образом принудить любые попытки получить средства от финансовый контракт, чтобы закончиться газ. Тем не менее, финансовый контракт может установить лимит газа на сообщение, чтобы предотвратить эту проблему.
Альтернативой полноте по Тьюрингу является неполнота по Тьюрингу, где JUMPиJUMPIне существует, и только одна копия каждого контракта может существовать в стеке вызовов в любой момент времени. При использовании этой системы описанная система вознаграждений и неопределенности в отношении эффективности нашего решения могут не потребоваться, поскольку стоимость выполнения контракта будет ограничена выше его размером. Кроме того, неполнота по Тьюрингу не является даже таким большим ограничением; Из всех примеров контрактов, которые мы разработали внутренне, пока только один требовал цикла, и даже этот цикл можно было бы удалить, сделав 26 повторений однострочного фрагмента кода. Учитывая серьезные последствия полноты по Тьюрингу и ограниченную выгоду, почему бы просто не использовать неполный по Тьюрингу язык? В действительности, однако, неполнота по Тьюрингу далека от аккуратного решения проблемы. Чтобы понять почему, рассмотрим следующие контракты:
C0: call(C1); call(C1);
C1: call(C2); call(C2);
C2: call(C3); call(C3);
...
C49: call(C50); call(C50);
C50: (run one step of a program and record the change in storage)
Теперь отправьте транзакцию в A. Таким образом, в 51 транзакции у нас есть контракт, который занимает 2 50вычислительные шаги. Майнеры могут попытаться обнаружить такие логические бомбы заблаговременно, поддерживая значение рядом с каждым контрактом, указывая максимальное количество вычислительных шагов, которые он может предпринять, и вычисляя его для контрактов, рекурсивно вызывающих другие контракты, но это потребует от майнеров запретить контракты, которые создают другие контракты (поскольку создание и исполнение всех 26 вышеуказанных контрактов может быть легко сведено в один контракт). Другой проблемный момент заключается в том, что поле адреса сообщения является переменной, поэтому в общем случае даже невозможно определить, какие другие контракты данный контракт будет вызывать раньше времени. Отсюда, в общем, у нас есть неожиданный вывод: полнотой по Тьюрингу удивительно легко управлять,

Валюта и выпуск

Сеть Ethereum включает в себя собственную встроенную валюту ether, которая выполняет двойную цель: обеспечить первичный уровень ликвидности для эффективного обмена между различными типами цифровых активов и, что более важно, предоставить механизм оплаты комиссионных за транзакции. Для удобства и во избежание будущих споров (см. Текущие дебаты по mBTC / uBTC / satoshi в биткойнах), номиналы будут предварительно помечены:
  • 1: Вэй
  • 10 12 : сабо
  • 10 15 : Финни
  • 10 18 : эфир
Это следует рассматривать как расширенную версию понятия «доллары» и «центы» или «БТД» и «сатоши». В ближайшем будущем мы ожидаем, что «ether» будет использоваться для обычных транзакций, «finney» - для микротранзакций, а «szabo» и «wei» - для технических обсуждений, касающихся сборов и реализации протоколов; остальные деноминации могут стать полезными позже и не должны быть включены в клиентов на данном этапе.
Модель выдачи будет выглядеть следующим образом:
  • Эфир будет выпущен при продаже валюты по цене 1000-2000 эфира за BTC, механизм, предназначенный для финансирования организации Ethereum и оплаты за разработку, который успешно использовался другими платформами, такими как Mastercoin и NXT. Ранее покупатели получат выгоду от больших скидок. BTC, полученный от продажи, будет целиком использоваться для выплаты заработной платы разработчикам и инвестирования в различные коммерческие и некоммерческие проекты в экосистеме Ethereum и криптовалюты.
  • 0,099x от общей проданной суммы (60102216 ETH) будет выделено организации для компенсации ранних участников и оплаты расходов в ETH до блока генезиса.
  • 0,099x общая проданная сумма будет сохранена в качестве долгосрочного резерва.
  • 0,26x от общей суммы будет продано майнерам за год навсегда после этого момента.
Группа При запуске Через 1 год Через 5 лет

Единицы валюты 1.198X 1.458X 2.498X Покупатели 83.5% 68.6% 40.0% Резерв, потраченный до продажи 8.26% 6.79% 3.96% Резерв, использованный после продажи 8.26% 6.79% 3.96% Шахтеры 0% 17.8% 52.0%
Долгосрочные темпы роста предложения (в процентах)
SPV в биткойнах
Несмотря на линейный выпуск валюты, как и в случае с биткойнами, темпы роста предложения все же стремятся к нулю
Два основных варианта в приведенной выше модели: (1) наличие и размер пула пожертвований, и (2) существование постоянно растущего линейного предложения, в отличие от ограниченного предложения, как в Биткойне. Обоснование фонда пожертвований заключается в следующем. Если бы накопительный пул не существовал, а линейный выпуск сократился до 0,217x, чтобы обеспечить такой же уровень инфляции, то общее количество эфира было бы на 16,5% меньше, и поэтому каждая единица была бы на 19,8% более ценной. Следовательно, в равновесии на продажу будет приобретено на 19,8% больше эфира, так что каждая единица снова будет столь же ценной, как и прежде. В таком случае организация также получит в 1,198 раза больше BTC, что можно считать разделенным на два среза: исходный BTC и дополнительный 0,198x. Следовательно, эта ситуация в точности эквивалентнана пожертвования, но с одним важным отличием: организация держит чисто BTC, и поэтому не имеет стимула для поддержки стоимости единицы эфира.

Модель постоянного линейного роста предложения снижает риск того, что некоторые считают чрезмерной концентрацией богатства в Биткойне, и дает людям, живущим в настоящем и будущем, реальную возможность приобрести денежные единицы, сохраняя при этом сильный стимул для получения и удержания эфир, потому что «скорость роста предложения» в процентах все еще стремится к нулю с течением времени. Мы также теоретизируем, что, поскольку монеты всегда теряются с течением времени из-за небрежности, смерти и т. Д., А потери монет можно смоделировать как процент от общего предложения в год, общий объем наличных денег в обращении фактически со временем стабилизируется на уровне равный годовому выпуску, деленному на коэффициент потерь (например, при уровне потерь 1%, когда предложение достигнет 26X, тогда будет добываться 0,26X и каждый год теряется 0,26X, создавая равновесие).

Обратите внимание, что в будущем, скорее всего, Ethereum перейдет на модель доказательства кола для безопасности, сократив требования к выпуску до нуля от 0,05X в год. В случае, если организация Ethereum теряет финансирование или по какой-либо другой причине исчезает, мы оставляем открытым «социальный контракт»: любой имеет право создать будущую версию Ethereum-кандидата, с единственным условием, что количество эфира должно быть максимально равно 60102216 * (1.198 + 0.26 * n)гдеnколичество лет после блока генезиса. Создатели могут свободно продавать или иным образом назначать некоторую или всю разницу между расширением поставок на основе PoS и максимально допустимым расширением поставок для оплаты разработки. Обновления кандидатов, которые не соответствуют социальному договору, могут быть обоснованно преобразованы в совместимые версии.

Централизация майнинга

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

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

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

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

Масштабируемость

Одной из распространенных проблем в Ethereum является проблема масштабируемости. Как и Биткойн, Ethereum страдает недостатком, заключающимся в том, что каждая транзакция должна обрабатываться каждым узлом в сети. С биткойнами размер текущего блокчейна составляет около 15 ГБ, увеличиваясь примерно на 1 МБ в час. Если бы сеть Биткойн обрабатывала 2000 транзакций Visa в секунду, она выросла бы на 1 МБ за три секунды (1 ГБ в час, 8 ТБ в год). Эфириум, скорее всего, будет страдать от аналогичной схемы роста, усугубленной тем, что поверх блокчейна Ethereum будет много приложений, а не просто валюты, как в случае с Биткойном, но улучшается тот факт, что полные узлы Ethereum должны хранить просто государство вместо всей истории блокчейна.

Проблема с таким большим размером блокчейна - это риск централизации. Если размер блокчейна увеличится, скажем, до 100 ТБ, то вероятным сценарием будет то, что только очень небольшое количество крупных предприятий будет использовать полные узлы, а все обычные пользователи будут использовать легкие SPV-узлы. В такой ситуации возникает потенциальная проблема, связанная с тем, что полные узлы могут объединяться, и все соглашаются обмануть каким-то выгодным способом (например, изменить вознаграждение за блок, дать себе BTC). 

Легкие узлы не могли бы обнаружить это немедленно. Конечно, по крайней мере один честный полный узел, скорее всего, будет существовать, и через несколько часов информация о мошенничестве будет поступать по таким каналам, как Reddit, но в этот момент будет слишком поздно: обычные пользователи смогут организовать попытка занести в черный список данные блоки, огромная и, вероятно, неосуществимая проблема координации в том же масштабе, что и при успешной атаке на 51%. В случае с биткойнами это в настоящее время является проблемой, но существует модификация блокчейна предложенный Питером Тоддом, который облегчит эту проблему.

В ближайшей перспективе Ethereum будет использовать две дополнительные стратегии для решения этой проблемы. Во-первых, из-за алгоритмов майнинга на основе блокчейна, по крайней мере, каждый майнер будет вынужден быть полным узлом, создавая нижнюю границу для числа полных узлов. Второе и, что более важно, однако, мы включим корень дерева промежуточных состояний в цепочку блоков после обработки каждой транзакции. Даже если проверка блока централизована, пока существует один честный проверяющий узел, проблему централизации можно обойти с помощью протокола проверки. Если майнер публикует недопустимый блок, этот блок должен быть плохо отформатирован, либо состояние S[n]неверно. Так S[0]как известно, что это правильно, должно быть какое-то первое состояние S[i], которое неверно, гдеS[i-1]правильно. Проверяющий узел предоставит индекс iвместе с «доказательством недействительности», состоящим из подмножества узлов дерева Патрисии, которые необходимо обработать APPLY(S[i-1],TX[i]) -> S[i]. Узлы смогут использовать эти узлы Patricia для выполнения этой части вычислений и видеть, что S[i] сгенерированные не соответствуют S[i]предоставленным.
Другая, более изощренная атака будет включать в себя злоумышленников, публикующих неполные блоки, поэтому полной информации даже не существует, чтобы определить, являются ли блоки действительными. Решением этой проблемы является протокол «вызов-ответ»: узлы верификации выдают «вызовы» в форме целевых индексов транзакций, и после получения узла легкий узел обрабатывает блок как ненадежный, пока другой узел, будь то майнер или другой верификатор, не предоставит подмножество узлов Патрисии в качестве доказательства действительности.

Заключение

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

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

Концепция произвольной функции перехода состояний, реализованная в протоколе Ethereum, обеспечивает платформу с уникальным потенциалом; Вместо того, чтобы быть закрытым, специализированным протоколом, предназначенным для определенного набора приложений в области хранения данных, азартных игр или финансов, Ethereum имеет открытый дизайн, и мы считаем, что он очень хорошо подходит для использования в качестве основного слой для очень большого числа как финансовых, так и нефинансовых протоколов в ближайшие годы.
Хочешь получить 60 000 рублей на депозит? Регистрируйся в компании Бинариум и торгуй бинарными опционами!
Торговля, брокеры, Статьи, Стратегии, Бонусы, Выбрать форекс брокера, торговля криптовалютой, биткоин брокеры, Обучение торговле, Системы торговые, Трейдеры, Выбрать брокера БО, БИНАРИУМ брокер, биномо, Альпари, РобоФорекс, Binary.com, Cryptobo
Прочитал статью? А теперь посмотри видео, как зарабатывают профессионалы.

Смотри как делают деньги на бинарных опционах. Делай как на видео! Регистрация





Дальнейший текст статьи доступен только для зарегистрированных пользователей
Войдите в свой профиль или зарегистрируйтесь

Не нашли ответ на вопрос? Посмотрите похожие вопросы или ответы в комментариях
Источник https://binrating.ru/cripto-world/3362-white-paper-ethereum-po-russki-chast-3.html White Paper Ethereum по русски. Часть 3
Поделитесь с друзьями в социальных сетях
Нажмите на кнопочку вконтакте, фейсбук, одноклассники, мой мир )
30000$ за 15 минут! Самая прибыльная сделка на Форексе >>> Похожие вопросы и ответы
White Paper Ethereum на русском. Часть 1
White Paper Ethereum на русском. Часть 2
Самый простой и быстрый способ получить Ethereum кошелек
Обменный пункт за рубли купить биткоин Ethereum DASH XRP Bitcoin Cash Ripple Monero Litecoin
Binary.com - Онлайн торговля бинарными опционами
Coinbase прекратила обслуживать Ethereum Classic из-за атаки 51%
Материнская плата ASUS B250 Mining Expert может похвастать 19 слотами PCIe для майнинга
Spectre.ai - брокер бинарных опционов на блокчейне. Обзор и отзывы трейдеров
Cloud Token Plus - лучший проект 2019 года. Рост токена в десятки раз!
HQBroker - форекс брокер с простой регистрации счета
ICO Goldgate - рост токенов на 1,5% каждый день
Electroneum Classic выйдет на биржу в сентябре 2018
Binary.com - брокер бинарных опционов с 1999 года
Бинарные опционные контракты. Применение.
Информация о компании 24option
Преимущества торговли бинарными опционами в компании
Простая, но эффективная стратегия торговли бинарными опционами
Полуавтоматическая торговля криптовалютой на платформе ZigiTrade
Переоценка ценностей: итоги криптомира 2018 года
Бинарные опционы на мобильных платформах
Лучшие книги для обучения онлайн торговле
Высокоприбыльные инвестиции в интернет - токены CRYT
Тренинг по созданию Форекс советников
Стратегии бинарных опционов
Незаконный майнинг криптовалют
{topnews}

Ответить или комментировать вопрос:

Ответ на вопрос:

  1. Офлайн
    Трейдер Мистер Бин ответил 28 сентября 2019 10:57
    Вместе с ethereum часто ищут
    ethereum wallet

    ethereum кошелек

    ethereum price

    ethereum курс

    ethereum цена

    ethereum официальный сайт

    ethereum blockchain

    ethereum mining
    Трейдер Мистер Бинзаработал за этот ответ 1 Токен
ОТВЕТИТЬ НА ВОПРОС БЕЗ РЕГИСТРАЦИИ
Если Вы не зарегистрированы на сайте, токены не будут начислены. Пожалуйста, зарегистрируйтесь на сайте или войдите в свой аккаунт
    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent
Чтобы задать свой вопрос - войдите или зарегистрируйтесь на сайте
Выбрать брокера форекс и бинарных опционов и начать зарабатывать прямо сейчас ( для получения подробной информации о брокере наведите мышку на баннер )

Альпари Бинариум Binary.com Cryptobo.com RoboForex

Новичок в онлайн торговле на бинарных опционах? Задавай вопросы!
Профессионал и трейдер со стажем? Отвечай на вопросы, делись своим опытом, получай рейтинг и токены за хорошие ответы.
  • Top.Mail.Ru
  • Яндекс.Метрика