Transactions
交易中的時間戳是否可信?
我需要按時間正確細分交易。交易中的時間戳是否可信?這些可以偽造嗎?
我不確定事務時間戳是否是協議的一部分,但我對出現在 blockchain.info 中的“接收時間”特別感興趣。例如本次交易(api url)
{ 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.info 上為未確認交易提供的時間戳是不可靠的,因為它完全依賴於他們的節點。
交易的實際時間並不重要*,出塊的準確時間也不重要。最後,它是關於順序*的:在探勘下一個區塊的競賽中,第一個有效區塊被廣播給所有其他礦工,並且該區塊是最長鏈的一部分。
如果礦工收到兩個彼此靠近的有效區塊,第一個來自礦工 B,然後一個來自礦工 A,並且區塊 A 上的時間戳顯示它實際上是首先開采的,我們的礦工仍然會包含區塊 B,因為它先進來,並且激勵礦工盡快開始探勘下一個區塊。