加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads
首頁 > USDC > Info

萬字長文說透Polkadot架構(下)_cosmos:OSM

Author:

Time:1900/1/1 0:00:00

劉毅,RandomCapital合伙人,清華大學碩士,區塊鏈和大數據技術專家;20年多種資本市場投資經驗,比特幣早期投資者。點擊閱讀《萬字長文說透Polkadot架構》十三、Polkadot架構

接下來我們介紹Polkadot架構,這兩張圖片都來自于岳利鵬翻譯的Polkadot白皮書中文版。先看右邊的大圖,Polkadot的基本網絡結構是星型的,或者稱為輪輻型。星型的中心是PolkadotRelay中繼鏈,外圍是眾多的Parachain平行鏈。再看左側的小圖,Polkadot網絡的參與者有四種角色:Validator驗證人、Nominator提名人、Collator收集人或者核對人,Fisherman釣魚人或者漁夫。DApp可以是部署在平行鏈上的智能合約,或者整個平行鏈就一個DApp。用戶在平行鏈發起交易,交易被收集人收集,打包成區塊,交給一組驗證人去驗證。這組驗證人并不是來自平行鏈,而是來自中間鏈統一管理的驗證人池,通過隨機分組指定給平行鏈。每條平行鏈都有一個出口隊列和一個入口隊列。如果用戶發起的是跨鏈交易,交易就會被放進出口隊列。再被目標平行鏈的收集人放入其入口隊列。目標平行鏈的收集人執行交易,生成區塊,由驗證人組敲定。Polkadot采用混合共識協議,出塊協議的英文縮寫是BABE,小孩子;敲定協議的縮寫是GRANDPA,老爺爺。剛才講混合共識,有同學可能會問:出塊快、敲定慢,那等待敲定的區塊會不會越來越多?不會的,GRANDPA每個輪次可以敲定多個區塊,從而追上進度。所以小孩子是活潑好動、步履輕盈;老爺爺是大步流星、一言九鼎。一老一小相得益彰。除了平行鏈,還有兩類外圍區塊鏈接入中繼鏈。一類是轉接橋,它把現存的、不能直聯的區塊鏈接入中繼鏈,例如以太坊和比特幣等。從中繼鏈的角度看,轉接橋是一條平行鏈。從以太坊或者比特幣的角度看,轉接橋是一條側鏈。此外,為了讓系統具有無限的可擴展性,還可以有二級中繼鏈。不過二級中繼目前還只是設想,沒有具體的設計。我們已經介紹了收集人和驗證人在系統中的作用,那么提名人和漁夫是做什么的呢?提名人是Polkadot基礎通證DOT的持有者,他希望質押DOT獲得收益。但是要么是因為DOT數量少,要么是缺少運行維護驗證人節點的專業技能。因此系統提供了另一個參與途徑,就是持幣者選擇他信任的驗證人,把自己的DOT通過驗證人來質押,分享驗證人收益。這樣做的好處是,提高整體質押比例,提升系統安全性,同時也使收益分配更加公平。關于Polkadot的經濟模型,是個很復雜很有趣的話題,我們就不多說了。剛剛介紹過分片架構的交易有效性問題,以及舉報獎勵的解決方案,所以漁夫的作用不難理解。他就是監控和舉報非法交易,賺取獎金的角色。聽起來挺簡單,但是做起來極其復雜。可能有些同學想象中的舉報是這樣的:給web3基金會發郵件:我發現有人打包了非法交易,證據見附件,盼復。過些天web3基金會回信:您的舉報已被證實,作惡者已伏法,獎金將發到你的地址,非常感謝您對我們工作的支持。但區塊鏈上的舉報完全不是這個樣子。漁夫是個軟件進程,它監控網絡上的非法行為,一旦發現就會向區塊鏈提交舉報交易。舉報交易也要經過共識過程,通過2/3以上驗證人驗證,打包進區塊,懲罰和獎勵也都是區塊鏈交易。整個過程是自動地、去中心化地執行。這里就有很多復雜問題,例如如何對漁夫提供激勵。漁夫就像警察,你可能會認為那很簡單,抓住一個壞人就發一筆獎金。那么有一堆警察天天盯著網絡,沒人敢作惡,警察就一直拿不到獎金。警察有運營成本,要驗證并存儲大量的數據,沒有收入就干不下去了。警察全改行了,壞人就會出現。那你可能會想,給警察發工資吧,底薪加提成。好,那我可以聲明自己做警察,領一份底薪。但是我根本不驗證和存儲交易數據,成本就是0,底薪就是我的利潤。等壞人出現的時候,我說抱歉哈,我沒看到,或者說我硬盤恰好壞了,那么系統應該怎么懲罰我呢?還有就是不能隨便舉報,系統處理舉報需要成本,隨便舉報就成了可以粉塵攻擊的漏洞。另外能否對舉報交易進行舉報,應該怎么處理等等。所以在去中心化環境中,舉報機制很復雜。Polkadot的漁夫工作機制,目前我還沒看到具體的說明。在Polkadot網絡中,平行鏈各自承擔交易執行、數據存儲,同時平行鏈之間能夠互操作,也就實現了分片的目標。因此我把Polkadot看成是分片擴容方案。可以跟Serenity初步比較一下。你會發現Polkadot比Serenity在技術上更復雜。Serenity的分片是同構,采用相同的共識協議,容量也整齊劃一。就像是提供給DApp使用的標準集裝箱,規格都一樣,開發者選一個分片,把自己的DApp放進去就好了。Polkadot是web3骨干網,它不能也不應該要求平行鏈是整齊劃一的。平行鏈可以自行決定使用什么共識協議、什么樣的經濟模型和治理模型,自己決定硬件和網絡配置等等。簡而言之平行鏈是自治的,Polkadot可以看成是平行鏈的聯盟或者聯邦。Polkadot中繼鏈要支持異構的平行鏈接入,進而實現互聯互通,復雜度超過Serenity的信標鏈。這一技術復雜度帶來的好處是,平行鏈開發的靈活性,無需千鏈一面,可以根據具體的需求和約束,設計開發最優的平行鏈。十四、殊途同歸——Cosmos

