Сегодня я нашел другую несовместимость между правилами Bitsofproof и правилами Satoshi клиента. Я буду сообщать сегодня в Грау. Bitsofproof все еще в бета-версии, но выглядит очень многообещающим.
Но дело в том: Если все сообществе Bitcoin (кроме альтернативного клиента сопровождающему проекта) уведомления о возможности сети раскола?
Благодарим Вас за глубокое погружение в код и отчетности своих выводов. Я (пока) не убежден в том, что разница, которую вы заметили, читая код действительно приводит к уязвимостям различного поведению, поскольку существует многочисленные тесты разделяемых между Satoshi и битами доказательства, направленные именно на этих тонкостях. В частности, тесты
https://github.com/bitsofproof/supernode/blob/master/server/src/test/resources/script_valid.jsonа также
https://github.com/bitsofproof/supernode/blob/master/server/src/test/resources/script_invalid.json бы весьма вероятно, уловили разницу, по вашему мнению.
Процесс, который вы затем уведомления автора с деталями в первую очередь правильно. Было бы справедливо, чтобы ждать подтверждения уязвимости и ее исправить, прежде чем сообщить, что вы нашли что-то, как раз, чтобы избежать это звучит как FUD-ную реализацию. Есть ошибки в каждом программном обеспечении и должно быть бесчисленные различия между реализациями. Ошибки должны быть исправлены, но различия должны быть тщательно оценены, если они действительно предлагают практическое эксплуатируют.
Ваша работа является ценной для всех нас, пожалуйста, продолжайте, но будут меняться не только безопасность сети, но и репутация реализаций, которые в некотором отношении также поддерживают безопасность.
Да Грау, вы правы. Вот почему я не обнародуют детали проблемы. Но если честно, эта проблема существует в коде Bitsofproof, я совершенно уверен.
Тот факт, что BisofProof все еще в бета-версии (но не будет в бета-версии навсегда) является причиной того, что я спрашиваю людей: как мы должны справиться с проблемой с одним (но не все) реализаций клиента.
Я думаю, что для сообщества блага, так же быстро, как ошибка, которая может привести к возможной сети раскол обнаружила, все пользователи должны быть уведомлены. Я имею в виду все (в том числе пользователей, которые не используют этот клиент). Это вовсе не означает, что ошибка должна быть подвержена. Но если люди знают, что их клиенты могут пчелы "выбиты" лучшей цепи, они могут поставить дополнительные защитные меры, чтобы периодически проверять, если они были.
Связанный с тестовыми Grau вывешенным, я совершенно уверен, что они не проверяют эту проблему я пятнистая.
Эти тестовые случаи не проверить результат каждого опкода, только они проверяют, если верификация скрипта выходит из строя или нет.
Это совершенно неправильно, или, по крайней мере, это неполно.
Если вы хотите, чтобы проверить, работает ли OP_ADD1, вы должны проверить, что перед выполнением кода операции и после этого стека имеют некоторые известные значения. Теперь Тестовые скрипт только проверить, что результат ИСТИНА или что-нибудь еще.
Gavin или кодеры доноров должен попытаться построить более подробные тестовые примеры для каждого сценария арифметического опкода, чтобы избежать завинчивания вещей в будущих версиях и помочь другим исполнителям проверить свои коды.
Grau: мое впечатление, что ваш код хорош, как код Mike Хирн. Проблема не в вашем коде, но в отсутствие "Bitcoin Библии" руководство для определения скрытых и часто забывают правила протокола.
Разрешили бы мне разместить здесь проблемы?