區塊鏈只應該出現在有剛需的地方。

原文:Where to use a blockchain in non-financial applications?

作者: Vitalik Buterin

編譯: Katie 辜,Odaily 星球日報譯者

原用標題(譯後) V 神:金融之外,區塊鏈還適合什麼場景?

封面: Photo by Pan Yunbo on Unsplash

最近,越來越多的人對使用區塊鏈構建非金融應用產生興趣。我一直強烈支持這個方向的發展。上個月,我和其他兩位作者共同發表了靈魂綁定代幣生態系統的文章,引發了一些討論,特別是在 “去中心化身份生態系統中使用區塊鏈” 的意義。

這引出了一個的問題——在金融之外的什麼場景使用區塊鍊是有意義的?我們是否應該期待去中心化的聊天應用程序,每條消息都是包含加密消息的鏈上交易?或者,區塊鏈只對金融有利,而所有其他應用更適用於中心化或本地系統?

我不是區塊鏈最大化或最小化論點支持者。區塊鏈有時為了解決痛點,如信任和抵制審查,有時純粹是為了方便。本文將試圖描述一些區塊鏈潛在的應用場景(特別是在身份綁定的背景下),和區塊鏈並不適用的例子。

用戶帳戶密鑰更改和恢復

加密帳戶系統中最大的挑戰之一是密鑰更改問題。在四種情況下會發生:

  1. 擔心當前的密鑰可能會丟失或被盜,想要換不同的密鑰;
  2. 想要切換到不同的加密算法(如擔心量子計算機很快就會出現);
  3. 密鑰丟了,想重新打開賬戶;
  4. 密鑰被盜了,希望重新獲得對帳戶的專有訪問權(不希望黑客也能夠這樣做)。

前兩點相對簡單,因為它們可以以完全自主的方式完成:你控制密鑰 X,想切換到密鑰 Y,發布一條用 X 簽名的消息——“從現在開始用 Y 驗證我”,每個人都同意。

但是請注意,即使對於這些更簡單的密鑰更改場景,也不能只使用密碼學。考慮以下順序:

  • 擔心密鑰 A 被盜,所以你用 A 簽了一條消息——“我現在用的是 B”;
  • 一年之後,一個黑客真的竊取了密鑰 A。他們在一條消息上簽名——“我現在使用 C”,其中 C 是他們自己的密鑰。

從後來者的角度來看,他們剛剛收到這兩條消息,看到 A 不再使用了,但他們不知道 “用 B 代替 A ” 還是 “用 C 代替 A ” 的優先級更高。

V神:金融之外,區塊鏈還適合什麼場景?

這就相當於去中心化貨幣設計中著名的 “雙花問題”,只不過這裡的目標不是防止代幣的前主人再次發送它,而是防止前一個控制帳戶的密鑰能夠更改密鑰。就像創建去中心化的貨幣一樣,以去中心化的方式進行賬戶管理需要區塊鏈。區塊鏈可以為關鍵更改消息添加時間戳,提供關於 B 還是 C 先出現的提示。

後兩點更難。我傾向的解決方案是多重簽名和社交恢復錢包,如果你的賬戶丟失或被盜,其他聯繫人可以將你的賬戶控制權轉移到一個新密鑰上。對於關鍵操作(如轉移大量資金,或者簽訂重要合約),也可以要求聯繫人的協助。

這也需要區塊鏈技術。使用密碼共享恢復社交是可行的,但在實踐中更困難:如果你不再信任你的一些聯繫人,或者如果他們想更改自己的密鑰,你沒有辦法取消訪問,而不更改自己的密鑰。所以我們又回到了需要某種形式的鏈上記錄。

在去中心化社會(DeSoc)的文件中有一個想法——為了保護不可轉移性,檔案的社會恢復(或社區恢復)實際上可能需要強制執行。即使你出售了你的帳戶,你也可以使用社區恢復來找回帳戶。這將解決如 “聲譽不佳的司機在拼車平台上購買良好賬戶” 的問題。這只是一個推測性的想法,不需要完全實施就能獲得基於區塊鏈的身份和聲譽系統的其他優勢。

請注意,到目前為止,這只是區塊鏈的一個有限的用例:在鏈上擁有賬戶,但在鏈外做其他所有事情是完全沒問題的。這種願景目前有落地場景,如 Sign-in With Ethereum。

(Odaily 星球日報注:「Sign-In with Ethereum」是一套通過以太坊賬號登錄第三方 Web 應用的技術規範,使用戶能夠通過以太坊帳戶和 ENS 配置文件控制其數字身份,而不依賴傳統的中間人。目前它已經在 Web3 中使用,目的是用最佳實踐來進行標準化,讓 Web2 服務更容易採用。)

修改和撤銷認證

