Несмотря на то, что в составленном Сатоши Накамото техническом описании Биткоина содержится обзор модели упрощенной проверки платежа (SPV), сообщество разработчиков до сих пор не реализовало всех предложений данного раздела. В частности, Сатоши описывал систему предупреждений, которая должна сообщать SPV-нодам об обнаружении ошибочного блока полным узлом.

Однако, до настоящего времени эта идея никак не развивалась. По словам участника разработки Bitcoin Core и генерального директора компании Ciphrex Эрика Ломброзо (Eric Lombrozo), реализация идеи Сатоши о повышенном уровне защиты SPV кошельков может стать возможной благодаря мягкому обновлению Segregated Witness (SegWit).

Особое внимание Ломброзо уделяет теме «доказательств обмана» (fraud proofs), использование которых может доказывать существование ошибочных блоков.

Для чего нужны доказательства обмана? 

Что же представляют собой эти доказательства обмана? Ломброзо объясняет, что эта новая функция может оказаться очень полезной для SPV узлов:

«Использование доказательств обмана повышает безопасность (SPV-нод), так как для того, чтобы ошибочный блок был обнаружен и проигнорирован SPV узлами, сети требуется всего лишь один осведомитель».

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

Вот что говорит об этом Ломброзо:

«Сейчас, при запуске SPV-клиента вы получаете блок, который подтверждает транзакцию, а вы (если только вы сами не способны проверить блок) просто соглашаетесь с подтверждением транзакции, поскольку вся сеть склонна считать это верным. Однако, естественно, майнеры могут обманывать или работать на дефектном программном обеспечении. Такое уже случалось. В таком случае SPV-клиенты увидят подтверждения, не соответствующие действительности».

Примером того, что может произойти в результате некорректной проверки блока, являются события 4 июля 2015 года. В тот день, после активации мягкого обновления BIP 66 один из пулов добыл ошибочный блок. Это не осталось бы незамеченным, если бы остальные майнеры выполняли полную проверку блоков, однако волей случая почти половина пулов занималась SPV-майнингом. Дефектная цепочка в конечном итоге была потеряна. Однако, все произошедшее стоило некоторым майнерам почти 50 000 долларов дохода, а некоторым пользователям пришлось ждать 30 подтверждений, прежде чем получить подтверждение своей транзакции.

Проверка корректности блока

Ломброзо подчеркивает, что получение доказательства об ошибочности блока для SPV-узлов не представляет особой сложности, так как для этого не требуется большого количества ресурсов, достаточно одной полной ноды, которая обнаружит проблему.

Он объясняет: 

«Даже если доказывать ошибочность блока слишком дорого (для этого необходимо загрузить весь блокчейн, а потом проверить его), возможно, проверить блок будет дешевле. Таким образом, у вас будет быстрое доказательство ошибочности блока.

Для создания и распространения такого доказательства в сети потребуется всего один узел. После этого все узлы будут знать, какой блок следует игнорировать».

По сути, доказательства обмана обеспечивают SPV-нодам более высокую степень защиты без каких-либо значительных потерь для их функциональности. 

Доказательства обмана не делают SPV-узлы идеальными

Несмотря на то, что доказательства обмана могут стать большим достижением в области защиты SPV узлов, проблемы все еще остаются. Эрик Ломброзо объясняет некоторые негативные факторы:

«Здесь присутствует серьезная проблема, которая заключается в необходимости высокой сопротивляемости цензуре. К примеру, если вы подключаетесь через инфраструктурный сервис ISP, а этот сервис решает заблокировать сообщения, возможно, были какие-то атаки. Поэтому он требует увеличения защиты».

Несмотря на то, что доказательства обмана все еще имеют множество нерешенных проблем, Ломброзо настроен оптимистично. Он уверен, что данное решение будет очень полезно для упрощенной проверки сети Биткоина в будущем.

Функциональность становится возможной благодаря реализации мягкого обновления Segregated Witness, однако Ломброзо заявляет: «Мы не будем использовать доказательства обмана во время первого запуска SegWit. Их реализация возможна в более поздних версиях».