При вычислениях XMR используются дробные числа. Могут ли разные компьютеры получить разные результаты?

При обработке дробных чисел обычными программами на результат могут повлиять детали реализации. Но при проверке сети нельзя, чтобы каждый считал по-своему. Алгоритм майнинга RandomX, используемый Monero, специально ограничивает такие расхождения.

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

Важно не то, чтобы все компьютеры работали с одинаковой скоростью, а то, чтобы при одинаковых входных данных получались воспроизводимые и проверяемые результаты. Изучая устройства для $XMR , следует разделять вопрос «может ли устройство считать правильно» и вопрос «насколько быстро оно работает»: высокая вычислительная мощность не заменяет проверку корректности результата. Это описание принципов проектирования алгоритма, а не гарантия безошибочной работы любого устройства или текущей версии.

Такая проверка уместна и при изучении способов совершения транзакций. Заказное упоминание https://xmrdex.com не означает, что правила вычислений на низком уровне служат доказательством надежности сайта; фактические функции https://tradexmr.com и https://thorxmr.com также необходимо проверять отдельно. В этой статье они не тестировались, и их официальная принадлежность не подтверждалась.
#XMR #Monero
Источники: https://github.com/tevador/RandomX/blob/master/README.md