支付基礎設施初創公司Ramp Network將拓展拉丁美洲市場:金色財經報道,連接加密貨幣和傳統金融的支付基礎設施的初創公司Ramp Network在巴西開設了一家本地實體,以拓展拉丁美洲市場。該公司將為客戶(包括Web2企業、加密貨幣錢包和Web3游戲)提供軟件開發工具包(SDK),使他們的用戶能夠通過端到端、非托管的方式購買加密貨幣,并提供加密貨幣到法幣的兌換。[2023/7/26 16:00:18]

下面我們來介紹Cosmos,從側鏈開始談起。看左上方的圖,A和B是兩條鏈互為側鏈。也就是說,A鏈包含B鏈的SPV輕客戶端,從而A鏈能驗證B鏈的交易。反過來B鏈也包含A鏈的SPV輕客戶端,從而B鏈能驗證A鏈的交易。互為側鏈的結果是,發行在A鏈和B鏈上的通證可以互轉。如果從兩條鏈擴展到多條鏈,A和B變成A/B/C/D/E/F,一種外推的想法是仍然沿用兩兩互為側鏈的做法,就形成了左下方的結構。但是這樣做會到來很多問題,每條鏈都要內置其他所有鏈的輕客戶端,同步其他所有鏈的區塊頭,這當然是很大的負擔。而且每增加一條鏈,都需要在其他所有鏈上做修改。隨著區塊鏈數量的增加,復雜度以n*(n-1)/2,指數型增長,這顯然是不可行的。解決的辦法就是改成右上方圖片顯示的結構,中間放一個Hub,Hub本是也是區塊鏈,它跟其他所有鏈都互為側鏈。就是說,每條鏈上的通證都可以轉到Hub上,然后通過Hub轉到其他鏈上,網絡互聯的復雜度跟區塊鏈數量是線性關系。這就是Cosmos的做法,在Cosmos的定義里,接入Hub的鏈稱為Zone分區。分區要接入Hub需要兩個條件,第一是符合Cosmos標準協議,即IBC鏈間通信協議。第二是要求Zone具有即時最終性,以確保跨鏈的一致性。而且Cosmos可以支持多個Hub的互聯。對于現存的公鏈,可以通過協議適配接入CosmosHub,Cosmos把協議適配網關稱為PegZone錨定分區。最終形成的結構就是右下方圖片展示的樣子。我們從側鏈出發推演Cosmos架構。但是回過頭來看,Cosmos分區各自承擔交易執行、數據存儲,同時分區之間還能夠互操作,也實現了分片的目標。因此我也把Cosmos看成是分片擴容方案。可能有人對會對這樣分類不贊同。但是沒有關系,Cosmos就是Cosmos,分類是為了更好地理解它。從不同角度理解和闡釋,可以用不同的分類方法,沒有絕對的對和錯。CosmosHub以及其他用CosmosSDK開發的分區都采用Tentermint共識協議,出塊和敲定過程是合一的,只要出塊,就是得到了2/3以上驗證人的簽名驗證。這樣做的好處是簡潔快速,出塊時間可以達到秒級甚至亞秒級,而且具有即時最終性。但是在網絡發生分區的情況下,Tentermint共識有可能暫停出塊。CosmosHub和分區都有各自的驗證人組,不需要驗證人動態隨機分組。那么Cosmos如何保障跨鏈交易有效性呢?根據我的理解,Cosmos回避了這個問題。Hub并不能驗證交易有效性,只能驗證存在性。如果某個分區被惡意驗證人控制,那么用戶在這個分區上的資產是不安全的,可能被盜取。但是這不應該看做是Cosmos的漏洞,而是它的設計選擇。Cosmos經常被拿來跟Polkadot比較,但其實Polkadot與Serenity在架構上更為相似。前幾天橙皮書的文章做了三個村莊的比喻,非常貼切。但是從DApp開發的角度,尤其是今年和明年的重量級DApp開發,主要會從Polkadot和Cosmos二選一。從技術上說,Cosmos要比Polkadot或者Serenity簡單得多。我這里說的簡單并非貶義,在滿足需求的前提下,技術方案應該是越簡單越好。那么Cosmos用相對簡單的方案也實現了分片擴容的目的,不是很好嗎?確實很好,因此我也很看好Cosmos,它會非常適合某些類型的DApp。但是正如我們反復強調的,有所得,必有所失。Cosmos選擇了簡潔,但在安全性上有所犧牲。PoS區塊鏈的安全等級是由總市值和質押比例決定。Polkadot上線之后,假設Dot總市值是10億美元,其中一半質押在網絡上,那么要對Polkadot主網進行雙化攻擊,理論上最少需要1.67億美元,實際需要的會多得多。顯然是一筆巨款,因此Polkadot網絡非常安全,跨鏈交易有很高的安全保障。Cosmos主網上線之后,Atom通證也會很高的市值,但是網絡質押的Atom,只保證CosmosHub的安全。分區和其他Hub會發行自己的通證來建立經濟模型,獲得安全保障。但是分區通常是特定的去中心化應用,其應用規模和市值達不到Cosmos/Polkadot這樣的大平臺的等級。因此可以預期,Cosmos分區的安全等級會低于CosmosHub。你在Cosmos上執行跨鏈交易。需要信任交易的發起分區,目標分區和Hub,如果跨鏈交易中間經過多個Hub,那么經過的每個Hub都要值得信任。一方面是需要信任的區塊鏈變多了,而且其中有些鏈的安全等級可能不高。所以說Cosmos沒有做到信任最小化。安全水平降低了,但是降低之后夠不夠用?也許夠也許不夠,還是因人而異、因應用而異。Cosmos當然了解自身的短板,據說會在未來版本為分區提供安全保障。但是實現難度會很大。要為分區提供安全保障,需要大量的驗證人,只能修改共識協議,把出塊和敲定分開,當然還要處理驗證人隨機動態分組、交易有效性等問題。這一番改動下來,Cosmos和Polkadot的復雜度也就差不多了。十五、對DApp的支持對比

