什麼是區塊鏈中的承諾-揭示方案?(2025)

新手11/22/2023, 6:46:03 PM
探索 2025 年區塊鏈中承諾-揭示方案的演進,特點包括降低計算開銷、跨鏈應用、增強安全協議、不斷增長的企業採用以及創新的人工智能集成,這些都進一步加強了去中心化交易中的隱私和安全。

2025 年承諾-揭示方案的更新

承諾-揭示方案在 2025 年持續發展,出現了幾項重大進步,提高了其在區塊鏈應用中的實用性和效率。以下發展代表了這項技術的最前沿:

先進的實施方法

最近的創新集中在降低傳統承諾-揭示方案的計算開銷上。優化算法現在可以實現更快的驗證,同時保持安全完整性。這些改進導致了各種區塊鏈平台的採用增加,不僅僅是以太坊(Ethereum)平台,還包括從以下方面受益的二層解決方案:

  • 降低承諾-揭示操作的 gas 成本
  • 縮短承諾和揭示階段之間的確認時間
  • 通過改進的加密技術增強隱私保護

跨鏈應用

承諾-揭示範式已擴展到促進安全的跨鏈操作,允許在一個區塊鏈上的承諾在另一個區塊鏈上被揭示和驗證。這種互操作性突破實現了:

  • 在不同區塊鏈網路之間安全資產轉移
  • 具有增強隱私的跨鏈投票機制
  • 具有更廣泛市場準入的多鏈拍賣系統

安全增強

2025 年的研究解決了之前承諾-揭示實施中的漏洞:

企業採用

企業部門顯示出對商業應用承諾-揭示方案的興趣增加:

  • 供應鏈管理系統使用承諾-揭示進行密封投標流程
  • 金融機構實施該方案用於私人結算系統
  • 醫療保健組織利用承諾-揭示共享敏感數據,同時保持患者隱私

與人工智能系統的集成

也許最令人興奮的發展是承諾-揭示方案與人工智能的集成:

  • 人工智能預測市場,模型在事件發生前承諾預測
  • 通過承諾-揭示保護訓練數據的去中心化機器學習系統
  • 通過人工智能節點之間的協作承諾-揭示過程提供可驗證隨機性的預言機

這些進步表明,承諾-揭示方案繼續作爲區塊鏈應用的基礎機制,滿足公平、透明和安全的需求。隨着技術的成熟,其實施變得更加高效和適應性強,爲各行業的去中心化系統開闢了新的可能性。該協議的持續發展突顯了區塊鏈社區致力於爲分布式環境中的隱私和安全挑戰創建強大解決方案的承諾。

區塊鏈技術帶來了可實現共識、安全和隱私的創新方法。其中一項創新方法就是commit-reveal方案——一種增強區塊鏈用戶隱私和安全性的加密協議。當您閱讀本課程時,您將了解 Commit-Reveal 方案爲去中心化數字領域帶來的信任、透明度和創新層。本文中的每個模塊都經過精心設計,旨在讓您全面了解 Commit-Reveal 方案、其實施及其對區塊鏈格局的影響。

何爲區塊鏈?

本質而言,區塊鏈就像一個有變化的數字分類帳。與傳統分類帳不同,它是去中心化的,這意味着沒有任何一個實體能控制整個區塊鏈,並且任何人都可以訪問它,他們是網路的組成部分。區塊鏈中的每個“塊”都帶有一個交易列表。一個區塊充滿交易後,就會形成另一個新區塊,從而創建一個連接的區塊“鏈”——因此得名“區塊鏈”。

區塊鏈的亮點之一是,它強調信任和透明度。網路中的任何人都能訪問並查看區塊鏈上的每筆交易。這種開放性可阻止不誠實行爲並增強社區之間的信任。您可能想知道,它是如何實現這種程度的透明度的?答案在於其獨特的共識機制和密碼學原理,我們將在本課程的內容中對其進行深入研究。

Commit-Reveal方案見解

在您已了解了何爲區塊鏈之後,接下來讓我們介紹它的特殊方法:Commit-Reveal 方案。這就像一場魔術表演,魔術師(用戶)首先表示會進行某種表演,而不向觀衆(網路)透露,然後在稍後階段揭曉該表演。用區塊鏈術語來說,這是一個兩步過程:“提交(commit)階段”和“揭示(reveal)階段”。

