許可區塊鏈中的去中心化訪問控制
對於我正在為基於區塊鏈系統的碩士論文進行概念化的業務案例,我需要了解對去中心化/去信任化的影響。
許多人認為私有實例完全是胡說八道,您不妨使用集中式數據庫,因為您需要某種訪問控制來讓各方加入網路,因此中央實體控制一切。就我而言,出於保密原因,由三個公司組成的財團將建立一個私有區塊鏈。
問題:如何以去中心化或至少民主的方式實現對許可/私有/聯盟區塊鏈的訪問?
如果節點及其各自的網路地址是按契約定義的,假設每個利益相關者設置 3 個節點,我認為不需要中央看門人。一位結識的 ethcore 開發人員告訴我,任何人都可以加入網路並對其進行妥協,但我不知道如何以及為什麼。或者,我可以想像 Sybil 控制的 Sybil 控制,每個成員都獲得平等的份額。
最初的問題似乎將底層平台和建構在其上的應用程序混為一談,在某些情況下,可以將其視為覆蓋網路,並且通常有自己的訪問控制問題。
如您所知,公共網路通常被組織起來,以便任何遵循協議的人都可以附加節點。通過擴展,這意味著節點運營商是偽匿名的,問責制會很弱,而審查阻力會很高。在許多情況下,問責制是可取的事情,公眾(非成員)可能沒有充分的理由訪問網路,例如貿易夥伴聯盟的 B2B 網路。
偉大的。因此,給定上下文和一組要求,適當的網路拓撲應該是不言而喻的。
應用程序級別的問題仍然存在,並且僅通過網路拓撲無法精確解決。考慮到一切對一切的 TCP/IP 網路由確實驗證使用者並根據權限對其進行分類的應用程序填充。換一種說法,網際網路的開放架構並不意味著每個人都可以做任何事情。而且,從公共網路無法訪問私有網路是有正當理由的。相同的應用程序通常可以在任何一種環境中執行——基於 Web 的內部應用程序和麵向公眾的外部網站。
乙太坊公共網路上的智能合約系統將敏感功能的訪問權限限制為所有者/部署者、管理員或更細粒度的人是很常見的。OpenZeppelin 的 Ownable、Whitelisted 和基於角色的訪問控制等標準庫在 Solidity 中實現了這些模式。
這種模式可以有意或無意地重新引入集中化程度,因為只有特定的權威使用者才能做某些事情。這可能會導致在應用程序級別進行治理考慮。誰應該決定?那是單個使用者還是委員會?委員會如何決定?
因此,存在平台級別的問題,它們暗示了正在發生的事情。乙太坊意味著每個人都可以看到,而 Quorum 的私人交易意味著某些方可以看到,Hyperledger Fabric 的通道意味著消息進入節點組,Corda 網路在需要知道的基礎上工作。在使用專用網路時,人們可能會花費大量時間來製定一種不會對預期參與者有利或不利的拓撲。由於提供的靈活性,人們會花更多的時間在這上面。
與任何平台一樣,平台的選擇意味著一個建構的任何東西的某些低級屬性和一個建構的應用程序的關注點,因此選擇正確的平台是明智的,但是,應用程序級的關注點仍然存在。訪問控制仍將是逐個功能和逐個消息的問題。
你可以在乙太坊公共網路上的合約中創建集中控制點。設計系統時的關鍵問題之一是信任的歸屬,尤其是在需要分散設計的情況下。事實上,在審計合約時,要尋找的關鍵問題之一是可能給某些使用者帶來不明顯優勢的合約邏輯元素。例如,如果所有者可以暫停契約,則不可變性已受到損害,應告知使用者這種可能性。
希望能幫助到你。
即使在公共區塊鏈上,您也可以創建智能合約代幣,要求使用者擁有一組預定的錢包地址中的一個。
或者,您可以以與 SSO 類似的方式使用 Blockstack 之類的系統。您限制使用者登錄到一組特定的域@whitelist.com、@partners.com 等