Это может быть так же просто, как указатель на какое-то место в документации, которое я пропустил, но как/где проверяется результат вычисления контракта или гарантируется от злонамеренного майнера с намеренно поврежденной реализацией виртуальной машины?
Простой пример: мой контракт принимает два входа, A и B, и возвращает их сумму. Майнер с сомнительной репутацией хочет получить комиссионные за транзакцию и эфириум за газ по этому контракту, не выполняя работы, и взламывает свою реализацию виртуальной машины, чтобы всегда возвращать «4» вызывающему абоненту. Любой, кто тестирует "2+2", подумает, что функция работает.
Предположим, что майнеру удалось добыть блок с запросом на мой контракт, и он вернул «4» (чтобы не тратить свои собственные вычислительные мощности и не класть в карман стоимость газа). Все хэши блоков для принятой транзакции и переданного эфира верны и проверяемы, источник и коды операций контракта проверяемы и верны. Но как проверяется результат вычислений на правильность?
Я чувствую, что упускаю что-то очевидное. Что останавливает майнера от короткого замыкания запрошенной работы (что бы это ни было), утверждая, что завершил работу, возвращая только что-то синтаксически правильное, но семантически сомнительное или неправильное?
Спасибо.
Другие узлы выполняют те же вычисления детерминированным образом и сравнивают свой результат с результатом, полученным майнером. Вот почему нет функции, которая возвращает случайные результаты — разные узлы будут получать разные числа, и цепочка разветвится. Все остальные майнеры проверяют ваш блок, а штрафом за построение неправильного блока является потеря добытого вами блока.
Но есть связанный с этим вопрос: можно ли получить преимущество, улучшив скорость виртуальной машины или каким-то образом пропустив вычисления?
Я думаю, вы могли бы. Например, вы можете перенести вычисления на GPU. Несмотря на то, что Dagger устойчив к графическому процессору, виртуальные машины требуют небольшого объема памяти и, вероятно, могут работать на графическом процессоре.
Однако преимущество будет весьма незначительным.
Кларис
ДжессиМ