在提交階段,用戶將哈希後的信息提交到區塊鏈。這個哈希版本就像原始信息的亂序版本,隱藏了實際內容。哈希函數的神奇之處在於,它是單向的;您無法將哈希值解密回其原始形式,從而暫時保密信息。然後是揭示階段,用戶揭示原始信息,然後由網路再次對其進行哈希驗證,並將其與初始提交的哈希進行比較(如果匹配),那麼網路證實了這一點,魔術完成了。

通過 Commit-Reveal 方案,區塊鏈網路可在拍賣、投票系統等應用程序中實現新的參與水平,我們將在接下來的模塊中詳細探討這些應用程序。

提交(Commit)階段

當我們深入探討 Commit-Reveal 方案時,我們的首先要了解的是“Commit”階段。在此階段,用戶“提交”某個值,但他們的方式是對實際值保密。想象一下,您心中有一個祕密號碼,但您沒有告訴每個人它是什麼,而是將其放在一個上鎖的盒子裏並向每個人展示。他們知道您有一個號碼,但他們不知道它是什麼。這就是區塊鏈中“提交”的意義所在!

現在,我們如何鎖定我們的祕密值呢?在區塊鏈領域中,我們使用稱爲哈希函數的東西來實現這一點。哈希函數就像一個神奇的攪拌機。您輸入您的祕密值,它就會輸出它的亂序版本,稱爲哈希值。這個哈希值是唯一的;即使原始值發生微小變化也會產生截然不同的哈希值。它的美妙之處在於,它是一個單向過程——一旦值被哈希,就沒有簡單的方法可以從哈希中找出原始值。因此,當用戶提交他們的價值時,他們實際上是在與區塊鏈上的每個人分享他們價值的哈希值。

揭示(Reveal)階段

提交階段的懸念過後,就到了大揭曉的時候了!揭示(commit)階段是最終向區塊鏈上的所有參與者揭示所提出的價值的階段。回到我們上鎖的盒子的比喻上,那麼此時就是打開盒子的時刻,每個人都能看到您隱藏的號碼。在區塊鏈世界中,揭示是一個簡單但至關重要的過程,它爲各種應用程序提供了透明度和公平性。

當用戶透露其提交的值時,網路可對揭示的值進行哈希並將其與提交階段共享的原始哈希進行比較,以此來輕鬆驗證其真實性。如果哈希值匹配,則確認用戶沒有中途改變想法。這個簡單而強大的驗證過程有助於維護一個每個人都遵守規則的信任環境。這就像比賽中有裁判一樣,確保所有玩家都遵守商定的規則。

在智能合約中實現 Commit-Reveal

現在我們已揭開了 Commit-Reveal 方案的魔力,再讓我們看看它是如何通過智能合約在區塊鏈世界中發揮作用。智能合約就像傳統合約一樣,但它是數字化且自動執行的。想想一個公正的機器人,它自動確保所有各方遵守他們的協議,您就會明白智能合約的想法。該工具採用了 Commit-Reveal 的理論思想,並將其應用於數字領域。通過智能合約實施 Commit-Reveal 方案就如編排舞蹈一樣,每一步都遵循設定的節奏。下面讓我們逐步了解如何完成這一編排過程。

創建合約

首先在以太坊等區塊鏈平台上創建智能合約。該合約將包含編碼在其中的 Commit-Reveal 方案的參與規則。

提交函數

在智能合約中設計提交函數。該函數將允許用戶向合約提交其哈希值(提交階段)。

存儲提交的值

當用戶提交他們的值時,智能合約會將這些哈希值安全地存儲在區塊鏈上,等待揭示階段。

揭示函數

接下來,在智能合約中創建一個揭示函數。屆時,此函數就會讓用戶揭示自己原來提交的值。

驗證和確認

揭示後,智能合約將對揭示的值進行哈希並將其與最初提交的哈希進行比較,以此來驗證揭示的值。如果一切匹配,則揭示內容得到確認。

最終確定

一旦收集並驗證了所有信息,智能合約就可以自動執行後續步驟,無論是統計選票、確定拍賣獲勝者,還是任何其他特定於應用程序的操作。

