Privacy

智能合約的隱私?如何在乙太坊上實現“私人”智能合約?

  • October 4, 2016

根據我目前的閱讀,我將智能合約理解為在整個區塊鏈上可見和可執行的程式碼。智能合約程式碼可以由作者發布,每個人都可以根據合約地址中的操作碼驗證程式碼。

但是,如果有人想對他們的智能合約擁有隱私怎麼辦?如果他們想隱藏他們的詳細實現(以避免黑客攻擊等),同時他們希望每個人都同時訪問和使用他們的合約。

那麼如何實現私有智能合約呢?

黑客無法操縱您的程式碼。他們只能像所有其他人一樣執行它。智能合約是抗黑客的。如果您在系統中留下一個漏洞,那麼任何人都可以通過該漏洞輸入並執行他們看到的程式碼。The_Dao 不完全是一個 hack,它是一個漏洞,程式碼是以錯誤的方式編寫的。

任何人都可以在區塊鏈上看到你編譯的程式碼,但是為了理解它是如何工作的,他們通常需要一個人類可讀的程式碼。如果您不發布“人類版本”,他們將只會看到編譯後的程式碼。目前,沒有工具可以讓您從編譯的程式碼開始獲取人工程式碼。

如果您的程式碼非常簡單(?!?),那麼也許可以從編譯版本中理解某些內容。如果您向我展示編譯後的版本,我將永遠無法辨識我編寫的程式碼。

檢查這個

https://etherscan.io/address/0x2f593f1809876bf76d0992e0527a19d56b44754c

有一個TAB:合約程式碼

點擊並查看連結 VERIFY AND PUBLISH,如果您知道原始的“人類”程式碼,您可以發布它,系統將對其進行編譯並與線上現有的編譯程式碼進行比較,如果匹配則接受並顯示,人們可以審核已編譯的閱讀人類版本。

這就是它的工作原理。如果我使用 dapp,我可以在 js 中輕鬆找到合約地址。你不能隱藏契約。你可以用很多垃圾程式碼來填充契約,所以編譯的版本會更複雜,如果你想感覺更舒服的話。但到目前為止,我從未遇到過任何人對閱讀編譯後的程式碼感到非常自在。

您可以進行測試,編寫程式碼並提供賞金以查看是否有人可以閱讀它。

有多個項目和技術可以使交易盡可能“私密”。僅舉幾例:Hawk Project、zk-SNARKS、Coinjoin 和 Ring Signatures。它們的方法和解決的問題不同。

Vitalkik Buterin 有一篇關於區塊鍊和智能合約隱私的優秀博文,其中有更詳細的解釋: https ://blog.ethereum.org/2016/01/15/privacy-on-the-blockchain/

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