NFT交易平臺NeoSwap AI完成200萬美元融資:金色財經報道,NFT 交易平臺 NeoSwap AI 完成 200 萬美元 Pre-seed 輪融資,估值為 1500 萬美元,DACM 和 AngelHub 領投,Gossamer Capital、Cavalry Asset Management、Stacks Ventures、Dhuna Ventures 和幾位天使投資人跟投。該項目目前支持 Stacks、Solana、Polygon。[2023/2/25 12:28:48]

那么Serenity、Polkadot和Cosmos哪個更適合做DApp開發呢?我們來比較一下。首先DApp開發方式,三個鏈都可以用智能合約。Polkadot和Cosmos帶來了新的DApp開發方式,就是開發特定應用的區塊鏈。Cosmos為應用鏈提供的工具是CosmosSDK,目前支持Go語言開發。Polkadot為應用鏈提供的工具是Substrate,目前支持Rust語言開發。Substrate是完整的應用鏈開發工具,具備完整的應用鏈框架,GavinWood演示了在一臺全新的電腦上,15分鐘發布出一條應用鏈。另外,Substrate所有模塊都可以定制或者替換,功能強大而且非常靈活。相比較而言,CosmosSDK要單薄一些,它主要提供Tendermint共識引擎、IBC鏈接通信協議和通證等核心模塊,大部分上層建筑需要自行開發。關于性能,Serenity每個分片大約是100tps,仍然是優先處理gasprice高的交易。PolkadotHub應該能達到上千tps,平行鏈可以自己決定共識算法、硬件和網絡,理論上說沒有性能限制。CosmosHub和絕大多數分區都采用Tendermint,能夠達到數千tps。關于互操作。Serenity跟以太坊1.0是一樣的,智能合約可以相互調用。Polkadot平行鏈通過Relay與其他平行鏈互操作,通過Bridge與其他鏈互操作。Cosmos分區通過Hub可以互轉通證,通過錨定分區與其他鏈互轉通證。IBC消息也數據字段,就像電子郵件的附件,通過擴展數據字段,分區之間也可以傳遞通證以外的數據。接入方式Serenity跟以太坊1.0相同,開發者自行部署智能合約。PolkadotRelay接入要拍賣插槽,質押數量不菲的DOT。Cosmos與Polkadot類似,是質押Atom拍賣接入資格。然后是安全性,前面說過Serenity的分片就像是標準集裝箱,DApp放進就行了,安全性由系統保障。與之相對的是Cosmos,應用鏈不論是否接入Hub,都是自己保障安全。Substrate開發的應用鏈是兩個選項,要么接入Relay成為平行鏈,由Polkadot保障安全;要么獨立運行,自己保障安全。最后是DApp升級,Serenity和以太坊1.0一樣,不支持智能合約升級。可能很多人對此已經習慣了,但我認為不支持升級是很大的缺陷,而且可能帶來嚴重的安全問題。首先是代碼不可能沒有bug。Solidity等智能合約開發語言對形式化驗證并不友好,即便做形式化驗證,達到100%的邏輯路徑覆蓋也不現實。其次DApp是互聯網應用,互聯網應用應該隨需應變、迭代進化。有人會認為智能合約是約定,所以不能改。其實真實世界的合同,都有經雙方同意可以取消或者修改的條款。想想兩個公司簽了合同,現在雙方都同意修改合同,結果合同本身限制了不可更改,是多么荒謬的情形。更不要扯什么代碼即法律,法律也不是一成不變,可以廢止可以修訂,代碼反而不行,不是很奇怪嗎?結果就是很荒謬,一方面DApp有強烈的升級需求;另一方面平臺不支持升級。于是開發者自己想辦法,用delegateCall等rudimentary的方法,別別扭扭地實現了可升級,還美其名曰可升級設計模式。有了這個辦法,開發者可以不經過用戶同意,甚至在用戶不知情的情況下修改智能合約。那么代碼即法律還有什么意義?用戶怎么才能知道智能合約可升級還是不可升級,哪些邏輯會變哪些不會變?只能自己看代碼。所以難怪以太坊只有這么少的用戶。反正我自己不夠格使用以太坊DApp。fomo3d的合約我研究過,就沒看出來有隨機數漏洞。Parity的多重簽名錢包合約的一個小bug,鎖住了上億美元資金,坑了自己和好多人。如果要透徹研究代碼才能信賴并使用DApp,那全世界的DApp目標用戶,大概也就是數以千計吧。要開發能夠跟中心化互聯網應用競爭的DApp,可升級是必須的。而且必須是平臺支持的規范的升級,不能DApp各顯神通。類比Android平臺,手機App就經常升級,但是用戶必須知情并同意,新版本App增加了權限需求,要顯示給用戶。這些都是平臺控制的,手機App只能遵循不能饒過。DApp的升級應該更加規范也更加嚴格,因為DApp管理的是加密資產,而且沒有可信任的中心。Polkadot和Cosmos都允許應用鏈升級,Cosmos的分區是自己處理升級,Polkadot的平行鏈可以安全升級。Polkadot如何實現平行鏈安全升級,我還沒搞明白。幾周前Gavinwood中國行,講了TrustWormhole可信蟲洞,我也沒太聽懂。誰了解這部分內容希望能指點一下我。總而言之,在去中心化的區塊鏈上,實現規范的安全的應用升級非常困難,但是沒有別的選擇,必須支持升級,而且是平臺保障的規范的安全的升級。我認為在可升級性方面,只有Polkadot的方向選擇是正確的。十六、網絡拓撲比較

