Encryption

只允許在一定時間後知道解密密鑰

  • August 20, 2022

我們有一個包含加密數據的智能合約,在指定的時間限制之前應該保持加密。然後,解密密鑰將被公開,每個人都可以讀取該數據。我們希望以一種無需信任的方式來實現這一點,因為任何在 timeLimit 之前了解此數據的人都可以使用它來利用系統。

如何做到這一點?

PS:我嘗試探索基於“工作證明”的“時間鎖定難題”解決方案。(相關:Time Capsule 密碼學?)但我發現這些不可靠,因為礦工有可能在 timeLimit 之前找到解決方案,然後才揭示它。另外,如果你把難度設置得夠大,那麼即使在timeLimit之後,也可能很長一段時間都沒有找到任何解決方案,這也很糟糕。

顯然,您需要在時間限制期間將解密密鑰儲存在其他地方。然後,您必須與所有各方達成一致,一旦時限用完,資訊將在何處發布。除了時間膠囊密碼學,我知道沒有零證明知識方法可以保證項目中的惡意人員或人員在知道密鑰儲存位置的情況下無法恢復密鑰。理想情況下,數學家或密碼學家應該插話以確認我的說法。

如果沒有時間膠囊密碼學,最好的選擇是讓一個知道儲存位置真實位置的人得到高度信任(理想情況下,甚至是實施它的人),並在一段時間後說出來。如果您的時間限制很大,則需要更多的人以防該人浸入項目或死亡。

另一種策略是在許多加密密碼之上進行分層。只有這個人知道外層的密碼,一個人揭示內層,另一個人揭示核心,揭示其狀態的最終密鑰。如果你不明白,基本上它就像洋蔥一樣包裹起來,每一層都有一個只有一個人知道的特定密碼。如果外層沒有被解鎖,那麼在外層被解鎖之前,內層的密碼知識是沒有用的。

我不是數學專業的,所以可能有更好的解決方案。這是我目前能想到的最好的。

沒有滿足您要求的加密解決方案。@fgreu已經很好地解釋了原因

相對可靠的方法之一是使用具有內部時鐘的硬體。使此類硬體能夠抵抗任何類型的篡改,例如機械拆卸、暴露於機械力、輻射、溫度、電磁場。該硬體的使用者應該不間斷地提供電源(電源中斷顯然會導致以後洩露秘密)。您甚至可以製作此類硬體的多個副本並將它們提供給所有感興趣的各方。他們都將同時獲得秘密。

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