Аппаратно-зависимая сложность блока?

Можно ли сделать сложность производства блоков не одинаковой для каждой ноды, а автоматически подстраиваться под аппаратную скорость ноды? Например, узел A и узел B пытаются решить свои следующие блоки, аппаратная скорость узла A в два раза выше, чем у узла B. Их клиентское программное обеспечение определяет скорость их оборудования и регулирует сложность таким образом, чтобы сложность следующего блока B была вдвое меньше, чем у блока A. Это возможно?

Ответы (1)

Нет, сложность — это общесетевое правило консенсуса. POW-майнинг помогает решить проблему сивилл-атак, тогда как ваша идея открывает майнинг для сивилл-атак:

Ваша идея создаст равные условия для всех устройств (независимо от вычислительной мощности), поэтому, если я хочу расширить свою деятельность по добыче, я просто хочу запустить тысячи майнинговых узлов. Аппаратное обеспечение не имеет значения, поэтому я мог бы просто использовать дешевые компьютеры или, что еще лучше, ботнет. Чем больше узлов я смогу сделать, тем лучше!

Кроме того, как вы можете быть уверены, что узлы не лгут о доступном им хешрейте? Как вы можете быть уверены, что пользователь не переписал исходный код своего клиента, чтобы искусственно снизить сложность? И т. д.

Хорошая точка зрения. Забыли, что POW также защищает от атаки Сивиллы, просто требуя затрат энергии. Однако, не могли бы мы попытаться смягчить нападение Сивиллы другими средствами? Я предвижу два возможных пути: а) Требование к каждому узлу подтвердить минимальное количество транзакций, прежде чем он получит право на майнинг; б) Каждый узел должен представить монеты с минимальным количеством монетных дней, чтобы иметь право на майнинг.
Общая идея состоит в том, чтобы сместить затраты с потребления энергии на что-то другое, что-то примерно одинаковое для всех, например, реальная проделанная работа, время и т. д.