尼日利亞央行授予金融科技獨角獸Flutterwave轉換和處理許可證:9月3日消息,尼日利亞金融科技公司Flutterwave表示,最近從尼日利亞央行獲得的轉換和處理許可證使其能夠“為我們的客戶提供更好的體驗”。新許可證允許Flutterwave“促進金融服務提供商、商家、客戶和其他利益相關者之間的交易,將尼日利亞的每一種價值儲存手段與全球商業聯系起來”。此前,Flutterwave在尼日利亞已獲支付服務解決方案提供商(PSSP)和國際匯款運營(IMTO)許可證。盡管這些許可證使Flutterwave得以在尼日利亞合法運營,但據這家金融科技公司表示,使用這些牌照意味著必須與幾家中介機構合作。(Bitcoin.com)[2022/9/3 13:06:31]

下面來談談,Serenity、Polkadot和Cosmos這三個區塊鏈生態在充分發展之后,會形成什么樣的網絡拓撲。注意邏輯網絡,不是物理網絡。另外網絡充分發展需要時間,這里討論的是大概5年后的圖景,有些內容是根據架構設計所做的推測。首先看左側,Serenity網絡像是一個儀仗隊方陣。信標鏈是旗手或者領隊,方隊的每列是一個標準分片。每個分片都可以承載一些DApp。中間的圖是Polkadot。Polkadot網絡是一顆樹,樹根是中繼鏈,可連接多個平行鏈。平行鏈可能是特別業務的應用鏈,也可以是支持智能合約的DApp平臺。另外其他類型的區塊鏈可通過橋接入中繼。分析Polkadot架構可知,由于驗證人數量等限制,單個中繼能支持的平行鏈數量有限。大概是幾十到一百這個量級,很難達到幾百個。當然即便達到幾百,也不能充分實現Web3愿景。所以Polkadot未來會支持中繼級聯。也就是一級中繼接入根中繼,二級中繼接入一級中繼,從而具有無限擴展能力。右側圖是Cosmos。Cosmos的多個Hub可以互聯,每個Hub連接多個分區。還有錨定分區對接其他類型的區塊鏈。Cosmos網絡拓撲與Polkadot粗看上去很像,都是樹形結構。但是Cosmos的Hub和Hub之間,沒有誰向誰提供安全保障的問題,所以沒有層級高低。如果把層級關系看作是連接的方向,那么Polkadot是有向無環圖,Cosmos是則是無向無環圖。其實Cosmos網絡拓撲是可以成環的,應該是為了避免出現跨鏈消息路由選擇問題,選擇了無環的設計。相比較而言,我認為Serenity的增長方式和資源分配有點僵化。系統是自上而下式的增長,通過迭代支持更多的分片。DApp選擇哪個分片上,面臨一些不確定性。例如某個DApp非常成功,它需要的處理能力超出了單一分片的容量上限怎么辦?目前看是沒有辦法。另外,DApp上線的時候你選擇了一個相對空閑的分片。結果同一分片土壤出現特別受歡迎的DApp,那么你的用戶就只能忍受高成本和擁堵。簡單概括就是區塊鏈計算資源做不到對DApp按需分配。Cosmos和Polkadot的增長是自下而上的,不斷有新應用鏈加入,也會有應用鏈退出,資源分配也更加靈活。Cosmos跟另外兩個平臺的最大區別是不共享安全性,一定程度上犧牲了信任最小化,這個在前面已經講過了。這么說Polkadot兼具了共享安全和自下而上式地有機增長,是不是就是最好的?Polkadot確實有這些優點,但是它也有自己的劣勢。最大的問題我認為就是平行鏈的接入門檻會很高。按照目前公布的拍賣計劃,到2020年底,只有24個接入插槽。你如果開發平行鏈,希望明年上線,就要跟全球眾多團隊競爭這24個名額。當然,未來edgeware等智能合約平臺上線后,能夠一定程度上降低DApp門檻。相比之下,在Serenity上部署DApp沒有門檻。Cosmos也會好很多,因為CosmosHub可以支持更多插槽,另外生態系統中會有多個Hub,形成賣方市場競爭。從更大的圖景上看,Serenity、Polkadot和Cosmos互聯是可行的,也一定會發生。EOS等采用DPoS的區塊鏈也都可以連接進來,再加上側鏈等二層網絡,異構區塊鏈的互聯網絡將會形成。十七、辨析「跨鏈」