審核和測試

在部署之前,請全面測試智能合約,以確保其按預期運行並免受潛在攻擊。通過這些步驟,智能合約精心安排了 Commit-Reveal 過程,確保了公平透明的過程。

代碼示例

  // SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

 contract CommitReveal {

struct Commit {

    bytes32 hash;

    bool revealed;

}



mapping(address => Commit) public commits;

mapping(address => uint256) public revealedValues;



// The commit function allows users to submit their hashed values

function commit(bytes32 _hash) public {

    require(commits[msg.sender].hash == 0, "Already committed");

    commits[msg.sender].hash = _hash;

}



// The reveal function allows users to reveal their original values

function reveal(uint256 _value, string memory _salt) public {

    require(commits[msg.sender].revealed == false, "Already revealed");

    require(keccak256(abi.encodePacked(_value, _salt)) == commits[msg.sender].hash, "Hashes don't match");

    commits[msg.sender].revealed = true;

    revealedValues[msg.sender] = _value;

}



// An example finalization function that could tally votes

function tallyVotes() public view returns (uint256) {

    uint256 totalVotes = 0;

    for (address addr = address(0); addr < address(-1); addr++) {

        if (commits[addr].revealed) {

            totalVotes += revealedValues[addr];

        }

    }

    return totalVotes;

}



// A function to audit the contract state (just an example, not practical for large datasets)

function audit() public view returns (mapping(address => uint256) memory) {

    return revealedValues;

}

}

代碼解釋:

  • 創建合約:CommitReveal 合約已創建。
  • 提交函數:提交函數接受哈希值 (_hash) 並將其存儲在發送者的地址中。
  • 存儲提交的值:哈希值存儲在稱爲提交的映射中。
  • 揭示函數:揭示函數允許用戶提交其原始值 (_value) 和鹽 (_salt)。它檢查這些哈希值是否與最初提交的哈希值相匹配。
  • 驗證和確認:這是通過比較哈希值在揭示函數中完成的。
  • 最終確定:tallyVotes 函數簡化演示了如何統計選票過程。它迭代所有可能的地址(對於大型數據集來說不切實際)並對顯示的值求和。
  • 審計和測試:審計函數是一個非常簡單地演示說明如何檢查合約狀態。

該示例非常簡單,缺乏生產系統所需的許多實際考慮因素(例如防止溢出、優化 Gas 使用、管理大型數據集以及添加適當的訪問控制等)。特別是,由於對所有可能的地址進行迭代,最終確定函數是不切合實際的,並且在現實場景中需要不同的設計。該代碼旨在用於啓蒙和教育工具,而不是可用於實際生產的解決方案。

區塊鏈中 Commit-Reveal 方案的用例

提升拍賣平台

在線拍賣是 Commit-Reveal 方案的典型應用之一。爲了防止其他人利用投標金額作爲槓杆,參與者可以在提交階段祕密地提交投標。當投標期結束時,揭示階段開始,允許參與者披露其投標。然後,確定最高有效出價,確保拍賣過程公平且有競爭力。

創建公平投票系統

投票系統可從 Commit-Reveal 方案獲得多重優勢,特別是在要求選民匿名和誠實的情況下更是如此。在這種設置中,在選舉或任何投票活動期間,選民在提交(commit)階段提交其選擇,而不向其他人透露,從而確保投票的誠實性和保密性。投票期結束後,揭示(reveal)階段就會開始,此時選民可公開其選票。然後,系統對這些結果進行統計以確定結果,這實現了公平和透明的投票過程。

密封投標合同

在密封投標合同中,投標人使用Commit-Reveal方案祕密提交其投標。這一過程確保任何投標人都不知道其他投標人的投標金額,從而實現公平競爭。投標提交(commit)期結束後,進入揭示(reveal)階段,合同將授予具有最佳報價的合格投標人。

遊戲場景

Commit-Reveal 方案在遊戲場景中找到了一個有價值的應用,例如數字版的石頭剪刀布遊戲。玩家在不透露自己想法的情況下做出選擇,確保遊戲公平。兩名玩家都提交想法後,接下來進入揭示階段,根據所做的選擇確定獲勝者。

減輕搶先交易問題

