Contract-Development
乙太坊區塊鏈上的現有應用程序如何確保數據的機密性?
乙太坊區塊鏈上的目前應用程序如何加強數據的機密性?
我知道合約的狀態對網路上的任何節點都是可見的。這是否意味著無法在區塊鏈上儲存和執行機密數據?
應用程序可以儲存和傳遞機密數據以在接收者的公鑰下對其進行加密的唯一方法是什麼?
您是正確的,每個地址和合約的狀態都可用於網路上的所有節點。你的推斷是正確的,這意味著無法在區塊鏈上儲存或執行機密數據。
因為區塊鏈在所有乙太坊節點之間自由共享,所以在區塊鏈上保持資訊私密的唯一方法必然是對其進行加密(或不將其放在區塊鏈上)。
儘管如此,區塊鏈實際上並不是為了數據而傳輸數據的最有效方式——因為區塊鏈的歷史記錄儲存在每個乙太坊節點上,空間非常寶貴。截至 2016 年,在乙太坊區塊鏈中儲存數據的成本約為 76,000 美元/GB。
為了傳遞少量資訊,DApp 可以使用即將推出的 Ethereum Whisper 協議,或者託管大量資訊,它們可以使用Ethereum Swarm 網路,如果需要保密,可能會使用接收者的密鑰對數據進行加密。
但是永遠不要低估讓使用者以老式方式進行點對點通信的效用,如果他們需要在不信任的情況下就某事的狀態達成一致,可能包括一個狀態通道。