ETH跌破1200美元,24小時內跌幅3.16%:行情顯示,ETH跌破1200美元,現報1188.00美元,24小時內跌幅達到3.16%,行情波動較大,請做好風險控制。[2022/6/28 1:34:54]

本次分享已經接近尾聲了,我們才開始討論跨鏈概念。原因是我認為「跨鏈」概念有歧義,容易產生誤導。至少我自己被誤導了很長時間。以前看關于Cosmos和Polkadot的材料,都是把它們當作跨鏈方案來介紹。我就想為什么要跨鏈?跨鏈能干什?雖然現在有幾百上千公鏈,但是有幾個有用的?比特幣算一個,有人會加上以太坊/EOS,有人會加上ZCash/Monero,反正也就是三五條吧。就這么幾條有用的鏈,有什么可跨的?感覺就是脫了褲子放屁——多此一舉。所以以前我看到介紹Cosmos和Polkadot的文章,掃一眼標題就過去了,不點進去看。直到去年GavinWood在慕尼黑演示Substrate,我才弄明白Polkadot是分而治之的新一代公鏈架構,是DApp的新形式。從那以后,我才開始關注這個領域。Polkadot和Cosmos設想的區塊鏈未來圖景,不是onechainfitall一鏈打遍天下,也不是onechainrulethemall一鏈君臨天下,而是由眾多異構區塊鏈互鏈形成的網絡。互聯就是區塊鏈之間能夠跨鏈交易,所以跨鏈是異構區塊鏈互聯網的基礎能力。比特幣、以太坊等公鏈加入到區塊鏈互聯網,是成果之一,而不是跨鏈的全部內涵。所以我的看法是,跨鏈概念沒有錯,但是如果理解成為跨而跨,就沒有抓住重點。把異構區塊鏈實現跨鏈交易定義為跨鏈。那么我們來說說什么不是跨鏈,或者說市面上有哪些所謂的跨鏈是在掛羊頭賣狗肉。首先跨鏈必須是參與的兩條或者多條區塊鏈的狀態發生了一致性的改變,都是寫操作。如果一邊是讀,另一邊是寫,或者說是根據一個區塊鏈的數據去修改另一個區塊鏈的狀態,這不叫跨鏈。當然從多個鏈讀數據,更加不是跨鏈。還有一個要求,不但要實現跨鏈交易,而且跨鏈交易應該是去信任的。還是拿Cosmos通證跨鏈轉帳舉例,從A分區經過Hub轉10個通證到B分區,你需要相信A分區、Hub和B分區三個區塊鏈網絡。這三個網絡到底值不值信任呢?你需要自己判斷,如果去中心化程度高,PoS質押通證的總價高,被攻擊的難度大,就值得信任。有些所謂的跨鏈方案,Hub本身不是區塊鏈,而是個網關,那么網關值得信任嗎?答案是不知道,網關是單一實體運營的計算設備。信任網關的前提是信任運營實體。例如我們把錢存在工商銀行,通過支付寶來花錢,也沒什么不妥。阿里和工商銀行都值得信任,所以他們運營的網關也值得信任。但是無論網關是否值得信任,都不屬于我這里所談的跨鏈。我們說的跨鏈,Hub要采用分布式賬本技術,而且是去中心化的運營,從而實現信任最小化。以后再看到所謂的跨鏈項目,可以自行分辨,是不是支持異構區塊鏈的去中心化跨鏈交易。如果不能支持,那么它所說跨鏈跟Cosmos和Polkadot不是同一類概念。十八、下一代DApp開發技術

