Масштабирование Ethereum, путем увеличения блока

Igor Geronemo
gocryptoteam
Published in
3 min readJul 27, 2018

Никто не задумывался, где хранится блокчейн ? Думаете у майнеров ? Ответ — нет. Он хранится у тысяч людей, которые поставили себе полные ноды.

Вот тут https://www.ethernodes.org/network/1 можно посмотреть распределение таких серверов по миру. Это обычные люди, тру последователи и их труд не оплачивается. Они устанавливают у себя клиент Geth или Parity, скачивают полностью весь блокчейн в процессе синхронизации и именно на их серверах стоит Ethereum Virtual Machine

https://ethereum.stackexchange.com/questions/27367/what-is-the-ethereum-virtual-machine?noredirect=1&lq=1

https://ethereum.stackexchange.com/questions/5975/what-are-the-types-of-nodes-in-ethereum

Когда-то блокчейн эфира весил несколько гигов и это было просто забавным поставить себе такую программу и быть причастным к чему-то большому. Потом это стало более сотни гигабайт и людям надо было делать себе апгрейд, т. к. для такого большого количества запросов, которое делает EVM нужен SSD (обладающий куда большей скоростью случайного чтения/записи, чем HDD). Сейчас говорят, что размер блокчейна превысил 500 гигов и близится к терабайту. Т. е. Людям, которые являются узлами децентрализованного суперкомпьютера надо делать апгрейды за свой счет, чтобы оставаться в системе. Немного несправедливо, вам не кажется ?

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

На данный момент блок эфира ограничен 8M лимита газа на транзакции в нем. И все вознаграждение за подтверждение блока достается майнерам. А это 3 Eth эмиссии + сумма всех комиссий в блоке.

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

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

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

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

Апд. После небольшого исследование выяснилось, что полная нода может занимать около 100 Гб, если “подрезать” ее (pruning). Более подробно вот тут https://medium.com/coinmonks/how-a-pruned-ethereum-node-can-fully-verify-the-blockchain-bbe9f29663ed

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

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

Резюме.

  1. Награждать полные ноды нету ни технической возможности ни реальной необходимости, ввиду того, что 100 Гб не такое уж и много, чтобы быть угрозой децентрализации.
  2. В теории размер блока можно поднять в несколько раз, например раз в 5–10 и ноды с этим справятся.
  3. Но т. к. вопрос размера блока решается майнерами, то вряд ли они это сделают. В случае большого количества транзакций им выгоднее текущая модель, по которой в блок попадает тот, кто больше платит. -> Вопрос к Ethereum Foundation, не хотят ли они увеличить размер блока в своем следующем хардфорке

--

--