Мне понравился антипул-алгоритм с подписыванием каждой итерации майнинга. Честно говоря, у меня сразу появилась такая мысль. В этом случае майнинг-пулу придётся посылать майнерам весь блок и приватный ключ coinbase-транзакции. В целом, это движение в правильном направлении, так как повышается децентрализация.
С чего ты взял что придётся посылать всё это одному и тому же батраку? Следи за руками. Батраков делим на 2 команды. Одна команда подписывает заголовки приватными ключами, другая проверяет подписи и хеширует блок. У первой нет блоков, у второй нет ключей. Потрачено.
Честно говоря, я не имею представления, как именно устроена упомянутая в этой теме монета, но я понимаю общий принцип антипул-алгоритма примерно так.
В блоке нет разделения на header и body. В блоке есть previous_block_hash, timestamp и другие стандартные поля. Кроме этого, в блоке есть поле
nonce, длиной, к примеру, 8 байт, далее следуют транзакции. Так же, как и в Bitcoin, может использоваться дерево Меркля, но не обязательно. Майнер при
каждой итерации майнинга изменяет
nonce, затем хеширует (желательно, асикостойским алгоритмом)
весь блок вместе с
nonce и транзакциями в открытом виде, затем подписывает это, например, 32-байтное число приватным ключом coinbase-транзакции при помощи асимметричного шифра ECDSA secp256k1 и проверяет, допустим, необходимое число старших нулевых битов в получившейся 64-байтной строке. Если сложность не соответствует таргетированной, поле
nonce опять изменяется и процесс повторяется, пока не будет найдено подходящее решение. В случае успеха майнер просто добавляет эту 64-байтную подпись к блоку и как можно быстрее броадкастит смайненный блок в сеть.
При такой схеме нет никакого смысла делить майнеров на две команды. Даже если передавать хеши на подпись майнинг-пулу по сети, получится просто огромный трафик с радикальным снижением эффективности майнинга.