在區塊鏈環境中,令人擔憂的問題之一是搶先交易,惡意行爲者可能會從待處理交易的信息中受益。Commit-Reveal 方案通過最初隱藏交易細節來幫助減輕此類問題。當揭示階段到來時,惡意行爲者對信息採取行動就爲時已晚,從而保持交易的誠實性。

低延遲Commit-and-Reveal架構

F3B 等較新的架構已發展到可以減少與傳統 Commit-Reveal 方案相關開銷的地步。 F3B 最大限度地減少寫入區塊鏈的數據,提供低延遲的Commit-and-Reveal架構。這一發展值得我們關注,因爲它標志着 Commit-Reveal 方案在不斷優化和創新,將能更加高效運用到實際應用中。

隨機數生成

在區塊鏈環境中,由於區塊鏈協議具有確定性,要生成隨機數將不容易。Commit-Reveal 方案是在以太坊區塊鏈上生成隨機數的去中心化替代方案。例如,Randao 是一種 Commit-Reveal RNG 實現,它利用公共數據源並激勵參與隨機數生成。

結語

本文對 Commit-Reveal 這一有趣方案的探討即將結束。重要的是,要考慮這種簡單但強大的機制如何幫助在區塊鏈應用程序中建立信任和開放性。我們通過 Commit-Reveal 方案一窺究竟,了解了區塊鏈技術如何通過讓拍賣變得公平、使投票系統誠實可信,以及讓遊戲場景更具創意等方式改變許多領域。這一旅程並沒有就此結束;區塊鏈技術不斷發展的本質提出了新的探索視野。憑藉通過本課程獲得的知識,您將能夠更深入地研究區塊鏈,探索其無限的可能性,並爲塑造透明、公平和去中心化的數字未來做出貢獻。

作者: Piero
譯者: Cedar
審校: Matheus、Edward、Ashley He
* 投資有風險,入市須謹慎。本文不作為 Gate 提供的投資理財建議或其他任何類型的建議。
* 在未提及 Gate 的情況下,複製、傳播或抄襲本文將違反《版權法》,Gate 有權追究其法律責任。

什麼是區塊鏈中的承諾-揭示方案?(2025)

新手11/22/2023, 6:46:03 PM
探索 2025 年區塊鏈中承諾-揭示方案的演進,特點包括降低計算開銷、跨鏈應用、增強安全協議、不斷增長的企業採用以及創新的人工智能集成,這些都進一步加強了去中心化交易中的隱私和安全。

2025 年承諾-揭示方案的更新

承諾-揭示方案在 2025 年持續發展,出現了幾項重大進步,提高了其在區塊鏈應用中的實用性和效率。以下發展代表了這項技術的最前沿:

先進的實施方法

最近的創新集中在降低傳統承諾-揭示方案的計算開銷上。優化算法現在可以實現更快的驗證,同時保持安全完整性。這些改進導致了各種區塊鏈平台的採用增加,不僅僅是以太坊(Ethereum)平台,還包括從以下方面受益的二層解決方案:

  • 降低承諾-揭示操作的 gas 成本
  • 縮短承諾和揭示階段之間的確認時間
  • 通過改進的加密技術增強隱私保護

跨鏈應用

承諾-揭示範式已擴展到促進安全的跨鏈操作,允許在一個區塊鏈上的承諾在另一個區塊鏈上被揭示和驗證。這種互操作性突破實現了:

  • 在不同區塊鏈網路之間安全資產轉移
  • 具有增強隱私的跨鏈投票機制
  • 具有更廣泛市場準入的多鏈拍賣系統

安全增強

2025 年的研究解決了之前承諾-揭示實施中的漏洞:

企業採用

企業部門顯示出對商業應用承諾-揭示方案的興趣增加:

  • 供應鏈管理系統使用承諾-揭示進行密封投標流程
  • 金融機構實施該方案用於私人結算系統
  • 醫療保健組織利用承諾-揭示共享敏感數據,同時保持患者隱私

與人工智能系統的集成

也許最令人興奮的發展是承諾-揭示方案與人工智能的集成:

  • 人工智能預測市場,模型在事件發生前承諾預測
  • 通過承諾-揭示保護訓練數據的去中心化機器學習系統
  • 通過人工智能節點之間的協作承諾-揭示過程提供可驗證隨機性的預言機