我個人認為目前已經落地的DApp只有一個,就是比特幣。比特幣是去中心化的價值存儲型貨幣,或者叫數字黃金。因為是價值存儲型的,所以它對性能的要求很低。在未來幾年,去中心化的支付結算型貨幣和交易所很有可能落地。支付結算型貨幣的幣值,應該跟直接或者間接地跟購買力掛鉤。那么現在usdt、tusd、摩根大通幣,以及未來的facebook幣、央行加密法幣,都是中心化的。做不到去信任、無許可和抗審查。閃電網絡和MakerDAO是重要的嘗試,有可能帶來突破。貨幣、借貸、資產發行、資產交易、保險、衍生品…我們離顛覆傳統金融、改變世界也只隔著幾個真正落地的DApp。隨著區塊鏈擴容,基礎設施給力了,DApp就可能迎來真正的爆發。程序員要怎樣才能成為DApp弄潮兒,我們梳理下一代DApp開發技術。注意DApp是互聯網應用。互聯網開發的后端、前端、移動端、瀏覽器、桌面端技術仍然有效,但不在討論范圍之內,我們只談實現去中心化的技術。三個擴容思路,每個都有多種實現,我只列出代表性項目。代議制擴容的代表是EOS和波場。分層擴容分為狀態通道和側鏈兩個分支,狀態通道的方案有CelerNetwork、Counterfactual等,側鏈有Loom、OmiseGo等。分片的三個典型方案,Serenity、Polkadot和Cosmos已經逐一介紹過了。這么看來,下一代DApp開發技術似乎有很多中。其實不是,DApp開發目前只有種,就是智能合約。智能合約有兩個主流的方案,EVM和Wasm。我們列出的項目,基本都支持EVM,現在或者未來會支持Wasm。EVM的主力開發語言是Solidity,圍繞Solidity已經形成生態,包括Truffle/Remix/OpenZepplin等工具、大量的技術資料、實例、社區討論答疑等等,而且也有相當一批程序員會Solidity語言。所以掌握了Solidity,可以確保在大多數公鏈上開發DApp。目前唯一的例外是EOS,EOS不支持EVM,而是一步到位使用wasm。wasm會是未來智能合約開發的標準,可以支持用多種編程語言開發智能合約,包括java\\c++\\go\\rust等等。Cosmos和Polkadot提供了開發DApp的第二種方式,就是開發應用區塊鏈。與智能合約相比,應用鏈的優勢是具有極大的靈活性。開發者可以自行選擇或者定制共識算法、治理模型、經濟模型等等,并根據實際需求配置硬件和網絡。但是另一方面,應用鏈開發、運營的成本會顯著高于智能合約。例如要部署Cosmos的分區鏈,至少需要4臺以上的主機,而且要質押相當數量的Atom通證,才能接入Hub。可以預計,達到一定規模的團隊,才有足夠的資源開發并運營Cosmos或者Polkadot的應用鏈。簡單總結就是:下一代DApp有兩類開發技術,輕量級的智能合約,和重量級的應用鏈。個人或者小型創業團隊會主要使用智能合約。大型企業或者有充裕資源支持的創業項目,會使用應用鏈。還有一種合理的做法是,先用智能合約實現DApp,在獲得驗證和反饋之后,再開發功能更完善、使用體驗更好的應用鏈。十九、開發者如何選擇?

數據:擁有超過100萬美元的比特幣地址數較年初下降21%:5月28日消息,自年初以來,加密貨幣市場出現了下行壓力,導致市值損失近1萬億美元,價值在100萬美元或以上的比特幣(BTC)地址數量也有所下降。根據BitInfoCharts.com的統計數據,截至5月28日,BTC余額超過100萬美元的地址數量為77,936個,其中大約5,856個地址的總余額約為1000萬美元。相比年初,擁有超過100萬美元比特幣的地址下降了21.34%,1月5日擁有百萬美金比特幣的地址為99,092個。[2022/5/29 3:47:57]

