Можно ли доверять временным меткам в транзакциях?

Мне нужно правильно сегментировать транзакции по времени. Можно ли доверять временным меткам в транзакциях? Можно ли их подделать?

Я не уверен, являются ли временные метки транзакций частью протокола, но меня особенно интересует «Время получения», которое отображается в blockchain.info. Например, эта транзакция ( URL API )

{
   time:1385506952,
   inputs:[
      {
         prev_out:{
            n:2,
            value:50000000,
            addr:"17BPmjqg7mbaWYdff2EjVxra1FBHG4VAN3",
            tx_index:97772745,
            type:0
         }
      }
   ],
   vout_sz:2,
   relayed_by:"127.0.0.1",
   hash:"4054f8170f7fc7c12229a116baead874f22478810b0a7e842aa28403c9b59927",
   vin_sz:1,
   tx_index:99131036,
   ver:1,
   out:[
      {
         n:0,
         value:40000000,
         addr:"1LwmnEn97jcANB68C5BVFQLJJLAm5UTJqW",
         tx_index:99131036,
         type:0
      },
      {
         n:1,
         value:9990000,
         addr:"17BPmjqg7mbaWYdff2EjVxra1FBHG4VAN3",
         tx_index:99131036,
         type:0
      }
   ],
   size:257
}
Вероятно, это время, когда биткойн-клиент blockchain.info впервые увидел (получил) транзакцию, но у меня нет источника для этого заявления. В любом случае, если предположить, что это так, это заслуживает доверия только в том смысле, что отправитель транзакции не может ее подделать, но ненадежно в том смысле, что любая неправильная установка времени в настройке времени сервера blockchain.org (или код, который он выполняет) может сделать его неверным.
Связанный: В этом вопросеtimereceived обсуждаются временные метки и другие временные метки, используемые API-интерфейсом оригинального биткойн-клиента . Я полагаю, что разумно предположить, что blockchain.org использует термин «полученное время» в смысле исходного биткойн-клиента (в том смысле, который я упомянул в своем другом комментарии в качестве предположения). timereceived

Ответы (2)

Транзакции не имеют временных меток, поэтому временная метка, отображаемая на blockchain.info, соответствует времени, когда их узел получил транзакцию. Отображаемое время также изменится на время, когда оно было включено в блок. Как правило, нельзя доверять отметке времени, указанной для неподтвержденной транзакции на blockchain.info, поскольку она полностью зависит от их узла.

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

Если майнер получает два действительных блока, близких друг к другу, сначала один от майнера B, а затем один от майнера A, и временная метка на блоке A показывает, что он действительно был добыт первым, наш майнер все равно будет включать блок B, потому что он пришел первым, и майнеры заинтересованы в том, чтобы начать добычу следующего блока как можно скорее.