這些進步表明,承諾-揭示方案繼續作爲區塊鏈應用的基礎機制,滿足公平、透明和安全的需求。隨着技術的成熟,其實施變得更加高效和適應性強,爲各行業的去中心化系統開闢了新的可能性。該協議的持續發展突顯了區塊鏈社區致力於爲分布式環境中的隱私和安全挑戰創建強大解決方案的承諾。

區塊鏈技術帶來了可實現共識、安全和隱私的創新方法。其中一項創新方法就是commit-reveal方案——一種增強區塊鏈用戶隱私和安全性的加密協議。當您閱讀本課程時,您將了解 Commit-Reveal 方案爲去中心化數字領域帶來的信任、透明度和創新層。本文中的每個模塊都經過精心設計,旨在讓您全面了解 Commit-Reveal 方案、其實施及其對區塊鏈格局的影響。

何爲區塊鏈?

本質而言,區塊鏈就像一個有變化的數字分類帳。與傳統分類帳不同,它是去中心化的,這意味着沒有任何一個實體能控制整個區塊鏈,並且任何人都可以訪問它,他們是網路的組成部分。區塊鏈中的每個“塊”都帶有一個交易列表。一個區塊充滿交易後,就會形成另一個新區塊,從而創建一個連接的區塊“鏈”——因此得名“區塊鏈”。

區塊鏈的亮點之一是,它強調信任和透明度。網路中的任何人都能訪問並查看區塊鏈上的每筆交易。這種開放性可阻止不誠實行爲並增強社區之間的信任。您可能想知道,它是如何實現這種程度的透明度的?答案在於其獨特的共識機制和密碼學原理,我們將在本課程的內容中對其進行深入研究。

Commit-Reveal方案見解

在您已了解了何爲區塊鏈之後,接下來讓我們介紹它的特殊方法:Commit-Reveal 方案。這就像一場魔術表演,魔術師(用戶)首先表示會進行某種表演,而不向觀衆(網路)透露,然後在稍後階段揭曉該表演。用區塊鏈術語來說,這是一個兩步過程:“提交(commit)階段”和“揭示(reveal)階段”。

在提交階段,用戶將哈希後的信息提交到區塊鏈。這個哈希版本就像原始信息的亂序版本,隱藏了實際內容。哈希函數的神奇之處在於,它是單向的;您無法將哈希值解密回其原始形式,從而暫時保密信息。然後是揭示階段,用戶揭示原始信息,然後由網路再次對其進行哈希驗證,並將其與初始提交的哈希進行比較(如果匹配),那麼網路證實了這一點,魔術完成了。

通過 Commit-Reveal 方案,區塊鏈網路可在拍賣、投票系統等應用程序中實現新的參與水平,我們將在接下來的模塊中詳細探討這些應用程序。

提交(Commit)階段

當我們深入探討 Commit-Reveal 方案時,我們的首先要了解的是“Commit”階段。在此階段,用戶“提交”某個值,但他們的方式是對實際值保密。想象一下,您心中有一個祕密號碼,但您沒有告訴每個人它是什麼,而是將其放在一個上鎖的盒子裏並向每個人展示。他們知道您有一個號碼,但他們不知道它是什麼。這就是區塊鏈中“提交”的意義所在!

現在,我們如何鎖定我們的祕密值呢?在區塊鏈領域中,我們使用稱爲哈希函數的東西來實現這一點。哈希函數就像一個神奇的攪拌機。您輸入您的祕密值,它就會輸出它的亂序版本,稱爲哈希值。這個哈希值是唯一的;即使原始值發生微小變化也會產生截然不同的哈希值。它的美妙之處在於,它是一個單向過程——一旦值被哈希,就沒有簡單的方法可以從哈希中找出原始值。因此,當用戶提交他們的價值時,他們實際上是在與區塊鏈上的每個人分享他們價值的哈希值。

揭示(Reveal)階段

提交階段的懸念過後,就到了大揭曉的時候了!揭示(commit)階段是最終向區塊鏈上的所有參與者揭示所提出的價值的階段。回到我們上鎖的盒子的比喻上,那麼此時就是打開盒子的時刻,每個人都能看到您隱藏的號碼。在區塊鏈世界中,揭示是一個簡單但至關重要的過程,它爲各種應用程序提供了透明度和公平性。

