Solidity

在區塊鏈上隱藏答案/投票

  • September 27, 2017

我知道每筆交易在區塊鏈上都是可見的,但是否有可能創建一個允許人們變相投票的 DApp?直到投票過程結束才展示他們的投票?

您正在尋找承諾方案。通常,承諾方案有兩個階段:送出揭示階段。一個簡單的承諾方案如下:

  1. 送出階段:如果 Alice 想要送出一個值x,她必須生成一個隨機數r(假設r應該超過 100 位)並發送H(x||r),其中H是一個加密安全的雜湊函式,||代表連接)。由於H在密碼學上是安全的,因此在計算上找到 的原像是不可行的 H(x||r)(即它的機率可以忽略不計)。此屬性稱為計算綁定。此屬性確保沒有人(甚至 Alice)可以更改 Alice 的承諾值x
  2. 揭示階段:愛麗絲揭示她的選擇x'r'。Bob 檢查是否H(x||r)==H(x'||r'). 如果匹配則接受,否則拒絕。

可以使用離散對數問題建構其他更精細的承諾方案。

引用自:https://ethereum.stackexchange.com/questions/27236