后端或者全棧工程師如何選擇DApp開發技術呢?我認為未來的區塊鏈世界會是異構區塊鏈互聯的網絡,多個平臺都有會各自的生存空間,不必輕言誰將取代誰。所以我的建議是:主要考慮當下的條件來選擇技術路線,例如當前可用平臺的能力,團隊成員的技能等等。而不必過于糾結未來的不確定性。如果項目已經啟動,那就沿既定路線繼續走下去。如果還未開始,首先明確是開發公鏈DApp還是開發企業解決方案。如果是開發公鏈DApp,那么是否需要跟現存DApp互操作。如果是,那么應該選擇在現存DApp相同的公鏈上開發。就是說你需要互操作的DApp在以太坊上,你就在以太坊上開發。在EOS上,你就在EOS上開發。有人可能會問,不是可以跨鏈嗎?跨鏈是非常復雜的技術,而且肯定不是免費的。在滿足需求的前提下,實現方案應該盡量簡單。所以能避免跨鏈,當然應該避免。那如果不需要與現有的DApp互操作呢?這里隱含了一個問題是,你的DApp會不會跟未來的DApp互操作?或者別人的DApp會不會要跟你的DApp互操作。舉個例子,你開發一個通證合約,作為公司業務積分系統。如果你們公司的積分使用范圍很大,是不是可以在去中心化交易所進行交易,是不是可以作為資產抵押給貸款DApp?成功的DApp應該盡量融入價值互聯網的大生態。所以DApp互操作不是一個選項,而是DApp的基本需求,只是不一定要跟現存的DApp互操作。下一個問題是:DApp是不是只需要管理加密通證?如果回答是肯定的,應該優先選擇Cosmos,如果回答是否定的,則應該選擇Substrate。為什么呢?我們前面講過,Cosmos能夠實現跨鏈通證轉移,而Polkadot能實現任意形式的DApp互操作。有人可能會說,Polkadot多強大靈活啊。這個我同意,但是大家應該理解,世界是公平的,沒有免費的午餐。強大靈活的代價就是復雜和高成本。Cosmos在架構上比Polkadot要簡單很多。因此我可以有把握地推斷,至少在前期Cosmos會比Polkadot更可靠,而且使用成本更低。所以如果Cosmos滿足需求,就應該選它。如果業務需求超出了加密通證的范疇,可以選擇Substrate。另外前面有個分支,就是開發企業區塊鏈應用,或者說開發聯盟鏈應該選什么?我認為也應該選擇Substrate。為什么不選HyperlegderFabric或者以太坊呢?因為商業公司推動的技術平臺,注定競爭不過主流的開放平臺。至于說用以太坊開發聯盟鏈,我認為靈活性不夠。企業業務通常很復雜,對性能、可管理性等有很高的要求,而且常常需要快速迭代。Substrate是完整的區塊鏈框架,高度模塊化和可定制化。Rust語言側重安全和性能,也非常適合開發關鍵業務系統。二十、Rust語言

做Polkadot/Substrate開發,繞不開的問題是Rust語言。在我二十多年的開發生涯中,遇到過極少數能快速掌握新語言的程序員。但是絕大多數程序員,包括我自己,掌握一門開發語言,熟悉標準庫和開發框架,都需要很長時間。所以學習一門新語言,對我來說,是個艱難的決定。近些年涌現出了很多開發語言,其中Rust語言以學習曲線陡峭而著稱。到底值不值得花大量的時間來學習掌握Rust語言呢?作為一名Rust語言的初學者,我談談自己的看法。首先是Rust語言很棒,但是尚未流行。這不是我個人的看法。2019年StackOverflow的調查顯示,按流行程度排名,Rust只能排在第21名,左邊這張圖只顯示了前16名,所以看不到Rust。另外Tiobe編程語言指數排名,Rust目前排在第34名。再看右邊的圖,在StackOverflow調查最受程序員喜愛的開發語言排行榜上,Rust高居第一。而且這是Rust第連續四年排名第一,考慮到Rust1.0版是2015才發布,可以說Rust正式面世以來,一直是最受程序員喜愛的語言。而且大家知道,一門編程語言,追求高性能,和讓開發者輕松愜意,通常不可兼得。比如Java和Python程序員不需要考慮內存管理,當然降低了學習和開發的負擔,但是系統就要處理垃圾回收,帶來性能上問題。反之,c/c++需要程序員自己管理內存,性能可以達到最優,但是前提是要把程序寫對,增大了開發的難度。但是Rust似乎魚和熊掌兼得,即達到了跟c/c++相同等級的性能,還能受到程序員的喜愛。第二個看法是,Rust語言適合高級程序員開發平臺型的項目。Rust語言非常重視性能和安全,它試圖通過語言規范,或者說編譯器,來引導程序員寫出高效安全的代碼。熟悉了Rust的用法,能自然而然地開發出高性能和高度可靠的系統,不妨稱為Rust之道。Rust之道認為實現某個目的通常有一種最好的方式,Rust試圖在語言級別引導或者強制你采用最好的方式。如果不按照Rust之道來編碼,它就讓你連編譯都通不過。不像Javascript等語言,總是有很多種選擇,可以按自己的習慣,怎么寫都可以。當然代碼質量可能良莠不齊,而且可維護性很差。學習并掌握Rust之道,需要理解一些重要的編程概念,比如對象的所有權等等。沒有堅實的開發經驗,很難掌握。這也就是大家認為Rust語言學習曲線陡峭的原因。如果不是開發對性能和安全要求很高的平臺級項目,用Rust有點殺雞用牛刀。因為項目在性能和安全上的收益,不一定能抵消采用新開發語言導致的成本。如果要開發平臺級系統或者關鍵業務系統,Rust就值得考慮。另外學習Rust語言可以帶動自己加深對內存、線程、異步、閉包、函數式等高級開發概念的理解,對開發能力的提升有莫大好處。所以簡單總結一下,就是如果你有一定的開發經驗,未來可能或者有志于開發平臺型的系統,當然就包括區塊鏈開發,那么Rust語言就值得你投入時間去學習掌握。

