DAOrayaki Podcast|對話HTseaat:擴容與隱私計算技術的發展現狀(文字版)

發表於 2023-01-16 20:56 作者: DAOrayaki_

DAOrayaki DAO研究獎金池:

資助地址: DAOrayaki.eth

投票進展:DAO Committee 2/0 通過

研究種類:DAO, Web3, Ownership Economy

貢獻者:Bill Charles

審核者:shaun

簡介

隨着以太坊網絡使用需求的不斷增加,網絡擁堵現象愈發嚴重,並以此推高了對象的交易成本。擴容,作爲提升以太坊性能的解決方案,在過去的兩年,一直是用戶和極客所BUILd的焦點。特別是在今年,POW到POS,區塊鏈不可能三角、Rollups+分片、zk等一系列熱點詞,在以太坊合並事件的助推下,頻繁出現在大衆視野,也催生了很多以擴容爲需求場景的技術探討與實踐,這其中不乏老調重彈,也有新技術,映入眼簾。

隨着ZK技術的發展助力,對擴容及其關聯性較強的隱私計算領域的未來發展,產生很多積極的影響。DAOrayaki認爲有必要在2022年收官之際,跟社區的小夥伴做一次系統性的總結,擴容的技術發展至今都有了哪些突破,產生了哪些解決方案,ZK技術的崛起,對擴容,對隱私計算技術的未來發展,又有着怎樣的影響?與之前播客不同的是,本次我們邀請到的嘉賓,是一位來自DAOrayaki社區內部的貢獻者,DAOrayaki在該領域的部分研究文獻,就是由他加工並創作完成,今天就讓他跟大家一起來聊一聊,擴容與隱私計算技術的發展現狀。

主持人:Shaun

(DAOrayaki 負責人)

嘉賓:HTseaat

(在讀研究生,研究領域也是主要關注在區塊鏈和應用密碼學層面)

正文

Q:歡迎,seaat,我們從最基礎的入門課程來梳理,我覺得我們在聊整個擴容,可能第一個涉及到的話題,還是從狀態通道开始,就是state channel,所以,有請seaat先跟大家交流一下什么是狀態通道,State channel,歡迎seaat。

狀態通道其實屬於是一個鏈下擴容的技術,而我們平時不是叫它狀態通道,而是管它叫做支付通道。支付通道和狀態通道有什么區別呢?支付通道我們主要要解決的問題就是目前區塊鏈鏈上的處理交易性能不足,支付通道主要是把這些計算移到鏈下,我們要在鏈下开啓通道,在這個通道裏面進行交易,從而來提高鏈上的和整個區塊鏈的處理交易的性能。

而狀態通道,是一個更general一點兒的說法,就相當於說我們不光想在這個通道裏面執行交易,其實交易我們抽象出來變成計算的話,就相當於是一加一減,畢竟交易就是相當我給你一塊錢,那我的錢包就要減一,對方的錢包就要加一,而狀態通道是一個相當於是我們可以在這個通道裏面做任意的計算,通用的計算,比如說一些鏈上的遊戲,就比如說鏈上的棋類的遊戲,它需要每一個回合需要同時在线,這種遊戲我們也可以放到通道來進行,當然這個時候就不能作爲支付通道了,我們需要一個更廣泛的概念,就是狀態通道,但是在接下來的討論可以先簡單的稱爲支付通道,因爲狀態通道這個概念還是比較廣泛我們可以先細化一下。

Q:所以作爲老概念,對今天整個行業的發展有什么影響呢,比如說接着剛才聊到的這個話題我們再談支付通道Payment channel,像Payment channel這類技術應用都會應用在哪些比較廣泛的,實際的技術應用中呢?

相信大家對於鏈上和鏈下擴容都會有些了解,畢竟區塊鏈處理性能的局限性已經有一段時間了。所以說關於我們就要運用一個公式去提高區塊鏈的性能,也就是吞吐量除以這個驗證交易的一個开銷。

所以說針對這個公式,我們可能就有不同的方法。比如說,我們針對降低這個驗證交易的开銷的話,我們可以優化一下共識算法,例如從POW換成POS,或者再來換成DPOS。另一種方式是我們可以增加吞吐量,這其實就有很多方法,比如說鏈上的就是擴大區塊的容量,是最最簡單粗暴的一種方法。當然這個帶來的問題,就是擴大區塊容量之後,我們能驗證這些區塊的硬件的條件肯定會增加,從而導致了這個礦工,也就是整個可以驗證,參與共識的這些節點,會慢慢變少。這就造成了一個中心化的問題。