Alice 在某學院完成學位,得到了一張數字學位記錄,用學院的密鑰簽名。後 Alice 因論文抄襲被撤銷了學位。但是 Alice 繼續用她的舊電子學位記錄宣稱她有一個學位。這種認證可能帶有權限,例如,具有登錄學院在線論壇的權利,而 Alice 可能用不正當方式訪問該權限。我們如何防止這種情況?

“區塊鏈最大化” 的方法是讓學位成為一個鏈上 NFT,這樣學院就可以發布一個鏈上交易來撤銷 NFT。但也許難以避免昂貴的費用。發行常見,撤銷少見,我們不想要求學院發行交易,並在不必要的情況下為每一次發行支付費用。因此,我們可以採用混合解決方案:將初始度設置為鏈下簽名消息,並在鏈上進行撤銷。這是新加坡政府級項目 OpenCerts 使用的數字證書的方法。

全鏈下解決方案,也是許多鏈下可驗證憑證的支持者所提倡的,是學院運行一個服務器,在那裡發布他們撤銷的列表(為了提高隱私,每個認證都可以附帶一個 nonce 隨機數值,撤銷列表可以只是一個 nonce 列表)。

對於大學來說,運行服務器是可行的。但是對於較小的組織或個人來說,管理 “另一個服務器腳本” 並確保它保持在線,對 IT 人員來說是任務艱鉅。如果我們告訴人們 “只用一個服務器”,很可能每個人都將任務外包給中心化的提供商。我建議最好保持系統的去中心化,只使用區塊鏈,特別是現在 Rollup、分叉和其他技術終於開始上線,區塊鏈的成本越來越低。

負面聲譽

鏈下簽名難以滿足的另一個關鍵點是負面聲譽(你正在進行認證的個人或組織可能不希望你看到他們的認證)。這裡使用 “負面聲譽” 作為一個技術術語:最明顯的激勵用例是證明某人的壞話,比如惡意評論或某人在某些情況下濫用行為的報告,但也有 “負面” 證明並不意味著不良行為的用例。例如,申請貸款,並想證明你沒有同時申請過太多其他貸款。

對於鏈下聲明,你可以提供正面聲譽,因為這符合接受方的利益,讓它看起來更有信譽(或製作一個 ZK 證明),但你不能提供負面聲譽選項,因為有些人可以只選擇展示正面聲譽的一面。

在鏈上進行認證確實能解決問題。為了保護隱私,我們可以添加加密和零知識證明:一個認證可以只是一個鏈上記錄,數據加密到接收者的公鑰,用戶可以通過運行一個鏈上記錄的整個過程的零知識證明來證明沒有負面聲譽。證據在鏈上,驗證過程具有區塊鏈意識,因此可以很容易地驗證證據,並且沒有跳過任何記錄。為了在計算上可行,用戶可以使用增量可驗證計算(如 Halo)來維護和證明對其加密的記錄,然後在需要時顯示部分記錄。

負面聲譽和撤銷認證在某種意義上是等價的問題:你可以通過添加另一個負面聲譽認證來撤銷認證,並說 “另一個認證不再算數了”。你可以通過附加正面聲譽來撤銷負面聲譽。

負面聲譽是個好辦法嗎?

展示負面聲譽是反烏托邦嗎?我們不應該盡最大努力去做有正面名聲的事情嗎?

雖然我支持避免 100% 的負面聲譽,但我不同意完全避免負面聲譽的想法。負面聲譽對於許多用例都很重要。無抵押貸款對於提高區塊鏈內外的資本效率非常有價值。我在以太坊上海峰會演講的 Unirep Social 展示了一個概念驗證社交媒體平台,該平台將高度匿名性與隱私保護負面聲譽系統相結合,目的是限制濫用。

有時候,負面聲譽激勵人們,而正面聲譽則會讓人感到排斥。一個網絡論壇,每個人都有權發帖,除非他們因行為不端而受到投訴,這比一個首先需要某種 “良好品格證明” 才能被接納,並允許發言的論壇更為平等。那些生活在 “體制外” 的邊緣化人群,即使他們品行良好,也很難得到這樣的證明。

想像一下性工作者客戶的匿名聲譽系統,保護隱私需要一個系統。如果客戶虐待性工作者,他們會上黑名單,提醒其他性工作者小心。通過這種方式,無法隱藏的負面聲譽實際上可以賦予弱勢群體力量,保護他們的安全。這裡的重點不是為了維護某些特定的負面聲譽。相反地,這是為了表明負面聲譽所帶來的真正價值,而一個成功的系統需要以某種方式去支持它。

負面聲譽不一定是 100% 的負面聲譽。我認為可以以一定的成本創建一個新的個人資料(可能犧牲很多或所有現有的正面聲譽)。問責過少與問責過重之間存在一種平衡。但首先,擁有能夠讓負面聲譽評分標准進入區塊鏈的技術,是打開這個領域的先決條件。

