秘密共享,以便所有股東都可以訪問秘密(一個股東不能只是帶著股份跑掉)
說,使用類似 Shamir 的多項式方案,你分裂了一個秘密 $ x $ 之中 $ n $ 人(每個人都有秘密的“份額”),這樣你就需要所有 $ n $ 共享以恢復秘密。如何確保所有 $ n $ 參與者將有權訪問該秘密。例如,對於兩個人,Bob 和 Alice,Alice 可以告訴 Bob 她的份額,而 Bob 可以拿走那個並在不洩露他的份額的情況下公開秘密。您如何確保所有股東都能夠公開秘密,否則就沒有?
我也想要這個類似問題的答案:Alice 和 Bob 都有自己的秘密 $ a $ 和 $ b $ 分別。他們如何確保他們都可以訪問對方的秘密?與例如愛麗絲告訴鮑勃她的秘密相反,鮑勃只是逃跑而不告訴愛麗絲他的秘密。如有必要,您可以堅持秘密具有某些屬性。(例如 $ a $ 是某個方程的解 $ f(a)\equiv 0 $ ).
對於所有這些問題,我想要一個不涉及第三方的解決方案。可能嗎?
您正在尋找一個公平的交換原語(股票的公平重建是一個稍微複雜的變體,我將在這個答案中關注前者)。已經有很多關於這個主題的研究。底線是:
- 在沒有誠實多數、沒有任何可信第三方的標準計算模型中,公平交換是不可能的(這裡是開創性成果,這裡是一些最近的工作)。
- 但是,使用非常有限的 TTP 形式(什麼都看不到,只在出現問題時使用),它變得可行。關鍵詞是樂觀公平交換(此處或此處)。
- 有了嚴格誠實的多數黨,一般的公平安全計算是可能的。
然後,還有其他巧妙的解決方案,它們偏離了標準的計算模型:
- 您可以使用時間假設和原語,例如時間鎖定謎題或定時承諾。讓我給你一個簡化的例子:假設 Alice 和 Bob 有各自的秘密 $ a $ 和 $ b $ . 他們首先交換承諾 $ c_a $ 和 $ c_b $ 到他們的投入。然後,他們會逐漸削弱承諾的開放性——考慮例如逐位釋放開放資訊,輪流。然後,您獲得以下保證,這不是很公平,但可能足夠好:例如假設 Bob 提前中止,並設法恢復 $ a $ 通過蠻力及時開場的缺失部分 $ T $ . 那麼愛麗絲總是擁有幾乎和鮑勃一樣多的資訊,最多只有一個比特(因為雙方每輪交換一個比特)。因此,她自己可以康復 $ b $ 最多及時 $ 2T $ .
更多涉及的構造試圖確保“蠻力時間”必然是連續的,這樣即使作弊者擁有大量的計算能力,他們也無法顯著加快速度。在這裡查看更多細節- 有很多後續行動。
這種解決方案的一個缺點是誠實方可能必須投資的權力沒有上限:如果對手願意花費大量時間 $ T $ ,那麼誠實的一方必須花費比這多兩倍的時間。如果您願意滿足於部分公平,這可以在一定程度上得到解決,在這種情況下,您可以接受小機率 $ 1/n $ , 在哪裡 $ n $ 是多項式的,即對手破壞了公平性。在這種情況下,我們在本文中展示了您可以獲得(部分)公平的交換協議,該協議對參與者可能必須投資的最大計算量有明確的限制(即使有人作弊)。
- 或者您可以使用區塊鏈作為您的信任假設來替換 TTP。從某種意義上說,這使 TTP 去中心化。沿著這些構想的一些提議實際上可以在乙太坊區塊鏈上實際實施。這篇論文是這項工作的起點。
- 上述變體使用貨幣激勵,智能合約保證你要麼誠實公平地玩遊戲,要麼賠錢(這裡是這方面工作的一個樣本,儘管我認為它沒有明確解決公平問題)。
此處對我的論文的介紹提供了更多擴展的討論和建議,您可能會感興趣。