所以說,其實所有的擴容技術,我們想要達到的最終目標就是打破這個區塊鏈的不可能三角。因爲我們也知道,區塊鏈的不可能三角是由安全性,中心化和可擴展性組成的。安全性是我們不能妥協的一個屬性。因爲安全性代表了網絡受到攻擊的運行能力。所以說,我們更多是做一個去中心化和可擴展性的一個trade off,也就是權衡取舍。所以說,我們的目標就是如何在保證去中心化的同時增加可擴展性。而如果我們簡單粗暴地把區塊鏈的擴容作爲一個就增加區塊兒鏈容區塊兒的這個容量的話,其實就違背了這個區中變化的特性。所以,Sharding之類的鏈上的擴容有一個問題,就是它需要對鏈上的整個區塊鏈框架進行修改。因此,它對現存的一些區塊鏈系統,像是比特幣和以太坊的改動會是比較大的。

而鏈下擴容的核心思想是這樣的:既然鏈上的驗證成本开銷這么大,我們爲什么不能把這個計算放到鏈下來執行呢?畢竟並不是所有的交易,我們都有必要把它記錄在鏈上的。所以說,鏈下計算這個核心思想告訴我們並不需要對現存的區塊鏈的整個架構進行一個改變,而鏈下擴容這些方案是更適合,也可以更加容易地融入到比特幣,或者以太坊這些現存的區塊鏈系統。而且這些現存區塊鏈系統,它確實都有自己的這個鏈下擴容的一些方案。比如說比特幣,它有閃電網絡,以太坊,它有雷電網絡。

目前的這些應用的話可以等會再講。我們可以先把整個過程先梳理一下。其實主要的問題,就是區塊鏈目前存在一個鏈上處理能力不足的一個問題,所以說我們要怎么解決問題呢?我們就是分出了兩部分,一部分鏈上擴容,就是通過修改區塊鏈,它本身來提高整個區塊鏈的處理交易的性能,或者我們另外一個技能樹呢就是把交易放到鏈下來就行,也就是鏈下擴容。而支付通道,也是屬於鏈下擴容的技術之一,當然這個鏈下擴容裏也會涵蓋其他的一些技術。

Q:所以聽下來,目前支付通道應該算是在鏈下擴容裏面比較主流的方式。

對,其實目前主流的幾種鏈下擴容有Payment channel支付通道和Rollups。其實大家可能聽的更多的是Rollups這個技術,比如說zk rollups,或者optimistic rollup,現在很多項目其實是這個。我先來簡單介紹一下這個支付通道和Rollups,它倆雖然都是鏈下擴容的技術,但它倆有些什么區別?

首先,支付通道想解決的問題是頻次高的一個小微交易,就像我們日常生活中的場景。但是我們目前關於區塊鏈的共識以及它的整個特性,決定了它並不適合於普及到我們的日常生活中這種小微交易的場景,爲什么呢?首先是它的處理交易速度相對於主流的那些交易方式根本不是一個數量級的,這個得承認。其次就是,因爲這些共識算法的不同,我們需要給礦工支付一定的手續費,而這一部分就很大程度上限制了它作爲日常生活的一種支付的方式。比如說不可能我在商店裏面买兩塊錢的水,我需要給礦工支付五塊錢的手續費,那肯定是不可能的。所以說,支付通道就是爲了解決這樣的問題。

其實我們也剛才也說了,我們並不是需要所有的交易都要放在鏈上進行記錄,所以我們就把這個交易放到鏈下來執行,支付通道簡單來說,其實就是這個通道的雙方各自在鏈上鎖定一筆錢,然後在鏈下开啓一個通道。這個通道,這個鏈上鎖定的錢,它可以作爲面向通道雙方的初始余額。比如我在鏈上鎖了十塊錢,你在鏈上鎖了八塊錢,那么我們开啓了這個通道之後,我的初始余額就是十塊錢,而你的這個初始余額就是八塊錢。而且在這個通道內,所有的交易,是可以及時發送的,相當於說我就可以使用日常的那些支付方式直接轉給你。這個速度一般按理論上來說是一樣的,並且它不需要礦工進行驗證。這個爲什么不需要礦工驗證呢?換一個角度來看,我們爲什么要曠工來驗證這個交易?我們需要全部的節點,對這個交易的有效性達成一個共識,而在我們的這個鏈下通道裏面,我們的通道只有兩方,所以說,就不需要那么多節點來對這個交易的有效性進行共識了。只要我給你轉了一塊錢,錢上面帶了我的籤名,你驗證了我的籤名,那么就可以驗證錢是由我來發出的。這個共識其實就是我們兩方達成的共識,不需要一個多么復雜的共識算法,也就免去了礦工驗證的成本。

也就是說我們在鏈上鎖定了錢,我們开啓了通道,因此我們可以在這個通道裏進行任意筆次的交易,而且不需要手續費之類的。只需要在我們做完所有的交易後上傳,比如我有十塊錢,你有八塊錢,我一塊錢一塊錢地轉給你,最後我把所有錢都轉給你了,你有18,我沒有錢了,我們只需要把最終的通道裏面各自的余額,我們也可以叫狀態,然後上傳到鏈上,鏈上根據我們最終的狀態進行余額的分配,核心思想就是我們不需要把所有的交易都記錄在鏈上,我們只需要記錄最終的交易多少錢就行了。

