與可能作弊或串通的同行就價值達成共識
假設我有一個網頁發布了一些隨時間變化的數字 x,並且該頁面可以公開訪問。
我想以某種方式證明該網頁在時間 t 發布了價值 y。有沒有辦法讓這成為可能?
這需要在沒有任何中央權限的情況下完成,因此僅通過正在發布的網頁簽署值+時間戳是不夠的。所以一個例子可能是股票市場 API 發布值,我們想提供一些證據,他們在某個時間發布了某個值。
首先,我認為任何(純)加密解決方案都將完全無法解決這些威脅模型:
- 如果你想通過暗地里為自己服務來攪渾水
y'
,生成一個以後再揭示的證據,也許是為了“追溯”推翻一些你不喜歡的結果呢?- 如果您為
y
自己服務(生成證明),同時向匿名訪問者和y'
已知(非證明)網路抓取工具(例如 web.archive.org、archive.is 和 cache.google )顯示 429 或 503 錯誤,該怎麼辦? .com?現在,回答您的問題:
y
“出版”是什麼意思?我能想到3個合理的解釋:
- 在周圍的某個視窗中,沒有向客戶端提供**任何不等於
y
**HTTP(S) 響應的消息t
- 沒有客戶端能夠並且願意對響應執行證明(以及舉報任何不適當的值)
y
在某些視窗內收到任何不等於 HTTP(S) 響應的消息t
- Web 伺服器
y
作為 HTTP(S) 響應向至少一個能夠並願意在周圍某個視窗內對響應執行證明的客戶端發出t
(1) 根本不可行。
顯然,很難(以加密方式)“證明”任何關於您的 API 為那些對對響應進行證明不感興趣的客戶提供的服務。
例如:如果 web.archive.org 和 archive.is 都聲稱並同意您的伺服器在 window 中產生了價值
y'
(不等於) ,那麼大多數通情達理的人(假設沒有發生嚴重的政治動盪會損害檔案管理員的完整性)會將這些存檔伺服器的響應視為您(或至少是入侵您的域或主機的人)當時提供的有效“證據”。但是,**從密碼學的角度來看,這並不好,**除非您願意在密碼系統的實例中將這些存檔服務添加為“受信任的見證人”或“受信任的預言機”。y``t``y'
但是,如果您可以接受 (2 & 3),您可以考慮DECO: Liberating Web Data Using Decentralized Oracles for TLS ,它允許 TLS 客戶端創建關於從沒有TLS-N或任何伺服器的 TLS 伺服器接收的數據的零知識證明- 端軟體修改。
DECO 將允許任何相關方“舉報”您提供的任何
y'
價值,並且允許任何相關方“驗證”您提供的適當y
價值。總的來說,這裡的問題更多的是共識問題,而不是密碼問題(儘管使用 DECO可以在密碼學方面取得很大的進步)。特別是:“舉報人”應該通過什麼過程來揭示
y'
您所服務的任何價值觀?有時間表嗎?集中式服務?是什麼阻止你忽視和禁止任何舉報你的不一致的人?我認為將 DECO(用於證明)與去中心化區塊鏈(用於共識)結合起來是一種可行的前進方式,具體取決於您的使用者所擁有的威脅模型。