Книги

Больше денег: что такое Ethereum и как блокчейн меняет мир

22
18
20
22
24
26
28
30

5. ОБЛАЧНЫЕ ВЫЧИСЛЕНИЯ. Технология EVM также позволяет создать верифицируемую вычислительную среду, пользователи которой смогут просить друг друга проделывать вычисления и затем при желании запрашивать доказательства, что в отдельных случайно выбранных местах вычисление производится корректно. Это создает целый рынок облачных вычислений, участие в котором может принять каждый владелец компьютера, ноутбука или специализированного сервера, а для надежности нод (то есть чтобы им было невыгодно обманывать) можно использовать проверку корректности в произвольных местах вместе с системой залогов. Такая система подойдет не для всех типов заданий; например, задания, для которых необходимо высокоуровневое межпроцессное взаимодействие, трудно выполнить в среде большого облака нод. Зато другие задания распараллелить намного легче; на такой платформе можно с легкостью реализовать проекты вроде SETI@home, folding@home и генетических алгоритмов.

6. АЗАРТНЫЕ ИГРЫ P2P. В блокчейн Ethereum можно встроить любое количество протоколов азартных игр p2p вроде проекта Фрэнка Стаяно и Ричарда Клейтона Cyberdice. Простейший такой протокол – контракт на разницу с хешем следующего блока. Можно внедрить и более продвинутые протоколы сервисов азартных игр с практически нулевыми комиссиями и без возможности жульничества.

7. РЫНКИ ПРЕДСКАЗАНИЙ. При наличии оракула или SchellingCoin достаточно легко внедрить и рынки предсказаний. Вместе с SchellingCoin рынки предсказаний могут стать первым широким применением футархии как протокола управления децентрализованными организациями.

8. ДЕЦЕНТРАЛИЗОВАННЫЕ РЫНКИ ВНУТРИ БЛОКЧЕЙНА на базе систем идентификации и репутации.

ПРОЧИЕ ИДЕИ И РАЗМЫШЛЕНИЯ

Введение модифицированного GHOST

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

Как описали Сомполински и Зохар, GHOST решает первую проблему – потерю безопасности сети – включением залежалых блоков в вычисление, определяющее, какая цепочка самая «длинная»: в расчет идут не только родительский блок и дальнейшие предки блока, но и залежалые потомки предка блока (на жаргоне Ethereum – анклы, то есть «дяди»). Все вместе они участвуют в вычислении того, за каким блоком стоит большее значение proof of work. Чтобы решить вторую проблему и предотвратить централизацию, мы выйдем за рамки протокола Сомполински и Зохара и введем выплаты за залежалые блоки: такой блок получит 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, в которую анклы могут входить только до семи поколений, мы использовали по двум причинам. Во-первых, при неограниченном GHOST возникло бы слишком много сложностей с вычислениями, какие анклы конкретного блока валидны. Во-вторых, неограниченный GHOST в сочетании с предлагаемой Ethereum системой компенсаций ослабляет стимул майнить именно главную цепь блокчейна, а не цепь злоумышленника.

Комиссии

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

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