我們舉一個不是很恰當的例子,比如在一個大型商超裏面,我們購物後,在結账的時候,不可能把每個購物車裏面的每個商品都掃一下,然後打張發票;我們肯定是需要把購物車裏的所有商品都掃描一遍,掃描完了之後打出來一張總账單,根據這個來付款。

所以在支付通道也是同理,我們只需要把最終的錢,最終的各自通道內的余額上鏈,進行一個金額的分配就可以了。而rollups技術跟支付通道技術,有區別的一點是在哪裏呢?支付通道是只需要把最終的狀態上傳到鏈上,但是rollups技術,我也不具體說是用什么技術了,主要來說它很簡單,就是需要把一些中間的狀態上傳到鏈上。其實rollups技術,就是在鏈上,只存儲鏈下這些節點的一些狀態信息,而狀態信息是什么?狀態就相當於是你鏈下的節點,它的地址是什么,它在鏈下的余額是什么。這個我們都可以統稱爲狀態。也就是說,鏈上的合約,其實只是存儲鏈下節點的狀態,而鏈下,整個過程之中發生的一些交易就會導致這些節點狀態的改變,就比如有些账戶鏈下節點的账戶余額減少,有些節點的鏈下余額增多,而在這個鏈下發生交易周圍當中狀態的改變會導致了鏈上記錄的合約狀態發生一些更改。每隔一段時間,鏈下需要把這一段時間內更新的這些交易以及這個更新的節點狀態打包上鏈,供鏈上進行驗證,以防止一些節點惡意篡改自己的狀態。比如這個鏈下節點裏面只有十塊錢,但是我偷偷把自己的狀態改成我有50塊錢,這種問題是需要避免的,所以我們需要把這段時間所有的交易放到鏈上,供大家來做交易有效性的驗證。

而支付通道和rollups技術這兩個鏈下擴容技術有什么區別?其實大家也能看出來這些區別,就是這個支付通道只是提供最終的狀態,而rollups技術它需要提交一個中間的狀態,其實我們也能換個角度思考,就是支付通道它是把鏈上的計算和存儲全都轉移到鏈下,其實在這個鏈下开啓通道之後,在這個通道裏面進行任意的交易,其實是除了你通道之外是沒有人知道的,你也不需要放到鏈上去記錄,而rollups技術,是將這個計算和一部分存儲轉移到了鏈下,因爲支付通道它是沒有一個時間限制的,你想开啓這個支付通道不想關的話,它是可以永久不關的。

所以如果只是單純的和通道內的這一方進行交易的話,其實完全不需要和鏈上做任何交互。而這個rollups技術是有時間限制的,是需要隔一段時間將這段時間內的這個交易類似壓縮包的形式上傳到鏈上,但這同時也會導致一個問題,就是支付通道的話就是兩個點,所以如果我這個節點想和別人做一些交易,沒有直接連接建立通道交易的話,這是個非常麻煩的過程,但是在rollups技術他的這種實踐邏輯下面,其實可以和鏈下的任意節點進行任意相互的交易,畢竟他是要每隔一段時間要把這一段時間內的所有交易更新後的狀態要打包上鏈,是要驗證的,所以這就是這兩個技術帶來的一個區別。

Q:感謝感謝,講的很詳細,我也認真的在聽,邊學習邊在思考。

有什么不懂的嗎?不懂的也可以再問。

Q:但我聽下來,實際上rollups它的技術在應用層次會更方便一些,是嗎?我這么理解對吧?

對,畢竟更多的場景並不是我們兩個節點之間建立通道就一直交易,更多日常生活中的場景是在這個商店买一點兒,下次再去另一個商店,並不會建立一個永久的通道進行交易。其實這個場景是比較有限的。所以rollups是更加貼合現實場景的一種技術,但它的缺點也是有的,就是你需要隔一段時間把這段時間內的信息上鏈。所以它就是把一部分的計算和存儲放到鏈下,另一部分存儲是在鏈上的。

Q:所以接着我們剛才聊到的,因爲現在主流應用Payment channel的可能會更多。那您可以分享一下更多關於Payment channel的主流應用場景嗎?

就目前來說,Payment channel的應用場景更多還是放在鏈下計算,如果你要說具體應用在什么場景比如說醫院或者什么之類的話,其實我倒也舉不出來比較詳細的例子。因爲线下擴容的這個技術,大家更多是把目光放在了rollsup上面。在支付通道這方面其實是比較小衆的。最近還有很多zk rollsup的方案很火熱。

Q:但實際上會有一個支付通道網絡的概念是不是?這個可以跟大家聊一聊嗎?