當用戶透露其提交的值時,網路可對揭示的值進行哈希並將其與提交階段共享的原始哈希進行比較,以此來輕鬆驗證其真實性。如果哈希值匹配,則確認用戶沒有中途改變想法。這個簡單而強大的驗證過程有助於維護一個每個人都遵守規則的信任環境。這就像比賽中有裁判一樣,確保所有玩家都遵守商定的規則。

在智能合約中實現 Commit-Reveal

現在我們已揭開了 Commit-Reveal 方案的魔力,再讓我們看看它是如何通過智能合約在區塊鏈世界中發揮作用。智能合約就像傳統合約一樣,但它是數字化且自動執行的。想想一個公正的機器人,它自動確保所有各方遵守他們的協議,您就會明白智能合約的想法。該工具採用了 Commit-Reveal 的理論思想,並將其應用於數字領域。通過智能合約實施 Commit-Reveal 方案就如編排舞蹈一樣,每一步都遵循設定的節奏。下面讓我們逐步了解如何完成這一編排過程。

創建合約

首先在以太坊等區塊鏈平台上創建智能合約。該合約將包含編碼在其中的 Commit-Reveal 方案的參與規則。

提交函數

在智能合約中設計提交函數。該函數將允許用戶向合約提交其哈希值(提交階段)。

存儲提交的值

當用戶提交他們的值時,智能合約會將這些哈希值安全地存儲在區塊鏈上,等待揭示階段。

揭示函數

接下來,在智能合約中創建一個揭示函數。屆時,此函數就會讓用戶揭示自己原來提交的值。

驗證和確認

揭示後,智能合約將對揭示的值進行哈希並將其與最初提交的哈希進行比較,以此來驗證揭示的值。如果一切匹配,則揭示內容得到確認。

最終確定

一旦收集並驗證了所有信息,智能合約就可以自動執行後續步驟,無論是統計選票、確定拍賣獲勝者,還是任何其他特定於應用程序的操作。

審核和測試

在部署之前,請全面測試智能合約,以確保其按預期運行並免受潛在攻擊。通過這些步驟,智能合約精心安排了 Commit-Reveal 過程,確保了公平透明的過程。

代碼示例

  // SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

 contract CommitReveal {

struct Commit {

    bytes32 hash;

    bool revealed;

}



mapping(address => Commit) public commits;

mapping(address => uint256) public revealedValues;



// The commit function allows users to submit their hashed values

function commit(bytes32 _hash) public {

    require(commits[msg.sender].hash == 0, "Already committed");

    commits[msg.sender].hash = _hash;

}



// The reveal function allows users to reveal their original values

function reveal(uint256 _value, string memory _salt) public {

    require(commits[msg.sender].revealed == false, "Already revealed");

    require(keccak256(abi.encodePacked(_value, _salt)) == commits[msg.sender].hash, "Hashes don't match");

    commits[msg.sender].revealed = true;

    revealedValues[msg.sender] = _value;

}



// An example finalization function that could tally votes

function tallyVotes() public view returns (uint256) {

    uint256 totalVotes = 0;

    for (address addr = address(0); addr < address(-1); addr++) {

        if (commits[addr].revealed) {

            totalVotes += revealedValues[addr];

        }

    }

    return totalVotes;

}



// A function to audit the contract state (just an example, not practical for large datasets)

function audit() public view returns (mapping(address => uint256) memory) {

    return revealedValues;

}

}

代碼解釋:

  • 創建合約:CommitReveal 合約已創建。
  • 提交函數:提交函數接受哈希值 (_hash) 並將其存儲在發送者的地址中。
  • 存儲提交的值:哈希值存儲在稱爲提交的映射中。
  • 揭示函數:揭示函數允許用戶提交其原始值 (_value) 和鹽 (_salt)。它檢查這些哈希值是否與最初提交的哈希值相匹配。
  • 驗證和確認:這是通過比較哈希值在揭示函數中完成的。
  • 最終確定:tallyVotes 函數簡化演示了如何統計選票過程。它迭代所有可能的地址(對於大型數據集來說不切實際)並對顯示的值求和。
  • 審計和測試:審計函數是一個非常簡單地演示說明如何檢查合約狀態。

