原文: Midnight網站
Midnight透過提供開發者所需的工具,解決了區塊鏈中長期存在的數據保護挑戰,使其能夠創建安全且符合監管要求的智能合約,而不會犧牲去中心化。
區塊鏈技術強調透明度和去中心化。它通過將分佈在對等節點網路中的資訊,使系統對負面行為具有抵抗力。
然而,這帶來了一個有趣的難題。盡管透明度是區塊鏈的設計原則之一,但當訊息根據設計可被數百甚至數千個節點知道時,如何保持數據的機密性呢?這個問題對智能合約尤其重要,因為它們通常處理敏感數據,創建的元數據也可能被相關聯以顯示其他敏感細節。
如今,開發者在保護智能合約中的數據方面有多種選擇,這些選擇通常涉及密碼學。盡管這些技術中的一些能夠滿足數據完整性的某些定義,但它們可能需要對信任假設的過度依賴,這可能會限制可實現的去中心化水平,從而產生令人不滿的折衷結果。
為應對這一挑戰,Midnight引入了智能合約,實現了在不犧牲去中心化的情況下保持用戶和組織數據的保密性。Midnight智能合約還為應用程序構建者提供了可編程的保護,以便他們能夠遵守法規。本文探討了Midnight智能合約,提供了該協議的高級概述。
Midnight智能合約提供了一種數據保護解決方案,使開發者能夠在不犧牲去中心化特性的情況下實現數據保護和通用智能合約功能。Midnight合約利用了Kachina:私人智能合約基礎文件中概述的原則。
在區塊鏈和智能合約的背景下解決保密難題需要一個既實現保密,同時又保持去中心化並避免額外信任假設的解決方案。
其他區塊鏈網路通常將智能合約實施為反覆狀態機,這意味著自然模型是狀態機本身。這進一步意味著從交易的帳本中提取輸入並將其傳遞給此狀態機。
從保密性的角度來看,這種作法存在一個重大缺點。如果狀態機的行為是已知的且輸入位於帳本上,則保密性不存在。為解決此問題,Midnight將智能合約建模為一個更全面的狀態機,包括用戶的本地系統,只有該系統的一部分被提交到分類帳本 (在此做法中為Midnight區塊鏈)。智能合約功能僅追蹤識別者對應的輸入。
Midnight提供了實現無窮數據保護智能合約的實用協議,利用簡潔的非交互式零知識證明 (ZK Snarks),使一方能夠向另一方證明某種聲明或主張是真實的,而無需揭示該聲明背後的內容或敏感數據。
該協議對數據保護系統作出了四項重要貢獻:
該協議的核心思想是將智能合約的狀態分為兩個部分:共享的、鏈上的、公共狀態 (公共區塊鏈),以及每個合約方的個別、鏈外的本地狀態。
在此上下文中,“狀態”指的是存儲在智能合約內的當前數據或資訊。狀態代表變量、存儲位置和對智能合約的執行和功能運行所必需的任何其他相關資訊的值。狀態可以包括某個操作是否已完成的事實。
在Midnight中,合約本身可以同時更新公共狀態和私有狀態。合約方使用零知識來創建證明,證明公共狀態的變化是有效的,同時保持私有狀態和用於此過渡狀態的輸入。然後,協議將證明和過渡作為交易發布。當用戶發起交易時,他們意圖向智能合約發出高級命令 (例如投票或提取資金)。在分類帳本確認交易後,用戶將獲得有關其命令的結果以及基於合約當前狀態計算的任何結果的資訊。
從用戶的角度來看,Midnight通過並發性提高了智能合約的效率。並發性指的是多個參與者在不相互阻塞的情況下同時執行任務的能力。這支持增加吞吐量和高效的交易以及智能合約處理能力。為了實現並發性,Midnight使用記錄在合約狀態上執行的操作並與諮詢交互的草本。通過優化衝突事務並允許重新排序,Midnight最小化了訊息洩漏,同時最大化了並發性。
數據保護和法規合規性是智能合約創建者和部署合約的公司最重要的設計考慮因素之一。為開發人員提供解決這些問題的解決方案為Midnight的一個關鍵因素。
從開發人員體驗的角度來看,使用Midnight創建DApps和智能合約意味著輕鬆整合零知識證明。在更廣泛的背景下,Midnight提供了一種創新的編程模型,簡化了開發過程。使用TypeScript庫和Midnight的特定領域的編程語言,開發人員可以基於Kachina協議開發智能合約。
此外,Microsoft VS Code的插件允許開發人員與Midnight區塊鏈順暢協同工作。Midnight SDK提供了構建和運行軟體所需的所有工具,包括編譯器和運行時,以及一個模擬節點,CLI錢包和示範項目。
總結上,Midnight為開發人員提供了一個強大的環境,輕鬆創建數據保護的智能合約,提供了構建和運行軟體所需的必要工具,並允許與區塊鏈順暢的整合。
Midnight的智能合約模型可以應用於廣泛的應用場景,包括傳統金融 (TradFi) 和去中心化金融 (DeFi) 應用程序,身份管理,供應鏈管理系統,醫療應用程序等等。
數據保護是Midnight的核心。使用基於區塊鏈和加密技術的Midnight,保護敏感數據,無論是個人還是商業。
這種以數據保護為先的理念將支持一個環境,不僅保護機密性,還保護開發人員,公司和個人的三個基本自由:聯合,商業和表達。