這是因爲,如果我想和沒有建立通道的鏈下節點進行交易的話, 我們應該怎么做呢?這其實是支付通道的一個問題。支付通道不管是從學術上,還是工程實現上來說的話就是非常簡單的。在鏈上,不管是在合約還是什么東西裏面,我們存一筆錢,其實就相當於是在鏈下做一些協議的要求。相當於是在鏈下开啓一個通道,抽象出來一個通道,所以說它並沒有什么問題可研究的。主要的問題就在於如果我想和沒有和我直接建立通道的節點進行交易,那我這時候應該怎么做呢?這時候其實就引入了一個叫支付通道網絡的概念。爲了解決問題,這裏就引入了六度空間理論(又,六度分隔理論(英語:Six Degrees of Separation)認爲世界上任何互不相識的兩人,只需要很少的中間人就能夠建立起聯系。哈佛大學心理學教授斯坦利·米爾格拉姆證明平均只需要6步就可以聯系任何兩個互不相識的人。),通過六個中間人就可以認識一個陌生人。如果我們把每個人之間的聯系抽象成线的話,我們就得到了一張社交網絡的圖。在支付通道中也是同理。我們把鏈下節點作爲點,而把兩個點之間連接的支付通道作爲一條线,我們得到類似的一張圖。所以說就算我和別人沒有直接的通道的連接,我們可以通過一些中間的節點合建通道連接,讓他們作爲轉發。如果A想和D進行一筆交易的話,A和B連接了有支付通道,B和C有連接,C和D有支付通道連接,那么我們就可以把這個錢從A轉到B,從B轉到C,然後從C轉到D。這其實就間接地完成了這筆交易,通過了B和C兩個節點的轉發,就能在鏈下的整個支付通道網絡裏面完成這種間接的交易。所以這也是爲什么比特幣的Payment channel項目叫閃電網絡,而以太坊的叫雷電網絡。都帶了“網絡“這個詞。這也會引出來一些理所當然的問題。我們怎么能保證中間B和C收到錢之後繼續往後轉呢?爲了解決這種問題,我們就會有一些技術來解決這樣的問題。

比如說閃電網絡,就提出了一種智能合約,我們也就是Hashed Timelock Contract,簡稱一般都叫HTLC,這個技術是什么意思呢?比如接收方D,它隨機生成一個密鑰,以及對密鑰生成一個哈希,相當於是這個D,它有一把鎖和一把鑰匙,它需要把這個鑰匙給這個交易的發送方,於是這個我們把這個錢先放到一個箱子裏面,然後拿鎖鎖上,然後我們一直傳遞的是帶上鎖的箱子,一直傳遞到了D這塊,如果B和C節點想要得到中間轉發的這些錢的話,就需要最終的接收方D在收到消息之後,要把這個鑰匙給其他人,才能把這個金額拿出來,簡單來說就是這么一個思想,也就是通過技術是要保證原子性,原子性是什么呢?就是多通道路由的轉發交易,我們要保證這個交易要么成功,要么失敗,就是不可能存在一個零和一之間的狀態,不可能一個交易卡在B這裏永遠不動了,所以說用了HTLC技術,就能保證這個錢要么成功的轉到了D這裏,要么這個錢原封不動的再退回A,這個技術主要解決的是之前中間這些節點轉發交易的做惡的問題。

Q:他壓縮了B和C作惡的空間,不給他們做惡的機會。

其實後面也能衍生出來一些支付通道網絡特有的問題,我也可以和大家簡單說一說,比如兩個節點建立了一個支付通道,在通道裏面我們都有100塊錢,這時候通道就是雙向的,我可以給你支付,你也可以給我支付,但如果我們通道裏面錢變成了我是0,你是200的話,那通道變成了一條單向的通道,這個場景有什么應用場景呢?

兩個節點的身份可能是一個是商店,一個是买家,交易的流向只有买家一直給商家轉錢,因爲买家需要买東西,萬一這個通道裏面金額耗盡了會怎么辦?

一般的話是需要把這個通道關閉,然後再從鏈上重新开啓一個通道。但是這個方法帶來一個問題,就是需要和鏈上進行交互,交互的話就會產生手續費,這就是比較小的問題,所以比特幣的閃電網絡提供了比如loop的非托管服務來解決這樣的問題,相當於是我們可以不和鏈上進行交互,相當於通過一些技術能夠把錢再轉回我這裏而不造成金額的損失,這個就是通道再平衡的問題。這是一個比較小的問題。還有一個問題就是如何保證轉發的交易是成功的呢?比如我想轉發10塊錢,但是B和C的通道,B只有5塊錢,就算B和C沒有做惡,這個交易必定是不成功的,因爲通道裏的金額是小於我想交易的金額。

這個問題有兩個解決辦法,第一種解決辦法就是,比如節點A知道網絡裏面所有其他節點個余額,比如知道B和C通道裏面有所有的錢了,可以走這條路轉換發交易,但這就會帶來隱私的問題,畢竟誰都不希望讓別人知道自己錢包裏面有多少錢。

