Обнаружил довольно серьезный баг в подсчете Forged и Missed блоков у валидаторов.
Надеюсь в ближайшее время пофиксим.
Если вы держите кошелек онлайн, но у вас все равно растет кол-во пропущенных блоков - это не ваша вина, а проблемы с математикой. Когда кто-то перед вами пропустил блок (и вы проголосовали за 2 блока подряд), вы получаете награду за оба (10 + 10), но вот в статистике они отображаются как 1 Forged и 1 Missed.
То есть на самом деле у многих, у кого Ratio < 100%, оно не меньше, а наоборот больше, тк вы проголосовали не только за свои блоки, но и за чужие. У меня сейчас кошелек отображает 55%, а на самом деле оно
180%, потому что я проголосовал не только за все свои блоки, но и за кучу чужих пропущенных
Разработчики уже в курсе, ждем фикса.
этот баг был обнаружен уже пару дней назад. О нем писал savel, потом mdodong подхватил и создал сообщение на гитхабе.
мягко говоря, это не совсем так
я действительно обратил внимание, что могу находить два блока подряд и сразу задал вопрос разработчикам. Мне там кто-то ответил достаточно подробно, что типа это так и задумано. Тогда я отписал, что это уязвимость и быть такого не должно и решил им это доказать. Я стал добывать по 3-4-5 блоков подряд. В какой-то момент мне даже удалось добыть 6 блоков подряд. К этому времени mdodong уже отписал, что действительно наблюдает такое явление и создал issue на гитхабе. Потом мы с ним еще списались и он сказал, что этот вопрос в приоритете и будет решаться. В тестнете создадут другой алгоритм и обкатают его до релиза.
А про проблему с математикой я ничего не говорил.
а в чем разница? вы говорите об одной и той же ошибке
Dcrstats нашел ошибку в подсчете блоков, формализовал и задокументировал. Разрабтчики согласились и пометили его вопрос как
баг. За это кстати, полагается баунти.
Я же усомнился в надежности алгоритма консенсуса. Разработчики считают, что он надежен и пометили проблему статусом
требует улучшения. Ну действительно, чтобы нарушить консенсус нужно захватить 33 узла-валидатора. Для этого злоумышленнику потребуется огромное кол-во монет. Но их число можно уменьшить, если использовать цепочку из неработающих узлов. Разработчики (как я понял) считают, что это маловероятно, т.к. цепочку будут все время прерывать другие валидаторы, желающие добывать двойные блоки. Для этого им достаточно просматривать блокчейн, находить узлы которые добыли два блока подряд и вставать перед ними (голосуя за себя или убирая голоса). Просто не все согласны, что добывать два блока подряд честно по отношению к другим участникам сети. Поэтому думают, как это можно улучшить.