Я запускаю инструмент 0-подтверждения. Для отслеживания новых транзакций я использую:
Я доверяю процессу проверки транзакции моего биткойн-клиента (правилам протокола). (Я ожидаю, что он сделает все шаги в: https://en.bitcoin.it/wiki/Protocol_rules#.22tx.22_messages )
Я ожидаю, что у меня нет гарантии, что клиент/человек, создавший новый блок, следовал правилам протокола для включенных транзакций, поэтому я хочу проверить «отсутствующую» транзакцию из моего мемпула.
Я знаю, что 6 подтверждений считаются «безопасными», но я хотел бы сделать 0-подтверждение (или 1-подтверждение в отношении нового блока) как можно более безопасным.
1: Каждая ли транзакция проверяется моим биткойн-клиентом перед принятием нового блока (локального)? (чтобы убедиться, что каждая транзакция, доступная в мемпуле и блокчейне моего (официального) клиента, соответствует правилам протокола)
2: Если 1. неверно: какая программа bitcoind API или (python) доступна для проверки транзакций, включенных в новый блок, если они соответствуют (официальным) правилам протокола?
Да, ваш клиент будет полностью проверять каждый полученный блок.
Ваша самая большая проблема с принятием транзакций с нулевым подтверждением заключается в том, чтобы злоумышленник не мог отправить вашему узлу (узлам) транзакцию, которую остальная часть сети отклонит как двойную трату. По сути, вы захотите запретить прямые подключения к своим узлам и подключить их к доверенным узлам, таким как крупные майнеры.
Это не устраняет риск, но несколько снижает его до атак Финни, когда злоумышленнику повезло передать вам плохую транзакцию через крупного майнера, который в конечном итоге не помещает эту транзакцию в блок до того, как конфликтующая транзакция будет добыта.
пвз
cdecker