所以比特幣的閃電網絡,就想了這么一個辦法,不公布通道裏面各方的余額是多少,但是公布在網絡上的是什么信息?是兩方通道余額加起來的總和,把這個信息公布在網絡之上,你可以根據公布在網絡上的通道的余額總和,去猜它有沒有足夠的錢來完成交易,這個是能保護隱私的,但帶來的問題是整個網絡的交易成功率不高,這個問題怎么解決?其實有一些方法,比如既不能公布真實的余額在網絡裏面,它可能會造成隱私泄露,那么能不能在網絡上公布虛假的余額,比如我和你這個通道裏面,我們分別有十塊錢和八塊錢,那么能不能公布在網絡上各自通道裏面的余額是七塊錢和七塊錢,就是相當於是用臨時證明技術,我證明通道裏面的真實余額是要大於等於公布在網絡上的虛假余額的,這樣既能保護到隱私又可以保證交易成功率。另一個問題就是,比如我B和C公布在網絡上的余額,是一和八,而我想轉六塊錢,這時候我就能確定它的通道裏面是至少有七塊錢和八塊錢的,比如說用零知識證明我生成一個proof來證明這個通道內的真實余額是要大於公布在網絡上的余額的,相當於是用了一些密碼學的技術來statement真實余額是要大於虛假余額的。

我給其他人證明這個陳述是正確的,其他人就可以看虛假余額,進行交易的轉發,這個就是一些大家在新研究的技術來能在保證隱私的情況下,提高整個網絡的交易成功率,但這些其實還沒有實際部署在這些具體的工程實踐上。

Q:OK,我稍微做個總結,不對你糾正我,因爲我不是技術背景出身,實際上現在用到的其實更多的是引出了支付通道整體網絡的概念。那在支付網絡裏面,其實能夠發現現在有些問題,比如有一個存在這種多通道多通道交易的問題,A轉B轉C,那么CB和C的作惡的問題,它現在有一個大體的解決思路,它會有HTLC這種技術去解決通道交易,同時,好像在整個的這個環節中,它還會有一個金額的問題,因爲它涉及到了一個可能重新關閉再开啓通道,和鏈上交互的开銷的問題,那可過這種像loop這種你談到的非托管的服務來解決。

當然還有一個可能就是涉及到剛才我覺得還是蠻重要的,就是你談到的這個隱私的問題。因爲確實我們本身在在做這個領域研究時候,會從各個角度去去討論,那最終都會落到一個點,就是關於隱私,因爲去中心化這件事情本身,它對於對於隱私來講,就是有一點兒矛盾的,當去中心化對隱私屬性就要變弱,但是隱私,本身它又是一個強屬性的東西,所以剛才我們有聊到了關於問題去解決方案,所以在這裏,就會引出話題也是我想問到的,我這兩年在研究隱私計算,其實我對隱私計算,我還沒有特別明確的概念,所以今天也是想借這個機會,我想請教您的隱私計算

它大體說通俗化理解是一個什么概念?它跟我們今天談到的,這種隱私問題什么的,它是有什么樣的關系呢?

其實我對隱私這方面研究也不深,我只能提出個人的一些拙見。

其實隱私計算,我們通俗化理解就是,隱私計算,一個隱私一個計算,那其實把這兩個詞拆解出來看的話,就是我有一些隱私的數據,而我們想用這些隱私的數據進行計算,得到的一些結果,這就是隱私計算一個通俗化理解,這個理解起來也會有一些有些拗口,有感覺是個矛盾的問題。就不想把這些數據公开,但是我們一百個想把這些數據不公开,又想把這個數據拿出去做計算,但其實這個場景也在我們生活中其實挺常見的,比如說拿最常見的醫院,醫院病人的數據,我們想去拿這些數據去訓練一些模型,比如說訓練出來這個模型,可能就是能輸入一些病人的一些這個病狀特徵,他能通過訓練出來的模型,我們能夠得到診斷,可以簡單的歸咎到哪一哪一類的病例,可能這個就其實很大程度上其實能減少醫院的壓力,相當於這相當於是就是馬上就醫,但是醫院的病人的病例數據,他是不能公开出來的

所以說,這其實就和隱私計算的場景非常非常符合了。這樣的場景其實還有很多的,比如說一些公司的一些客戶的一些數據是不能公开出來的,但是我們又想拿這些數據和其他的公司進行一些交流,這個場景是在生活中是有很多的。

Q:那現有的就是區塊鏈領域,圍繞隱私計算的技術的類型都會有哪些?它會解決什么?區塊鏈的分類之類的。

其實區塊鏈的話,目前的應用場景主要還是金融以及虛擬貨幣方面,它的隱私保護其實就是保護交易的隱私,畢竟現在電商的一些交易,輸入取款哈希的話,都能查到交易,但有時候我們就是不希望交易是被大家看到的,這方面對隱私計算的關系,更多的就是保護支付的隱私。我不想讓網絡上所有的節點知道我給誰轉錢了,轉給誰,轉了多少錢,但是其實是跟目前去中心化的想法是違背的,就是既然我不知道這筆交易是由誰發送的,是發送到哪裏,那我怎么判斷這個就是他發送這筆金額,他到底有沒有大於他自己本身的錢?