該示例非常簡單,缺乏生產系統所需的許多實際考慮因素(例如防止溢出、優化 Gas 使用、管理大型數據集以及添加適當的訪問控制等)。特別是,由於對所有可能的地址進行迭代,最終確定函數是不切合實際的,並且在現實場景中需要不同的設計。該代碼旨在用於啓蒙和教育工具,而不是可用於實際生產的解決方案。

區塊鏈中 Commit-Reveal 方案的用例

提升拍賣平台

在線拍賣是 Commit-Reveal 方案的典型應用之一。爲了防止其他人利用投標金額作爲槓杆,參與者可以在提交階段祕密地提交投標。當投標期結束時,揭示階段開始,允許參與者披露其投標。然後,確定最高有效出價,確保拍賣過程公平且有競爭力。

創建公平投票系統

投票系統可從 Commit-Reveal 方案獲得多重優勢,特別是在要求選民匿名和誠實的情況下更是如此。在這種設置中,在選舉或任何投票活動期間,選民在提交(commit)階段提交其選擇,而不向其他人透露,從而確保投票的誠實性和保密性。投票期結束後,揭示(reveal)階段就會開始,此時選民可公開其選票。然後,系統對這些結果進行統計以確定結果,這實現了公平和透明的投票過程。

密封投標合同

在密封投標合同中,投標人使用Commit-Reveal方案祕密提交其投標。這一過程確保任何投標人都不知道其他投標人的投標金額,從而實現公平競爭。投標提交(commit)期結束後,進入揭示(reveal)階段,合同將授予具有最佳報價的合格投標人。

遊戲場景

Commit-Reveal 方案在遊戲場景中找到了一個有價值的應用,例如數字版的石頭剪刀布遊戲。玩家在不透露自己想法的情況下做出選擇,確保遊戲公平。兩名玩家都提交想法後,接下來進入揭示階段,根據所做的選擇確定獲勝者。

減輕搶先交易問題

在區塊鏈環境中,令人擔憂的問題之一是搶先交易,惡意行爲者可能會從待處理交易的信息中受益。Commit-Reveal 方案通過最初隱藏交易細節來幫助減輕此類問題。當揭示階段到來時,惡意行爲者對信息採取行動就爲時已晚,從而保持交易的誠實性。

低延遲Commit-and-Reveal架構

F3B 等較新的架構已發展到可以減少與傳統 Commit-Reveal 方案相關開銷的地步。 F3B 最大限度地減少寫入區塊鏈的數據,提供低延遲的Commit-and-Reveal架構。這一發展值得我們關注,因爲它標志着 Commit-Reveal 方案在不斷優化和創新,將能更加高效運用到實際應用中。

隨機數生成

在區塊鏈環境中,由於區塊鏈協議具有確定性,要生成隨機數將不容易。Commit-Reveal 方案是在以太坊區塊鏈上生成隨機數的去中心化替代方案。例如,Randao 是一種 Commit-Reveal RNG 實現,它利用公共數據源並激勵參與隨機數生成。

結語

本文對 Commit-Reveal 這一有趣方案的探討即將結束。重要的是,要考慮這種簡單但強大的機制如何幫助在區塊鏈應用程序中建立信任和開放性。我們通過 Commit-Reveal 方案一窺究竟,了解了區塊鏈技術如何通過讓拍賣變得公平、使投票系統誠實可信,以及讓遊戲場景更具創意等方式改變許多領域。這一旅程並沒有就此結束;區塊鏈技術不斷發展的本質提出了新的探索視野。憑藉通過本課程獲得的知識,您將能夠更深入地研究區塊鏈,探索其無限的可能性,並爲塑造透明、公平和去中心化的數字未來做出貢獻。

作者: Piero
譯者: Cedar
審校: Matheus、Edward、Ashley He
* 投資有風險,入市須謹慎。本文不作為 Gate 提供的投資理財建議或其他任何類型的建議。
* 在未提及 Gate 的情況下,複製、傳播或抄襲本文將違反《版權法》,Gate 有權追究其法律責任。
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!