背景
當我們看到一個區塊鏈項目,不管是新出現的公鏈、合規項目的聯盟鏈,還是很多以公鍊為名,實為管理權私有的區塊鏈。也或當我們看到一個dApp,不管是DeFi、GameFi,或是錢包、NFT 交易平台以及一些混合性質的應用。
你會看到很多花俏的描述或漂亮的設計,極容易讓使用者快速產生好感,甚至於對其產生某種認知的真實性偏離。
但如果想要辨識一個「技術邏輯上」的優質項目,必須要拋開表像看本質,需要清晰的了解它是如何構成?如何搭建?誰在控制? ,因為產業內的項目都會利用表象烘托出一個藍圖來支撐二級價格與市值,在沒有技術辨別能力的情況下,跌入泡沫的幾率便會增加。
想要找到這個問題的答案,需要利用標準的技術思維拆解區塊鏈與dApp,就像了解病理才能找到病灶一樣,具備對專案庖丁解牛的能力。本文將提供對鍊和dApp 拆解的基本邏輯(非商業邏輯),可在此邏輯之上疊加其他因素輔助判斷。
定義
首先我們要了解計算資源、區塊鏈、應用之間的關係。
我們常聽過這樣的描述,如,區塊鍊是去中心化的,以太坊是世界計算機,在以太坊上搭建的應用叫dApp。這些描述代表了:區塊鍊是底層,應用是上層。
從技術邏輯上理解,應用在搭建時需要計算和存儲,區塊鏈可為應用提供一個環境,這個環境中有計算和存儲能力。
而我們將微觀的技術分層邏輯映射到整個互聯網中時,從這個角度推論可以得到:
互聯網底層為互聯網基礎設施,即提供運算資源的一層,上層則是我們生活常見的各類如互聯網平台一樣的應用。
在網路的基礎設施自雲服務大規模發展之後,雲端服務已成為主流,近乎可以取代整個網路基礎設施。
所以,這代表了,互聯網的結構可以理解為:雲+ 應用程式。
由此,將上面兩個結構推論綜合對比,可以得到:
區塊鍊網路具備和雲端服務一樣的能力,提供應用部署的環境。
包含關係
建立區塊鍊網絡是需要底層運算資源的,目前,產業中的區塊鏈並非完全使用自建的資源組成網絡,大部分會使用雲,這意味著雲服務也是區塊鍊網絡更底層的資源層基礎設施,那區塊鍊網絡也成為了根植在網絡中的新組成部分。
綜上,我們可以定義如下:
區塊鍊網絡=新的「雲端服務(分散式)」
區塊鏈上的應用程式dApp=新「雲環境」下的新應用
基於目前區塊鏈仍根植在網絡基礎設施上的因素,我們再次進行某些關鍵佐證的列舉,包含:
運算資源(即便是實體機)也需連接網路通訊網絡
許多區塊鍊網絡都在雲端伺服器中開啟虛擬機器部署節點
部署節點後需要對雲資源進行管理
仍需要在硬件或云服務的操作系統上部署節點軟件
需要依賴雲端服務開發Web 或M 站做前端
訪問鏈時依舊使用互聯網開發應用的遠端呼叫方式
以上這些因素都讓區塊鏈以及區塊鍊網絡必然成為瞭如今互聯網上的一小部分,而非替代,因為這不是如硬件升級一樣的革命,而是一種新的技術模式與互聯網組成了新的具有分佈式特性的部分,將吸引新的應用和商業形態在該技術結構上紮根、生長。
詳細拆解和對比
基於以上的基礎理論,我們再來對區塊鍊和dApp 進行解構。
首先對區塊鏈進行分類:
公鏈
聯盟鏈
開放聯盟鏈
無幣公鏈
然後我們會把這幾類鏈再分類為:
授權鏈
非授權鏈
也就代表著,如果鏈有許可的要求,就必然存在獲得許可的過程,在相應的許可申請流程裡,一定會提供申請人的信息。授權的過程代表了KYC(know you custmer),在某些特定的官方( 例如金融機構、法定實名身分) 要求下,可能還會有更複雜的設計。
許可的過程一定會設計在產品上,所以,在產品模式設計上,許可鍊和非許可鏈在使用上也會分為兩種形式:
第一:取得許可,然後進行相關技術操作。
第二:無需獲得許可,直接透過相應開放工具,直接進行技術操作。
這是目前加入所有區塊鏈的兩種形式,我們具體來體驗這兩種形式。以開發dApp 和搭建節點接取網路兩個常用行為來舉例:
當我們的目標是開發一個dApp 時
開發一個dApp,最終是為了給用戶使用,所以應用軟件的基礎開發步驟不變,依舊是前端給用戶操作,後端控制數據,而區塊鏈上的dApp 實則是把後端變成了鏈,應用開發團隊建立一個前端,每當需要呼叫「後端」時,就是透過遠端呼叫連接埠直接存取鏈上部署的對應合約和鏈上資料。
在這個過程中,許可鍊和非許可鏈基於連結入部分會產生區分。
在許可鏈上,第一步需要取得區塊鏈的存取許可。
以開放聯盟鏈這個類別舉例。首先,一般需在官方門戶註冊,註冊完成後,進入門戶,需要在門戶得到一個相應區塊鏈的鏈地址,然後通過法幣購買鏈gas,向使用的鏈地址中充值gas。
完成後可使用相應的鏈地址帳戶在錢包工具幫助下連接網絡,使用對應的工具部署合約,使用SDK 開發與鏈上的調用部分,並與前端的開發關聯到一起。如果從開放聯盟鏈更換成聯盟鍊或私有鏈,唯一可能需要變更的部分,可能在於如何使用鏈帳戶的部分。
以上即可完成在許可鏈中完成dApp 的開發。
如果在非許可鏈上,該如何操作?
在以太幣中,我們會直接使用鏈的錢包產生一個新地址,然後在平台購買ETH,將ETH 轉入該地址,其他公鏈選擇購買其他gas 代幣即可。
接下來,在以太坊上,可以使用Remix 或其他IDE 就可以先編寫代碼、再編譯代碼,隨即向鏈上部署合約,類似Remix 這一類的IDE 都有支援的相應網絡、語言以及錢包,訪問相對應的網絡簡易方便。 dApp 還需要開發客戶端頁面,大部分前端會透過喚起錢包來存取鏈進行相關操作。
在這個使用過程中我們可以發現的是,無論是開發工具、還是鏈的RPC、錢包或使用IDE 等部分,都會使用開源工具,開放平台,幾乎不需要認證和許可,這也代表了非許可鏈最大的特點:公共和開放。
這是在非許可鏈上開發dApp 的過程。
當我們實踐的過程中還會明顯發現,除了取得許可部分外,後期在鏈的部分,因為開源工具和開放特性,開發與鏈相關的流程會有一定通用性。
當我們的目標是加入區塊鏈時
開發應用是加入區塊鏈的普通形式,而這個形式目標是開發應用。更高一層的方式是接入區塊鏈,成為鏈的一部分,為外部需求提供資源,同樣在不同的鏈上,獲得許可上有很大的不同。
在非許可鏈中,成為節點的時候,一般會對不同功能的節點有區分和要求,例如要求硬件的算力、儲存空間等,不同要求是為了執行不同任務。
當以太坊還在1.0 階段時,參與挖礦就是以節點身分加入,其完成的是使用硬體的運算能力參與PoW 運算以對網路總狀態進行驗證和儲存。此時要求GPU 能力,而在以太坊進入2.0 後,硬件需求下降,但會選擇執行客戶端和驗證客戶端,不同客戶端執行不同的網絡需求。
以節點身份加入網絡代表的是鏈的決策能力的提高,而一般開發應用因成本問題是不會選擇搭建節點的。
在以太坊這樣全匿名的、有原生代幣的公鏈上,只要滿足硬件要求,不需要進行入網身份的許可,使用的全程依舊可以匿名。
相較於以太坊的節點加入過程,許可鏈的節點加入,只會多一個驗證節點許可的過程,但也許會因自建節點對用戶體驗更有益的原因而為。目前有部分許可鏈會透過這樣的方式來實現基礎設施業務的再分配。
評判要素
在加密貨幣的行業裡,大部分從業者也許會把區塊鍊和加密貨幣混淆為一談,但如果把加密貨幣僅作為區塊鏈大行業的一部分後,對比全球存在所有區塊鏈,我們是可以對多種細分特性的區塊鏈進行開放程度評判的,基於以下兩個要素的程度高低大小可以進行區分:
要素為:
資料開放程度
權限許可
將兩個評判要素的階段繼續詳細拆分為:
資料開放:
數據完全公開
數據選擇性公開
數據不公開
權限開放:
完全開放
匿名開放業務節點
實名開放驗證節點
實名開放業務節點
僅對授權成員開放驗證節點接入
僅對許可成員開放業務接入
當透過這樣詳細的區分後會發現,即便是在倡導全部去中心化的加密貨幣產業裡,也許存在著許多權限並不開放的鍊和應用。尤其是如今為了篩選空投用戶,大部分鍊和應用窮其所能將鏈上用戶分級,幾乎違反無需許可的原則。
一個鍊或平台究竟對外處於一個什麼樣的開放程度,在市場發展規則的推動下,越開放意味著更大的規模預期,而在技術上看,越開放普世化越高,在底層規則上就要配合更廣泛的兼容適應能力。
這也直接關聯一個區塊鏈與dApp 在業務和對外表現的原則性。例如當一個鏈對驗證節點的加入沒有限制,那就意味著加入後要用規則實現其長久持續的為網絡服務,這也是為什麼公鏈會推行挖礦和代幣激勵。保證開放同時也必然要在規則內解決作惡與穩定性問題。
以上,就是在對區塊鍊和dApp 進行拆解判定最基礎的邏輯,並不涉及因為業務場景而為應用和鏈帶來的不同,Crypto 有牛熊,區塊鏈技術沒有牛熊。