比如說我在這筆匿名的交易裏面,我說我要發送90塊錢,但是我本身账戶裏面我只有50塊錢,如果是在一個驅動性化公开的網絡裏的話,他可以通過交易發送方的地址很容易查到账戶裏面是有多少錢的,但是如果把這個交易的發送方和接收方連起來的話,就並不知道交易的發送方,他到底有多少錢,到底他的錢數能不能夠支撐他完成這筆交易,所以這其實就是隱私計算和區塊鏈之間矛盾的一個地方,也是主要研究的一個地方,這也就是爲什么這時候大家特別想用零知識證明,就是之前火的,他其實用零知識證明可以做匿名交易的區塊鏈,他們主要用了零知識證明的什么屬性呢?其實他們用的那個方案,基本都叫ZK ,大家其實應該聽說過,就是零知識證明就是listproof裏面的一條技術路线,這條技術线比較好的一點是什么呢?它生成的proof具有簡潔性,就相當於它到proof,不管輸入,電路,你前端的電路是多大,但它最後生成出來的proof,它都是一個常數,而且都是很小的大小,而且驗證時間都是在微秒級的,相當於是就是把所有的交易接收方作爲隱私輸入,放到這個零知識證明裏面,我們通過生成一個證明去向大家去驗證,大家只要驗證了這個證明proof放到鏈上,而鏈上這個共識節點,只要驗證這個proof。通過了之後,就證明我們這個交易是沒有問題了,那么這個交易通過這個proof,也看不出來交易的發送方是誰,其實方是誰,然後就能完成這一點其實這就其實也挺奇妙的,這個如果大家對這個零知識證明這個概念不是很熟悉的話,其實我這裏可以簡單介紹用一個例子,舉個一個例子,我們在一張全是海豹的圖裏面我說這個圖裏面它有一只企鵝,但是我又不想指出來這個企鵝在哪裏,那么這時候我們可以怎么做?就可以把整個張圖拿一張黑布蓋上,我們在企鵝在的位置,把那一塊兒挖出來,把企鵝在的那個地方暴露出來,剩下的地方全是拿黑布我們蓋上,然後給大家看黑布,這樣的話,我既沒有暴露企鵝的位置在哪,我也向大家證明了這個圖裏面確實是有企鵝的,這其實就是零知識證明,其實它也沒有泄露企鵝的位置在哪,但是也向大家證明了這個圖裏面確實是有企鵝的,這就是一個非常簡單易懂的零知識證明的例子,當然這個具體復雜的零知識證明的一些技術的話,它就涉及非常非常復雜一些數學密碼,所以說這裏話就不跟大家介紹,然後還有一種技術,就是多方安全計算,想想大家也是應該是比較熟悉的,它主要應用的場景和區塊鏈的是什么場景呢?其實它的場景主要是每一方都有一些隱私輸入,而我們都想用這個隱私輸入,都將把各方的隱私輸入結合起來,進行計算得到一些結果之類的,那么就是舉個最簡單的例子,我有兩個百萬富翁,這兩個百萬富翁,想在就不自己不想暴露自己的這個錢多少,但又想兩方比較一下,這個誰的這個錢數更多,這其實是很經典的一個多方計算的場景。

所以說,放到區塊鏈裏面,我們可能肯定是會有這樣的場景的,我們在智能合約裏面,我們有一點隱私輸入,而這個隱私輸入我並不想暴露出來,而我我們又想在這個鏈上進行一些通用的計算,比如說我們在一些這個圖靈語,有圖靈完備的計算語言的,圖靈完備語言的,我們在智能合約上想計算一些東西,想用一些隱私的數據,這時候的話就就會用到安全多方計算,目前安全多方計算在區塊鏈裏面應用的場景,更多的就是智能分類裏面,因爲安全多方計算就是需要進行復雜計算的,它並不是一個比如說只是物理交易,這個一下一點這樣的簡單的算術,所以說,它可能更多應用場景,就是在能處理稍微復雜計算的一些區塊鏈,就比如說以太坊,它有智能合約,它可以處理一些計算,那么就是就可以把這個安全多方計算部署到合約裏面進行計算,其實零知識證明大家都能看到,其實零知識證明它的應用場景,更多的像是一個外方計算的場景,相當於是我們有數據,但是我們這個本地的算力又不夠。那時候我們需要再做到雲上的服務器之類的計算,可能還是把這個數據給到服務器,計算跑出來的結果,然後同時生成證明,我們是通過用了服務器上指定的模型跑出來結果,而不是用了個隨便的模型,我們來拋出來結果。這兩個隱私計算的場景,它並不是一個互斥的。

