Проверка транзакции

Я запускаю инструмент 0-подтверждения. Для отслеживания новых транзакций я использую:

  1. биткойн
  2. новые транзакции в новом блоке недоступны в мемпуле (кажется, я не получаю все транзакции в мемпуле до того, как мой клиент примет новый блок)

Я доверяю процессу проверки транзакции моего биткойн-клиента (правилам протокола). (Я ожидаю, что он сделает все шаги в: https://en.bitcoin.it/wiki/Protocol_rules#.22tx.22_messages )

Я ожидаю, что у меня нет гарантии, что клиент/человек, создавший новый блок, следовал правилам протокола для включенных транзакций, поэтому я хочу проверить «отсутствующую» транзакцию из моего мемпула.

Я знаю, что 6 подтверждений считаются «безопасными», но я хотел бы сделать 0-подтверждение (или 1-подтверждение в отношении нового блока) как можно более безопасным.

1: Каждая ли транзакция проверяется моим биткойн-клиентом перед принятием нового блока (локального)? (чтобы убедиться, что каждая транзакция, доступная в мемпуле и блокчейне моего (официального) клиента, соответствует правилам протокола)

2: Если 1. неверно: какая программа bitcoind API или (python) доступна для проверки транзакций, включенных в новый блок, если они соответствуют (официальным) правилам протокола?

Ответы (1)

Да, ваш клиент будет полностью проверять каждый полученный блок.

Ваша самая большая проблема с принятием транзакций с нулевым подтверждением заключается в том, чтобы злоумышленник не мог отправить вашему узлу (узлам) транзакцию, которую остальная часть сети отклонит как двойную трату. По сути, вы захотите запретить прямые подключения к своим узлам и подключить их к доверенным узлам, таким как крупные майнеры.

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

Спасибо! Теперь я понимаю риск, связанный с тем, что узлы моего клиента можно отследить и/или использовать недоверенные узлы.
Для получения дополнительной информации о рисках, связанных с принятием неподтвержденных транзакций, см. недавние статьи Karame et al. и Бамерт и др. (отказ от ответственности: я автор второго). Они обеспечивают глубокий анализ причин и контрмер.