承諾的稀缺

區塊鏈有價值的另一個例子是發布數量有限的證明。如果我想為某人背書(例如一家公司或一個政府簽證項目正在查看此類背書),查看背書的第三方會想知道我對背書是否謹慎。

這個問題的理想解決方案是公開指出,這樣就會產生激勵效應。如果我公開支持某個人,結果證明他做了錯事,那麼所有人將來都可以對我的代言打折扣。我們也想保護隱私,所以我可以做的是在鏈上發布每個背書的哈希值,這樣所有人都可以看到我付出了多少。

更有效的用例是一次性多次發布。如果一個藝術家想要發布 N 份 “限量版” NFT,可以在鏈上發布一個包含正在發行的 NFT 的 Merkle 根的哈希。單次發行可以防止他們在事後發行更多,你可以公佈號碼(例如 100)表示數量限制和 Merkle 根,表示只有最左邊的 100 個 Merkle 分支是有效的。

V神:金融之外,區塊鏈還適合什麼場景?

通過發佈單個 Merkle 根和鏈上最大計數,你可以提交有限數量的認證。在本例中,只有 5 個可能有效的 Merkle 分支可以滿足證明檢查。讀者可能會注意到它與鏈外擴容方案 Plasma chain 在概念上的相似性。

常識(Common Knowledge)

區塊鏈的一個強大屬性是它們創造了 “常識”。如果我在鏈上發布了一些東西,那麼 Alice 可以看到它,Alice 可以看到 Bob 可以看到它,Charlie 可以看到 Alice 可以看到 Bob 可以看到它,以此類推。

常識(或者叫公開內容)對於協調很重要。例如,一群人可能想要對一個問題發表意見,但只有有足夠的人同時發表意見,他們在人數上有安全保障的情況下才會感到自在。比如,一個人圍繞一個特定的語句啟動一個 “承諾池”,並邀請其他人發布哈希值(一開始是私有的),代表他們的協議。只有在一段時間內有足夠的人參與,所有參與者才會被要求公開他們的下一條鏈上消息,以表明他們的立場。

這樣的設計可以通過零知識證明和區塊鏈的結合來完成。它可以在沒有區塊鏈的情況下完成,但這要么需要見證人加密(目前還不可用),要么需要可信的硬件,這在安全假設方面存在嚴重問題。關於這類想法還有一個很大的設計空間,目前尚未得到充分開發,但一旦圍繞區塊鍊和加密工具的生態系統進一步發展,將加速增長。

與其他區塊鏈應用程序的互操作性

有些東西應該放在鏈上,從而更好地與其他鏈上應用程序互操作。人性證明(Proof of humanity)是一種鏈上 NFT,使項目更容易自動空投或給予有人性證明檔案的帳戶治理權。預言機數據鏈上使得 DeFi 項目更容易讀取。在這些情況下,區塊鏈並沒有消除對信任的需求,儘管它可以容納管理信任的 DAO 等結構。但鏈上提供的主要價值只是與你交互的東西在同一個地方,這需要區塊鏈的參與。

當然,你可以運行鏈下預言機,並只在需要讀取數據時才要求導入數據,在許多情況下,這實際上更加昂貴,並給開發人員帶來不必要的複雜性和成本。

開源指標

另一個衡量和得分價值的是聲譽系統。這是以中心化的評級形式存在,但可以更加去中心化的方式實現,算法透明,同時保留更多用戶隱私。除了像這樣緊密耦合的用例,還有更廣泛的用例,可以幫助社區了解自己。我們不應該試圖廢除量化指標,應該嘗試制定更好的指標。

Kate Sills 對計算聲譽的目標表示懷疑:

“評估一個過程是非常主觀,並和背景相關。人們自然會對其他人的可信賴性持不同意見,而信任取決於環境……我們應該對任何’ 計算’ 聲明而獲得客觀結果的提議持極端懷疑態度。”

在這種情況下,我同意主觀性和背景的重要性,但我不同意完全避免圍繞聲譽進行計算是正確的做法。所有試圖支持大規模合作的複雜社會都必須在一定程度上依賴於聚合和簡化。

我認為一個開放參與的認證生態系統(與我們今天所擁有的中心化的生態系統相反)可以通過為更好的指標提供空間,可以糅合兩個生態世界的優點。以下是此類設計可以遵循的一些原則:

  • 主體間性(Inter-subjectivity):聲譽不應該是一個單一的整體得分;相反地,它應該是一種更主觀的計算,包括被評估的個人或實體,以及觀看者檢查分數;
  • 可信的中立性:實現這一點的方法是最大的透明度和不頻繁地改變算法;
  • 開放性:能夠做出有意義的輸入,並通過自己運行檢查來審核他人的輸出,應該對所有人開放,而不僅僅局限於少數強大的團隊。