而是一個可以交叉重疊的一個場景,在區塊鏈裏面應用的話,我可以簡單簡講一個,現在還應用場景沒有那么那么廣泛的一個例子,就比如安全多方計算,計算出來的結果,參與安全多方計算的這個中間內,是認可這個計算結果的正確性的,但是如果把計算結果放到成員以外,就是讓其他人去看我們的這個結果的話,他憑什么認定這個結果就是正確的?因爲首先他不知道你的隱私輸入是什么,他可能知道你計算的流程過程,但是他不知道你的輸入,所以說他不知道這個結果是否是正確的。它會存在這樣的問題,所以我們這時候就可以用零知識證明對安全多方計算的結果,我們生成一個prove,去驗證,去給所有人去公开,然後給所有人來驗證成員內的安全多方計算的結果,它是正確的。其實這個問題也叫公开可驗證的一個MPC,這個更多的是在學術研究上比較關心這個問題。工程實踐,是這種例子是不是很多的,但是我舉這個例子就是這兩個技術,它是可以交叉融合在一起的,並不是互斥的關系,隱私計算目前技術,和區塊鏈主結合比較緊密的就是零知識證明和MPC,關於這個還有一部分,就是這個聯邦學習,但聯邦學習這塊兒和和這個區塊鏈的聯系,它並不是那么的緊密。而且還有一部分就是基於硬件的隱私計算,隱私計算也說來也很簡單,就相當於是我們把這個計算放到特定設計的一個硬件上面進行計算,在這個硬件上,跑我們的隱私數據,這就能算隱私計算了,可信執行環境一般都叫PE,這但是其實說實話目前這些。零知識證明也好,安全通話計算也好,它雖然有比較強的密碼學,以及理論上的安全性的證明的嚴格的理論證明,但代價就开銷非常的大,目前其實更多的應用,如果想應用一次計算的話,還是應用一億這種的可信硬件來做計算,雖然你的這個計算說實話,這是依托於你相信這個這個硬件是安全的,其實這類的方法其實都可以叫直覺的,就隱私內存,其實就是你相信它很安全的。那也可以用,就是但是它是沒有經過嚴格的一個理論證明,就是嚴格的安全性證明,而像靈零知識明或者ipc,用一套UC框架,能證明它的安全性,但代價就是它的這個計算成本非常高。

尤其是在我們鏈上,算力本來就非常有限的情況下,我們再去計算這些密碼學的計算,不是特別現實,這也是目前阻礙,比如說這些密碼學知識,密碼學的這些技術,這就證明進一步放大鏈上進行計算的問題但其實。零知識證明它是和我們之前說的roll ups,是每隔一段時間需要提交這段時間一些交易的數據,相當於是打包上傳鏈上,這種我們其實可以用零知識證明,其實零知識證明是作爲一個很好鏈上和鏈下的一個橋接點,相當於是就是dick snack,就我們比如說我們用dick snack 。還有一個特性就是剛剛說的那個簡潔性的那個特性,我們生成的proof,它是一個常數級別的。比如說最近特別火的那種ZKZKY,那我們是否就可以通過生成一個proof,把這個proof放到鏈上,供這個大家進行一個驗證,來驗證這段時間的交易的這個是否是正確的狀態的轉換是否是正確的,而不需要把所有的交易在。在一並上傳了,當然這個雖然這個鏈上的交易都是經過壓縮的,但其實還是會有一定开銷的,所以說,用零知識證明的話是可以,就是把這個开銷再降,當然這裏它是其實沒有用到零知識證明的,因爲它不需要隱藏什么內容,它更多是用到了簡潔性,就相當於是我們生成了一個常數大小的一個prove,我們只是把這個proof鏈上進行驗證就能行,我們這段時間所有的交易所有的狀態更新都是正確的,而不需要把所有的交易來放到鏈上並行存儲,這其實也是一筆比較大的开銷的,就是零知識證明做放在這裏,作爲這個點的話,其實是蠻好的。

所以說這也是爲什么目前這么多的這些項目,現在在研究,就比如說bk rap,像那個研究CPVMCPVM,現在有很多項目在研究這些。

Q:OK,感謝感謝,今天最後一個話題了,就是我們剛剛聊到擴容,聊到計算,然後我們其實也聊了一些通訊的和一些新型的一些技術。你怎么看待未來,不管是擴容,或者是我們今天聊到隱私計算的,技術的發展,尤其是剛才我們談了一部分,就是ZK這種老技術新應用,你怎么看待未來整個這個領域的發展,這是开放式問題,你隨便聊這個這個問題。

