本文,我們對話了Mysten Labs 聯合創始人兼首席密碼學家Kostas Chalkias,討論了密碼創新如何成為Sui 設計的核心,以及即將推出的功能為何令人興奮?
Q:您能簡單解釋一下密碼學家在構建區塊鏈中的作用嗎?
A: 事實上,我曾經與中本聰的第一批開發人員之一(邁克·赫恩)一起工作, 我擁有密碼學博士學位,在區塊鏈時代之前,我的關注點主要集中在學術界。由於這種參與,我可以準確地告訴您加密技術為區塊鏈基礎設施公司發揮作用,通常分為三個關鍵角色。
首先是研究,你必須在密碼學方面進行創新,因為它通常是非常高級的數學,一部分是尋找很酷的新算法,同時也需要研究破壞算法。我之前在一家區塊鏈公司擔任的角色就涉及審查密碼學的實施並作為白帽黑客尋找針對他們的攻擊。所做的內容“你是一名數學家,你是密碼學家。去看看這個特定的數字簽名算法或隨機信標或其他什麼的實現。檢查一下是否一切正常。” 這屬於研究領域。
其次是實施,即應用密碼學的概念。應用密碼學家確實從產品團隊那裡得到了要求——“嘿,我們想要一個新的更快的簽名方案,或者我們想要為我們的客戶或客戶或社區創建一個新的隱私功能。” 然後應用密碼學家不僅要設計東西、研究,還要實施它。有時應用密碼學家還必須是一名非常強大的軟件開發人員,需要在編碼方面進行新穎的優化。
最後是創造新產品,基於密碼學家了解的原語基礎上,提出自己的創新想法。
總結一下,我們兼顧研究、實施與產品,這就是典型的區塊鏈密碼學家的角色。
Q: 通常是同一個人能夠做這三件事嗎?或者分成組去實施?
A:對於Sui 來說,因為我們引入了許多創新,所以我們需要多人從事許多工作流程。我是Mysten Labs 的首席密碼學家,也是Sui 的創始人之一,所以我參與了大部分工作。但是,您無法獨自完成所有事情,我仍在向我的團隊學習。
我們不僅僅使用一種編程語言。例如使用Rust 語言進行概念驗證,但後來我們意識到網絡上的大多數人都在使用JavaScript 或TypeScript,密碼學家不可能自己寫所有的東西。但你不能委託給像軟件工程師這樣的通才,因為有些優化需要高級數學和加密原語知識,或者你可能需要與一些你不熟悉的庫進行交互,因此你需要其他人來接手這項工作。
我們的研究團隊總共約有10 人,在日常工作中致力於創新和實施。我們擁有這些“聰明”的頭腦,有時我是提出想法的人,有時我也在遵循其他加密專家的方向。我們團隊可以幫助實施,或提供資源或提供有關如何擴展和應用一個很酷的想法的提示。
兩隻眼睛不夠,因為密碼學是區塊鏈基礎設施中極其關鍵的一部分,如果出現問題,則可能GAME OVER,所以需要更多的眼睛。另外,需要很多創新者。
Q:Sui 設計中已應用的外部研究取得了哪些關鍵進展以及影響?內部對話有哪些關鍵創新?
A: 在密碼學方面,對我們產生影響的外部信號是零知識證明等技術的演變,以及文獻中提出的一般隱私保護技術。不僅僅是區塊鏈在做密碼學,世界各地也有研究機構、大學部門,在做理論工作。我個人認為Mysten Labs 非常擅長在從未有人實施過的領域尋找新理論,其中一些假設可能不准確,但我們將其與我們現有的技術結合起來,最終推動我們創造出一種新穎的產品。
Sui有一個新功能,零知識登錄(ZK Login),就是這樣應運而生的。外部提出了一些技術,但不足以為L1 區塊鏈提供無縫的身份驗證機制,我們在它之上發明了新功能,這是應用研究的內部垂直領域,最終,我們想出了一個完整的解決方案。
我們不是大學,我們不僅僅是理論,我們需要實施生產就緒的東西,因此,我們從內部和外部討論中獲得反饋。很多時候我們閱讀科學論文,我們參加活動,我們是審稿人和演示者,我們收到反饋。顯然,我們將所有這些轉換為Sui 上的實現。
我意識到我們的一些代碼隨後被其他人、其他公司甚至我們行業之外的人使用,最終會看到大公司獲得這些代碼並將其註入到自己的基礎設施中,不一定是區塊鏈基礎設施。
內部創新通常是由產品團隊觸發的。他們會來找我們說:“目前這是不可能的,我們還沒有看到這方面的研究。你能解決這個問題嗎?”
例如,啟用可發現的區塊鏈地址但具有隱私性的有趣問題。即使在您創建帳戶之前,我如何才能將某些內容髮送到您的電子郵件或電話號碼?想像一下Venmo 風格的功能,我向您發送資產,然後當您意識到它們在那裡時就去獲取它們。解決這個問題需要內部集思廣益,討論如何以隱私心態正確地做到這一點。從外部得到理論,我們將所有這些結合到一套工具中。大多數時候我們在這方面實際上非常成功。我們設法解決上述問題,很少會遇到產品問題而沒有解決方案。
Q:Move 如何幫助您創造這些密碼學創新,並為使用Sui 的開發人員提供更安全的體驗?
A: 我曾經是一名Solidity 開發人員,編寫以太坊合約,我還熱衷於破壞以太坊上的智能合約。我的第一份工作是審計以太坊上的彩票合約,我成功地摧毀了一些算法。當時,你幾乎可以說隨機性算法不公平、不透明。這實際上讓我了解到智能合約開發人員通常是編寫小腳本的工程師。智能合約不是大程序,也不是複雜的數據庫,通常,只需接受幾天培訓的人就可以編寫智能合約並進行部署,但這需要非常仔細的審核, web2 – web3 交互可能存在隱藏的陷阱。
我們意識到,在以太坊上,由於兩個特殊因素,Solidity 的一些安全功能存在問題。首先,工程師正在優化壓縮以減少GAS 費用,這可能會造成用戶可能會因為沒有涵蓋邊緣情況而錯過某些內容。而且還存在重入攻擊的問題。就像一個智能合約向另一個智能合約付款而不更新其狀態。這種攻擊向量過去曾造成大量資金損失,包括多年前的以太坊DAO,導致以太坊分叉。
Move 不存在這些問題,特別是對於重入問題,我們從頭開始保護源代碼。此外,我們還通過創建一種更加以對象為中心的Move 語言,對原始Facebook Move 進行了很多改動,這對代碼的可重用性有很大幫助。您不需要復制粘貼智能合約代碼,然後可能進行一些調整,而是可以調用原始代碼並獲得更好的一致性保證。
同時,在Move 中,我們為所有事物提供了對象。在Solidity 中,當您將內容從一個合約轉移到另一個合約時,如果沒有上下文,通常您不知道它是什麼。這是地址嗎?這是一個數字嗎?這是圖像URL 嗎?當您將所有內容都視為對象時,類似於Java 和C++ 以及所有面向對象的語言,您可以首先將現有的客戶端項目轉換為基於智能合約的世界,而無需關註三重優化的壓縮機制。因為你可以從字面上看到,這是一個「老虎」對象,我正在向你傳輸一個「老虎」對象。
密碼學呢?當你擁有這些物品時,當我將一些東西從一個錢包發送到另一個地址時,你會看到一個彈出窗口,顯示“你正在轉移老虎NFT。這隻老虎NFT 有X 特徵”。由於以對象為中心的設計,無論您觸摸的是什麼對象,您都可以準確地看到您正在做什麼,這可以幫助您識別交易中的任何問題。許多用戶受到惡意軟件或應用程序的誘惑,試圖說服您在其他區塊鏈錢包中籤署您不希望簽署的內容。但對於Move,這就有點困難了,用戶可以清楚地看到正在發生的事情,這會增強最終用戶的安全性。
另一件真正有助於設計更有趣和更酷的算法的事情是由對象實現的並行化。假設我有一些鈔票,一張10 美元的鈔票和一張100 美元的鈔票。如果我向旁邊的兩個人提供鈔票,我可以並行執行此操作。
在以太坊上,基本概念是中央賬戶餘額,你可以從那裡轉移東西。因此,如果我要發送或接收資金,我必須排序這些交易,我會先發送100 美元,然後提交10 美元交易,同時如果有人向我發送資金,這3 筆交易都必須被排序,這個過程是昂貴的。
這就是我們從Move 語言中獲得所有很酷的東西的方向,作為密碼學家,我們可以使用Move 提供的並行化和麵向對象編程來創建更好的安全性、更酷的創新算法。這就是整個想法。例如,我們創建了一個彩票計劃。雖然乍一看似乎很容易,但老實說,正確地做到這一點通常非常非常困難,特別是在構建具有復雜邊緣情況的多人彩票時,這也是優秀密碼學家的閃光點。我們需要一些隨機性,你需要購買彩票,這些票可以被並行購買。你如何在區塊鏈上做到這一點? Move 及其可用的加密原語幫助提供了更好、更安全的加密生態系統。
我很清楚,類似彩票系統的東西可以用在一個產品中,比如說,有300 張票可用,但有數千人想要它們,而您希望它們被隨機分配?這個系統是Sui 的基礎,任何公司都可以將其添加到他們的產品中。
這裡的好處是,由於Sui 的面向對象性質,您可以從許多不同的其他智能合約中調用相同的合約。我們有可組合性的概念,它實際上可以幫助您在兩種不同的彩票中使用同一張彩票,這對於創造以前不存在的新體驗非常有用。
在遊戲領域,你需要隨機性,而Sui 實際上是最好的區塊鏈之一。對於棋盤遊戲,即使是看似確定性遊戲的國際象棋,您也需要知道誰先下棋。誰是白子,誰是黑子(正如我們所知,在國際象棋中,白色具有優勢),它需要一定的透明度才能在同一遊戲中正確匹配不同的玩家。還有政府應用程序。想像一下稅務局正在進行一些統計抽樣並選擇審計對象。他們真的能提供證據證明統計抽樣是以公平和透明的方式進行的嗎?
如果存在一種具有不可否認的透明度的算法,可以提供組織者無法更改的良好隨機性,那麼每次抽獎或隨機抽樣都會有一個新的公平性。
Q:您最近寫了一篇推文,討論將NFT 存儲在鏈上的重要性,以便它們保持動態並隨著時間的推移而變化。您能否分享更多關於這一觀點,特別是Sui 的數據結構如何增強NFT 的實用性?
A:這是一個備受爭議的話題。我試圖解釋不同基礎設施所啟用的NFT 屬性是不同的,當它只是一個靜態圖像,當你您不對該圖像執行任何高流量操作時,傳統結構確實非常好。但在某些情況下,比如游戲中,玩家希望可以從NFT 中獲得更多的收益,那麼傳統結構的NFT 就不夠好。
Sui 有一些允許動態NFT 的算法,每次發生交易時,它們的字段都會更新。當你玩遊戲的時候,你有一個英雄,你贏了,過了了關,你可能會得到一些新的武器或力量,這一切都可以記錄在區塊鏈的狀態中,並創造出一種全新的類型。另外因為Sui 上的存儲成本便宜,NFT 可以存儲在鏈上。這使得鏈上可以更輕鬆地讀取和寫入不同的智能合約,並實現可組合性。
在其他鏈上,您將面臨一個問題,因為更改不在狀態中。要讓另一個智能合約讀取你的合約,他們需要知道你的結構,你需要一個鏈下解析器,這會造成一些用戶體驗的複雜性。在一些很酷的應用程序中也有條件邏輯,在提交交易的時候,你不知道你要接觸哪個NFT,所以我能從鏈下世界提供什麼,這並不容易擴展。
還有威脅模型的問題,事實上,一些特定的應用程序可能會容忍壓縮和鏈外存儲。但實際上,當我們在鏈外存儲某些內容時,我們正在改變威脅模型。原因通常是中心化,想像一下,有一天,如果您將其存儲在AWS 中,然後……亞馬遜就癱瘓了。亞馬遜是一家單一公司,如果它出現故障並且您無法訪問該特定的鏈下數據,您將無法在鏈上使用它;即使可以,您甚至需要數據來生成您確實擁有鏈下數據的證明,因為有時您只需要證明,對嗎?為了證明,您需要從AWS 獲取內容,然後對其進行哈希處理,並將極少量的數據發送到區塊鏈中,這在某種程度上得到了驗證,但如果你沒有數據,你無法證明我的NFT內容是什麼。
所以存在一些中心化問題,儘管有些人說並不是,因為我們可以將它存儲在不同的地方。我同意,如果我們能夠設法有一個特定的設計,將所有這些威脅模型都編碼到區塊鏈中,但另一個問題是延遲,在鏈上實踐中,我們需要以最小的延遲獲得內容,如果把NFT 存儲在其他鏈上,會造成延遲加倍,這不是我們想要的的,我們希望所有的東西存儲在鏈上,同時降低延遲性。
Q:對於Sui 的未來,您最興奮的是什麼?
A:這是我最喜歡的問題。我加入Mysten Labs 的主要原因是我更喜歡創新驅動產品開發的地方。我們正在向社區提供一些新的東西。我甚至給我的兒子命名為Kryptos。
如果你特別問我關於Sui的加密創新,有一件事是肯定的,那就是我們允許很多方式進行身份驗證。通常,大多數區塊鏈只支持一種簽名算法,以太坊有自己的算法,Cardano 和Solana 支持另一種算法。我們試圖能讓Sui 與其他公鏈對話,這意味著我們允許所有現有算法,這意味著我們與更多錢包兼容。現有的錢包不需要重新發明輪子,您喜歡基於以太坊的算法,我們支持該算法,所以去使用它吧。你使用iphone,那你甚至不需要錢包, iPhone 和更先進的Android 設備內置有這種僅支持特定算法的安全芯片,我們也支持這一點。
然後我們本身也有多重簽名的概念,如果您注重安全性,密碼學的身份驗證部分,是Sui 的旗艦功能之一,將創造新的身份驗證體驗。
我個人非常喜歡的另一件事是,我們從第一天起就在Sui 內部引入了零知識證明、隱私保護技術。因此,人們現在可以創建一個具有盡可能多的隱私的KYC 系統,他們甚至可以創建保密的金額轉賬,同時也讓他們有機會遵守法律和審計師的要求,我們把一切都放在那裡供開發人員使用。
除了所有這些算法之外,我們的開發人員解決方案工程團隊實際上提供了非常好的支持。我們每天都和不精通密碼學的團隊一起工作,他們沒有密碼學家,但有一些非常酷的想法,如果我們得到一些反饋,我們會幫助他們實現,有些東西是不可用的或者存在問題,我們也會以極快的速度解決它們。