如果我們不能創造出良好的大規模社交數據聚合,那麼就有可能將市場份額拱手讓給不透明和集中的社會信用評分。

並非所有數據都應該在鏈上,但以公開內容的方式公開一些數據有助於提高社區自身的易讀性,而不會造成被濫用和集中控制的數據訪問差異。

作為數據存儲

這是真正有爭議的用例。區塊鏈領域有一個共同的觀點——區塊鏈只應該在真正需要和不可避免的情況下使用,而在其他地方我們應該使用其他工具。

在一個交易費用非常昂貴、區塊鏈效率極其低下的世界裡,這是有道理的。但在區塊鏈進行 Rollup 和分叉,交易費用降到幾美分,區塊鍊和非區塊鏈去中心化存儲之間的細微差異可能只有 100 倍的情況下,意義不大。

將所有數據存儲在鏈上也沒有意義。但是小文本記錄為什麼就有意義呢?因為區塊鍊是一個非常方便存儲東西的地方。我在 IPFS 上保留了一份此文章的副本。但上傳到 IPFS 通常需要一個小時,它需要集中的網間連接器,而且偶爾文件會丟失。另一方面,將整個文章轉儲到鏈上可以徹底解決這個問題。當然,文章太大了,即使是分叉後,也不能在鏈上轉儲。但同樣的原則適用於內容量小的記錄。

將數據放在鏈上只是為了存儲的正確決策的例子包括:

  • 增強密碼共享:將你的密碼拆分為 N 個部分,其中 M=NR 的部分都可以恢復密碼,但你可以選擇所有 N 個部分的內容。例如,這些片段可能都是密碼哈希、通過其他工俱生成的密碼或安全問題的答案。這是通過在鏈上發布額外的 R 個片段(看起來是隨機的),並在整個集合上進行 N 分之(N+R)次密碼共享來實現。
  • ENS 優化。通過將所有記錄合併到一個哈希中,只在鏈上發布哈希,並要求訪問數據的任何人從 IPFS 中獲得完整的數據,可以使 ENS 更加高效。但這將顯著增加複雜性,並增加另一個軟件依賴性。因此,即使數據長度超過 32 字節,ENS 也會將其保留在鏈上。
  • 社交元數據:數據連接到你的帳戶(如用於 sign-in-with-Ethereum),你想要公開數據,且長度非常短。對於像頭像這樣的大數據通常不是這樣操作(如果圖片恰好是一個小的 SVG 文件也可行),但是對於文本記錄情況確實不可行。
  • 認證和訪問權限:如果存儲的數據長度小於幾百字節,那麼將數據存儲在鏈上可能比將哈希放在鏈上和數據放在鏈下更方便。

很多這樣的情況下,權衡的不僅是成本,還包括密鑰或密碼被破解的情況下的隱私。有時,隱私重要性不大,密鑰洩露或量子計算偶爾造成的隱私損失,與確定數據將保持可訪問性相比沒有那麼重要。畢竟,存儲在 “數據錢包” 中的鏈下數據也可能遭黑客攻擊。

有時數據特別敏感,這是反對將其置於鏈上,並將其作為第二層防禦措施存儲在本地的另一個理由。在這些情況下,隱私需求不僅是反對區塊鏈的理由,也是反對所有去中心化存儲的理由。

總結

在上述應用場景中,我個人最自信的兩個方面是與其他區塊鏈應用程序的互操作性和帳戶管理。第一種已經在鏈上了,第二種相對便宜(需要每個用戶使用一次區塊鏈就可以,而不是每個操作都使用一次),我們可以看到確實沒有一個好的非區塊鏈解決方案。

負面聲譽和撤銷也很重要,儘管仍然是相對早期的用例。通過只依賴鏈下的正面聲譽,聲譽系統大有發展空間,但隨著發展,撤銷和負面聲譽的應用會更加清晰。預計會有人嘗試用中心化的服務器來實現這一點,但隨著時間的推移,人們會明白區塊鍊是避免不便和中心化之間艱難選擇的唯一道路。

區塊鏈作為短文本記錄的數據存儲可能微不足道,或意義重大,我預計這種用例會繼續出現。區塊鏈對於廉價可靠的數據檢索來說非常方便,無論應用程序有兩個用戶還是 200 萬用戶,都可以繼續檢索數據。開源指標仍然是一個非常早期的想法,它需要實現在不被利用的情況下,可以應用並使之公開。而公開內容則需要說服人們接受全新的工作流程去處理具有社會重要性的事情,所以這當然也是一個早期的想法。

我目前並不確定這些場景中非金融區塊鏈的應用的意義,但很明顯,區塊鏈作為這些領域的賦能工具不應該被忽視。

免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。本文內容僅用於信息分享,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。