Protocol-Design

是否有任何協議可以證明消息是在某個時間寫入的?

  • July 9, 2019

是否有一種方法可以加密證明消息是在某個時間寫入的?我知道可以在比特幣交易中寫入消息,以將該消息保存在區塊鏈中,這可以用來證明該消息是當時寫的,但我想知道是否有任何專門為此目的存在的協議證明消息的時間。

一般來說,沒有。

您可以通過使用抗衝突散列對消息進行散列並將散列傳達給記錄它在時間 T 知道散列的可信第三方來證明消息是在時間 T 之前寫入的。可以使用比特幣區塊鏈作為這裡的第三方。您不需要將整個消息放入區塊鏈中,只需一個雜湊即可。

你不能證明一條一般消息是在時間 T 之前寫的。如果有一種所謂的方法來證明這一點,你可以在時間 T 之前寫一條消息,等待時間 T,然後執行所謂的證明,欺騙任何驗證者。

如果您可以與驗證者來回通信,則可以通過對您的消息以及驗證者提供的一些隨機數據進行雜湊處理並將雜湊傳遞回驗證者來證明您正在通信期間編寫消息。

如果 B 需要向 A 證明 B 在某個時間知道(或寫過)消息 M,可以使用這個簡單的協議:

  • A 向 B 發送一個均勻分佈的隨機 NONCE,命名為 R,至少 128 位。A 從 A 信任的時鐘記錄該日期 D1。
  • B 符號 {M,R}。讓 S 成為這個簽名。
  • B 將 M 和 S 發送給 A。
  • A 驗證簽名 S、nonce R 和消息 M。A 從同一個可信時鐘記錄這個日期 D2。
  • A 知道 M 在 D1 和 D2 之間被 B 知道。

引用自:https://crypto.stackexchange.com/questions/71777