如何構造乙個不可偽造的 時間戳 ?

時間 2021-05-31 11:38:50

1樓:

位元幣基本上就達到你的要求了,你可以發起乙個位元幣的銷毀交易,同時把想要儲存的資訊放進去,當這個交易被加入區塊後,就可以被確認了。

區塊在區塊鏈中的位置越靠前,被修改的可能性越小。

例如中本聰在創世區塊中留下的資訊。

不過,確認的時間只能是該區塊生產的時間,兩個區塊的時間間隔一般是在10分鐘。

當然,利用其它公有鏈也可以達到同樣的目的。

2樓:

首先,題主沒有明確問題的範圍,很難判斷題主問的是如何在工程上實現乙個這樣的系統還是數學意義上的極限逼近或者是相對論上的時間同步或是哲學上的時間。

姑且認為題主的意思是在工程上如何實現乙個這樣的系統。

這個問題涉及到時鐘同步和可信認證,如果認為客戶是不可信的(可能偽造時間戳),就需要乙個可靠的中心伺服器,伺服器接收到資訊的時候將資訊與伺服器時間混合,並使用摘要演算法計算,就可以得到乙個「獨一無二的資訊時間戳」。當然這種方法也並不能達到絕對可靠,因為摘要演算法是可能被碰撞的,比如前段時間Google就成功碰撞了sha-1演算法的pdf簽名,但是工程上一般允許極小概率的失誤出現,當然你用的指紋長度越長,被碰撞的概率就越小

如果認為客戶可信,只要統一乙個摘要演算法就行了,問題就變成了如何同步多個系統的時鐘,這個問題就不多講了,不同的應用場景有不同的解決方法

3樓:靈劍

第三方數字簽名的方法就很好,如果非要去中心的,可以執行乙個分布一致性系統,當你寫入乙個資訊的時候,把你最新讀到的一條訊息的摘要一起寫進去。這樣就證明你的寫入時間一定比那條訊息晚。等下一條訊息寫入的時候,它的時間戳加上你的資訊的摘要證明你的寫入時間不晚於那個訊息的時間。

寫入頻率足夠高,寫入的無關使用者足夠多,加上其中大部分使用者時間戳是真實可靠的,就能保證偽造時間戳立即被發現。

如果不希望資料要求完全線性,可以在每條訊息裡多增加一些當前讀到的訊息的摘要,靠概率保證每條訊息都有人讀到並生成摘要。

4樓:

我覺得題主的題目不夠嚴謹。

「某個時間點」同時作為「不早於」和「不晚於」是數學上、物理上不存在的。時間記錄是有精度的,記錄是需要耗費能量的,所以,一定是「兩個」時間點,而不是乙個。

就資訊的時間驗證,現在有成型的系統。通過可信第三方簽名即可。

看到題主自己答案裡面,說「不早於」不能偽造。不可偽造還是需要完整性保護的吧。否則,最後都變成了「不早於現在」、「不早於驗證的時間」。

因為過去的事情容易驗證,但也就意味著容易偽造。

不晚於的意義也是一樣的。沒有完整性保護,直接寫乙個時間或事件沒有意義。

5樓:Yuni

題目中說「證明資訊的產生時間「不早於」/「不晚於」某個時間點」,還有另外一種說法是「證明資訊的產生時間就在某個時間點」。因此,或許可以把問題再明確,或者說簡化一下,即「如何安全地記錄乙份資訊的建立時間?」

Google了一下,發現這個問題和Trusted timestamping 和 Linked timestamping(維基百科)有關。

一種簡單的方案就是,假設存在乙個可信的時間戳權威TSA,TSA可為乙個時刻T發布乙個數字證書,證書資訊包含「時刻T+公鑰PK_T」。信任TSA的人都相信,任何用PK_T對應私鑰SK_T簽名的資訊都是在T時刻建立的。在T時刻,當乙個人欲為乙份資訊建立乙個時間戳時,則將該資訊提交給TSA來簽名,其他人則可用PK_T來驗證時間戳是否正確。

和許多現實中的密碼學應用問題一樣,挑戰在於這個可信的第三方權威TSA是怎麼來的。

TSA不一定是乙個具體的人/機構,也不用一定非要採用公鑰體系來實現安全。例如,題主所說的「圍棋棋譜的例子」,就是隱含乙個信任假設,即假設所有人都無條件相信(公認)「棋譜這個資訊是在2023年某事某刻建立的」。類似的還有每天出版的報紙,即報紙上的資訊建立的時間不會晚於報紙出版時間。

TSA也可以體現為一種集體「共識」。例如假設位元幣中區塊鏈不可偽造/重構,交易發生的時刻構成了一種相對的時間戳,乙個新塊的建立一定晚於鏈上之前的塊的建立。

6樓:亭前雨下

將需要的資訊或雜湊值記錄在戳內,有隨時間而變化性質的物質做戳的載體,例如半衰期。最後,保證此物質寫入資訊後不可更改。

測骨齡差不多有感。

7樓:魚雲

向乙個遙遠的星體,傳送乙個光訊號。

對於在那個星體處的觀察者來說。因為你不能超過光速去攔截你發出的光訊號。所以是不能造假的。(這裡排除空間摺疊一類的有時間機器效果的東西)

8樓:荊哲

我是題主,是來拋磚引玉的。

要證明時間戳的產生時間「不早於」某時間點,理論上只用附上眾所周知該時間點產生的資訊即可,比如你2023年是不可能偽造AlphaGo和李世石的對局記棋譜的,所以這個棋譜可以證明產生時間不早於2023年3月。

真正困難的是,如何證明時間戳的產生時間「不晚於」某時間?即你不可能在今天偽造乙個昨天的時間戳,如何做到?如果用中心化可以怎麼做到,如果必須要用非中心化的方法,又應該怎麼做到?

附:如果有兩種方法分別能做到這兩點,你就可以先以「不早於時間點a」的時間戳作為金鑰加密資訊,再用要發布的資訊作為金鑰加密第二層,最後用「不晚於時間點b」的時間戳作為金鑰加密第三層。這樣就能證明資訊的發布時間介於a和b之間,其中a和b相隔足夠小。

本人非專業,僅為拋磚引玉。

如何構造乙個公平骰子?

多面骰一般不都是用那種轉盤一樣的東西麼。當然可以,只要這個多面體有N的整倍數個面完全等價就行。最簡單的解決方案,對已任意正整數N 2,先搞乙個正N稜柱。為了避免用語不當,這裡正N稜柱指底面為正N邊型,頂點與底面的中點連線垂直於底面。拿兩個完全一樣的這樣的正N稜柱,將其底面重合粘合。這樣總共有2N個面...

能不能不用選擇公理構造乙個不可測集合?

簡單地說,目前已知的是不能,並且不可測集的存在需要用到較強的選擇公理。前面已經有人提到了Solovay的模型,這裡多說一句,Solovay的模型依賴於乙個比ZFC更強的假設 俗稱inaccessible cardinal 而且這個假設是必要的。這樣就有乙個有趣的結果就是你確實可以假設 ZF 不用較強...

如何在腦海中構造乙個宇宙?

Reiminn Wang 我不說多,你先能在腦海中構建一根頭髮的橫截面,精確到看清每一顆原子。然後我就告訴你怎麼在腦海中構造乙個宇宙。甚至再簡單一些,你先能在腦海中構造一整塊DNA的四種核酸分子的任意排列,看清每一顆原子的位置。然後我絕對毫無保留的告訴你怎麼創造乙個宇宙,甚至告訴你怎麼任意進出量子宇...