這個問題的話,其實我感覺就是目前這個區塊鏈擴容肯定是一個已經延沿用了很多年的問題,而鏈下擴容,我覺得相比鏈上擴容來說,它能更好的和這個鏈上,在不改變區塊鏈本質框架情況下,它能和區塊鏈能做更好的結合,就我覺得雖說鏈下擴容相比鏈上擴容,我覺得是未來。可能是個更火爆的發展的方向,而且從目前來看的話,不管是我們,而且從目前來看不管是這個項目的數量,以及項目的开發,不管是規模來看的話,鏈下尤其是rollups,這一系列的這些鏈框和技術,它是這些規模是遠遠大於鏈上控,比如說沙琳,或者是這個共識,修改工人算法之類的,這種方案以及像支付通道這種方案,他們這個質量是完全不一樣的,所以我感覺就是目前未來的話,更多的是會關注點是在鏈下這一塊兒,我覺得未來模塊的區塊鏈是好的方向,就相當於是把各個層結構,之前的話是相當於是共識節點,區塊鏈鏈上的一個節點,既要共識驗證交易有效性,又要存儲這些交易所有的布局,然後又要發交易,其實這個算力有限的,就是絕大多數人靠自己的算力有限的這些設備的編輯的,這些設備的話,它是實現不了這一點的。所以說這也會導致了隨着區塊鏈它的這個區塊的鏈越來越長,這個體量越來越大,能夠參與共識的這些共識節點,它會越來越少,因爲它的硬件成本會越來越高,因爲它畢竟要把整條鏈都要蕩下來,就是所有的這個鏈的數據都要蕩下來。

所以,這其實跟我們去中心化的思想是背道而馳的。所以我們我覺得未來更多可能就是把區塊鏈的各層結構,就比如共識層,就是分給共識節點來做。還有一些可能是存儲節點,就是專門存儲鏈上的數據,還有一些新節點,可能就是從這個存儲節點,就是單純的就是從那拿出數據來用,比如說鏈下擴容,這些技術能更好的結合起來,這種其實就也就不太分鏈上鏈下了,這時候可能就分各個層了,這時候可能鏈下的話,我們可能就能叫他。上層,比如說共識化爲共識層,就是說可能就不是分鏈上鏈下這么細了,但目前想把比如目前這些現存的這些區塊鏈,以太坊,比特幣改成模塊化,區塊鏈它當然也有工作也在改,但是這個效率,以及並不是比較慢的,但我覺得模塊化區塊鏈是未來很好一個發展方向,我覺得是能從根本上來解決的交易的擴容的問題,並且隱私計算它雖然是個老概念,但它並沒有說它老概念的話,它可以很老,它可以八幾年提出來零知識證明這些技術,但它實際應用的話還是在最近在一零年以後,就比如說第一個協議,它是可以相當於是能把研制證明能夠真正實際應用起來,但所以說它離真正的怎么降低密碼學的計算开銷,其實還是需要很大的一段路來走的,所以說未來零知識證明以及東華經濟。不管是學術研究還是實踐,他如何對去跟我們區塊鏈結合是一個研究的方向,它有一很大一部分是在研究,可能這這很大一部分是與學術研究,就是研究我們怎么去把這些开銷降低一級,可能我們針對某些特定的場景,我們去做怎么做零知識證明的優化,而且肯定不可能就是把這個零知識證明這個組件,按這個密碼鍵組件先搬過來用,我們就能做一個很好的結合,這肯定是有難度的,所以目前發展的話,就是我們如何這個提高性能,降低這些計算开銷。

另一個就是如何和目前現存的這些一些方向,比如說匿名交易,或者是rollups,和這些做更好的結合,可能前面一個降低开銷,這個是學術界做的事情,而後面這個人事證明MPC和區塊鏈間結合,這可能更多是工業界需要研究的一個問題。其實我對計算區塊鏈發展,我是這么看的,

總結

以太坊的「共識邏輯改變」與「擴容」,構成了以太坊升級的兩大主題。其中以太坊的擴容進程,旨在提升以太坊的處理性能/TPS,只有在供給能力提升後,依靠供需關系定價的手續費才能變得更加便宜。短期來看, 現有 rollup技術更加成熟、運用更廣泛,但從長遠來看,ZK Rollup隨着大量優秀的开發人員投入到相關研究中,在未來會是更優的擴容方案。ZK-Rollup 技術的基本原理,將使其,有能力達到更快的速度、更高的安全性,更全的性能,從而帶來更加廣泛的應用。而ZK技術本身,除了用於交易隱私保護,也可以用於數據隱私保護,結合隱私計算旨在打破數據孤島,促進數據流通的背景,輔助於區塊鏈技術良好的可擴展性,未來可以支持更大規模的隱私計算場景,滿足不斷增長的數據分析需求。

再次感謝HTseaat的分享,讓社區的小夥伴收益良多,關於擴容與隱私計算,我們今天只是开了個小小的話頭,在新的一年,我們會更加不斷的進行相關領域的研究、探討與分享。

今天相關討論的音頻晚些時候會上傳在 DAOrayaki 官網,DAOrayaki.org 的專屬播客頻道裏。我們也會同時發布在國內的小宇宙播客平台,喜馬拉雅FM,全球各大流媒體平台,例如蘋果播客、谷歌播客、YouTube 以及 Spotify 上,歡迎大家收聽及訂閱。祝大家聖誕快樂,我們下期不見不散。

標題:DAOrayaki Podcast|對話HTseaat:擴容與隱私計算技術的發展現狀(文字版)

地址:https://www.coinsdeep.com/article/8273.html

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

你可能還喜歡
熱門資訊