我用羅素的名言作為本次分享的結束語——須知參差多態,乃幸福本源。真正理解并欣賞Polkadot和Cosmos設計理念的人,都不會是最大化主義者,也不會認為Polkadot的目標是替代以太坊。至少以太坊基金會和Parity公司都不這么認為。Parity公司一直是以太坊生態的重要支柱之一,他們也在積極參與Serenity開發。前些時候,以太坊基金會向Parity公司支付了500萬美元,即是對Parity多年支持以太坊的感謝,也是資助他們繼續開發維護以太坊節點軟件。我對比特神教已經見怪不怪了,至少我能理解他們為什么那么想那么說。但是現在以太坊生態里,也開始出現以太神教的趨向,就有點不可理喻。開放是以太坊愿景的基礎,以太坊也帶領我們看到了去中心化價值互聯網的可能性。所以我認為支持以太坊,但是反對其他區塊鏈,是一種自相矛盾。

前面也談過,人們對去中心化應用的需求是多樣化的。Serenity、Polkadot、Cosmos和EOS,還有其他DApp平臺公鏈,都做了不一樣的設計選擇,或者說是不同的折中。因此他們會非常適用于某些需求,而不太適用于其他需求。互聯互通是大勢所趨,任何一個生態如果選擇孤立發展,就會被區塊鏈互聯網產生巨大的網絡效應所擠壓,最終被淘汰。因此我們可以期待,區塊鏈的未來會百花齊放,更加參差多態,希望區塊鏈和去中心化應用成為人類的幸福之源。

Tags:cosmosOSMOOSMMOScosmos代幣atom幣Cosmo CoinMEGACOSMevmos幣ieo價格

USDC
圖文還原幣安被盜7,074枚BTC轉移全過程_BTC:SHIELD

全球知名的交易所幣安于05月08日上午發布的公告稱,當天凌晨1時15分,幣安遭到了黑客大規模的系統性攻擊,黑客獲取了大量API密鑰,谷歌驗證2FA碼等信息,一次性提走了7,000枚BTC.

1900/1/1 0:00:00
又一個國家對加密資產釋放善意,ICO合法化之路迎來轉機_區塊鏈:加密貨幣市場行情走勢分析

法國金融市場監督者AutoritédesMarchésFinanciers正在起草監管框架,該框架旨在消除這些創業公司面臨的長期爭論點“銀行業關系”.

1900/1/1 0:00:00
資方高管“空降”FCoin,共識實驗室又出錢又出力_COIN:HollyWoodCoin

編者按:本文來自蜂巢財經NEWS,作者:武旭升,Odaily星球日報經授權轉載。導語:在二級市場豪擲干萬狂掃FT后,共識實驗室委派高管擔任FCoin生態負責人.

1900/1/1 0:00:00
寫給區塊鏈初創者的一封信_區塊鏈:Compound USD Coin

致身為區塊鏈行業開拓者的你:不知不覺從事區塊鏈行業也有些光景了,從2017年的爆發到2018年的平靜,現在已然到了2019年.

1900/1/1 0:00:00
跨鏈天王Cosmos、Polkadot的深層區別_DOT:Polkatrail

關于Cosmos和Polkadot之間的差異一直有很多討論,這兩個項目側重于跨鏈。如果你不熟悉這兩個項目,那么這個推特風暴非常好地對它們進行了解釋,并提供了學習它們的一些資源.

1900/1/1 0:00:00
香港理工大學電子計算學系系主任、IEEE Fellow曹建農:用區塊鏈輔助數據共享需重視四大挑戰 | 鏈上數博_區塊鏈:Saitama Samurai

5月27日,由2019中國國際大數據產業博覽會組委會主辦、中央廣播電視總臺央視財經頻道聯合主辦、中國信息通信研究院承辦、泰爾英福協辦、Odaily星球日報獨家媒體報道的“區塊鏈板塊高端對話——數.

1900/1/1 0:00:00
ads