撥開重重迷霧挖掘新公鏈

隨著行業發展,新公鏈逐漸進入大家的視野裡,新公鏈的市場競爭也越發激烈,但仍然有很多人不了解新公鏈的真面目。技術的進步,使互聯網產業也進入高速增長期,越來越接近互聯網的極限,並逐漸開始互聯網底層架構的短板,而伴隨著互聯網產生的就是信息安全危機,要想解決這類問題就需要說到新公鏈,新公鏈可以免許可無主導佔據的擁有屬於自己的網站、域名,自帶密碼安全業界頂級的安全屬性,實現完全隔斷個人信息洩露等問題。

新公鏈將承載龐大的人類數據,極大降低信息成本,提高商業效率,是一個顛覆現有商業模式,改變商業遊戲規則的偉大創新。談起移動互聯網,大家都親切地稱之為新一代互聯網革命,史無前例地改造了現代人們的生活方式,徹底顛覆了我們的認知。但是我們撥開這些高大上的外衣,從本質上看一下什麼是移動互聯網,無非就是起源於兩個簡單地不能再簡單的進步,都談不上什麼技術創新,其一就是計算機便攜化,也就是將電腦微型化,手機化,可以隨身攜帶。其二就是無線網絡帶寬逐步增加,從GPRS 到3G 4G 5G 等數據傳輸的速度和容量都極大增加。但是僅僅看這兩個簡單的進步,你很難想像它們帶來了多大的變革,甚至向回推個幾年,站在當時的人的角度,能想像到今天連小商小販都接入到移動互聯網支付的場景嗎。這就是概念的價值,概念幫助我們通過現有的技術發展,來展望未來,來引導現在的資本,資源去流向這些領域,並腳踏實地的創造出我們所理想的世界。

但是新概念也是兩面性的,幣圈有著大量包裹著新概念外殼的騙局,加上主流媒體的推波助瀾,以及萬眾創業帶來的各種不靠譜的商業模式,讓人們對幣圈以及對互聯網創新天生就帶上有色眼鏡,第一反應就是騙局,就是為了套投資人的錢,然後套現跑路。但是如果拒絕某些新概念,就可能錯過一個風口,錯過一個時代。因此一味地聽信新概念和一味地拒絕新概念都是不可取的。我們能做的,就是撥開重重迷霧,看清新概念的本質,找到新概念的理論基石,用自己的知識儲備和理性思考去判斷新概念究竟是否可行,如何實現,有哪些阻礙,應該如何克服。

未來新公鏈的特性

上文提到,所有高大上的新概念,都可以被剝離成一個或多個看起來非常小或者簡單的技術進步,這些進步要么是創造性的,要么是規模性的,在創造性上,新公鏈可以重拾最早的比特幣技術路線並加以全面改進,在規模性上,主要在其他方面的基礎設施得到完備,為這種新概念的生長提供了土壤。

而奠定新公鏈的基石,使新公鏈的發展成為的前提,我們需要先解釋其他幾個方面的發展。首先是比特幣,一個基於穩定的共識體系運行了十餘年的POW 分佈式賬本,一個堅如磐石的去信任工具,一個提供點對點價值流通的網絡。其次是存儲成本在降低,現在隨便一個手機就能達到上百G 甚至上T 的容量,大型的數據中心存儲數據容量少說都是按PB 為單位來計算的。再次就是網絡傳輸的速率也在飛速提升,移動互聯網已經開始商用5G,而有線互聯網也全面普及光纖,各大洲之間的骨幹網絡也在拓寬。這些基礎設施的發展,可以使新公鏈更上一層樓。

我用白話的方式來解讀我的理解——未來的新公鏈的特性

  1. 全網免許可,沒有人可以主導整個網絡,沒有人有權利佔據和分配域名,ip這些資源,每個人都可以擁有自己的網站,擁有自己的域名,不需要任何人許可。

  2. 網絡上的內容和使用記錄都是永久保存的,整個網絡的所有歷史都被備份了下來,不存在某個商家或某個公司倒閉而丟失數據的情形,而在這個網絡上,作惡的記錄也會永久地保存。

  3. 該網絡跨洲跨界跨平台,無論你用的是怎樣的終端設備,無論用的怎樣的網絡協議(ipv4 還是ipv6 亦或是自定義協議),無論你用的是哪家公司的應用app,無論你是哪個商家的用戶,大家都在同一個生態環境下運行。各個大商業體要實現數據共享,跨平台合作也非常容易。

  4. 該網絡自帶密碼安全業界頂級的安全屬性,網絡原生就支持身份認證,權限管理,無需單獨實現安全通訊協議。

  5. 該網絡原生支持價值傳遞。你可以不受約束地將價值(錢或者等值的資產token)通過網絡直接傳輸給網絡中的任意一個個體,沒有中介,也不需要單獨打造一套支付系統。這種價值傳遞的摩擦非常小,以至於極端微型的價值傳遞都是可能的,你可以做到向100 萬人提供服務,卻每人只收取1分錢。

  6. 該網絡是一個開放全球雲操作系統,每個人都可以在這個操作系統上進行登錄和操作,甚至執行代碼,每個人都可以自由地以各種方式來與網絡中的其他人交互。每個操作都是公開,可信且帶有永久的日誌備份的。

上面幾點就是根據我的理解,對未來公鏈應有的特點進行的說明,當然,我的理解一定是片面的,未來一定有我還沒有想到的特性被發掘出來。就像沒人能夠想到,手機網速快了點,怎麼就催生了短視頻這麼大的產業一樣。

剛才那些描述,其實沒有提到比特幣,因為比特幣只是新公鏈鑑權協議所使用的一個基礎層,或者一個工具,如果對比特幣的特性沒有概念或從未有過認知,那麼看我剛才的描述,簡直就是天方夜譚,這與現在我們日常接觸和使用的因特網有巨大的差異,上面的功能沒有一個是現代的互聯網自帶的屬性,都需要藉助互聯網上層的應用來實現,正是這種各自為營的實現,才讓現在的互聯網實質在退化成一個個的信息孤島,各大互聯網廠家已經把資源和標準劃分的差不多了,而各個大廠生態之間也很難進行互通。就以一個支付為例,互聯網沒有公鏈的支付屬性,所以在互聯網上發展出來的支付一定是五花八門,各自掌管著自己的生態,生態之間阻礙極高。典型的如國內的微信支付寶,美國的paypal,日本的line 和paypay,各自佔據自己領先的市場,而支付市場是一個具有馬太效應,強者恆強最後一統天下的市場,只有在原生支付公鏈中才可能實現市場的統一。

結合前面的分析,這裡用四個字來概括新公鏈的競爭核心之一:數據上鍊。

大家可能會好奇數據上鍊有什麼用,而創新的特點就是這樣,表現出來的本質或者實質及其簡單,但是內部的信息量極大,從中衍生出來的可能和場景具有更大的信息量。像上鍊,上什麼鏈,成本怎樣,性能怎樣,安全性怎樣,如何具備可拓展性,如何索引並找到數據,如何避免垃圾信息和DDOS,數據之間如何交互,如何面對法制和監管等等這一系列的信息,每一個都值得專門寫一篇文章來論述。但我認為,如需使用新公鏈作為鏈上存儲媒介,就應該提出一個能有效解決上面的所有問題的方案。

新公鏈的競爭核心應該是數據全上鍊的競爭

MVC 將開啟數據上鍊的新公鏈革命

使用鏈上儲存時,存儲的媒介是一筆交易,因此在解釋MVC 鑑權協議的時候,我們將一個交易稱為一個節點(原文翻譯是節點,這個節點和我們的挖礦全節點或spv 節點是無關的,這裡的節點只是為了描述拓撲結構而命名的一個node,所以為了不帶來混淆,有的翻譯也將節點換做頂點)。而表示兩個交易之間關係的數據結構被稱為”邊“。由”頂點“和”邊“可以組成一副圖。比如三角形,就是3個頂點三條邊組成的一個圖形。而在MVC 中,一個交易自己是一個頂點,同時也規定的自己的邊。

每個頂點擁有一個自己的MVC 鑑權協議公鑰(或MVC 鑑權協議地址),這個公鑰是用來標記一個特定的MVC 公鏈的數據資源。有朋友這裡會問,不是一筆交易代表一個數據資源嗎,沒錯,一筆交易代表的是”某個版本“的一個資源,而公鑰代表的是這個資源本身。換句話說,在MVC 上,代表一個資源,一張圖的是公鑰(或地址),而交易則代表這個資源的版本。這個公鑰雖然可以隨意指定,但是要注意,這個公鑰還代表了這個資源所擁有的權限,後文會講到。

新公鏈的競爭核心應該是數據全上鍊的競爭然後來看交易格式:MVC 鑑權協議交易是一個OP_RETURN 交易,在OP_RETURN 中的第一個數據是一個四字節的固定字符”mvc“,用來標記這是一筆MVC 交易。第二個數據是代表這個數據資源的公鑰(圖中的Pnode),用來代表這個資源本身,公鑰的作用是用來控制權限。然後就是其父頂點的TXhash(圖中的TXIDparent),用來標識父子關係,如果此字段為空,則該點就是根節點。之後就是可以自由定義的數據體,這個數據體可以以bit 協議的自定義地址開頭,讓這個數據變成bit 協議下的數據,也就是說,通過這種方式,給Unwriter 大神的bit 協議套上一個外殼,使數據帶有MVC 鑑權協議的層級關係和權限關係,內部可以繼續實現bit 協議。

新公鏈的競爭核心應該是數據全上鍊的競爭

剛才提到,OP_RETURN 的第三個數據是其父節點的TXhash,也就是通過這個數據可以找到由誰產生的這個數據。雖然這個數據是寫在子節點的,但是不能亂寫,如果沒有父節點的權限,產生的子節點是非法的,那如何確定子節點是否真的由合法的父節點產生的呢,這就要用到比特幣本身的公鑰系統。子節點標註了父節點的hash,通過hash可以找到父節點的MVC 鑑權協議交易,父節點交易中必然帶有父節點用來證明身份的公鑰(Pparent),而MVC要求,只有子節點的輸入input 中帶有父節點的公鑰以及簽名,那麼子節點才被認為是父節點產生的。換句話說,只有父節點才有權產生子節點,這個權限由比特幣的簽名系統來保證。這也就是上圖中input 裡的。

總結一下MVC 鑑權協議的交易格式。一個交易代表一個數據體節點,同時記錄了該節點的父節點,並用交易input 簽名來證明父節點和子節點的親子關係是合法的。因此MVC 鑑權協議交易有幾個必要的要素,input 中的,OP_RETURN 中的”meta“ 標誌,Pnode 以及TXIDparent 這5個要素構成了MVC 鑑權協議交易。

這個交易的格式可以說非常簡單,但這就是MVC 強大的地方,大道至簡,簡單而優雅地結合了OPRETURN 存儲數據的靈活性和比特幣自身的權限校驗功能,充分結合了這兩種機制的優越性,並使用比特幣網絡來作為安全和信用背書。我之前有想過只用bit協議來管理權限,但是都沒有MVC 想的這麼優雅和簡單。

在這種交易格式下,我們可以抽像出以下的特點:

  1. 一個子節點只能有最多一個父節點(如果有多個父節點則拓撲結構會變成環形,複雜度增加)
  2. 一個父節點可以產生無數多個子節點,而且只有擁有父節點Pnode 的私鑰,可以正確生成子節點
  3. Pnode 公鑰代表一個鏈上資源,而交易hash(TXID)則代表它的版本,通過Pnode 加上TXID 可以唯一的確定一個資源
  4. 如果兩個交易的Pnode 相同,說明這兩個交易是同一個資源的不同的版本,以最新版本為準。最新版本的定義是工作量最大(簡單理解就是高度越高)或者同一個區塊(內存池)中的拓撲排序(TTOR,BCH 搞不了這個)
  5. 權限控制是通過父節點來指定子節點的特性,而子節點也可以指定孫節點的特性,證明權限的方法就是input 中的簽名
  6. 構造鍊式權限結構的時候不要求使用特定的UTXO,只要input 帶有父節點的簽名即可。比如可以增加其他輸入來付款,付款地址不一定是父節點的UTXO,二者沒有關係,付款用的input 只用來付款,而父節點的地址用來鑑權

現在我們了解了MVC 鏈上的數據結構和形態,以及基本的特點,之後我們討論一下傳統互聯網所具備的域名,url,搜索等功能是如何在MVC 上實現的。如果沒有這些功能,我們使用互聯網也很難找到網上的數據,因為ip 地址對人類而言是不可讀的,因此才產生了域名系統,也就讓不同含義的域名產生了價格。現實中互聯網分配域名的權利是掌管在ICANN 以及其下的各種域名商手中。

MVC 鑑權協議要進入日常的使用,一定也要設計出這種人類友好的域名系統。但是與互聯網不同的是,MVC 鑑權協議沒有Ip 地址的概念,MVC 鑑權協議是跨平台的,只有地址和交易的概念。這裡說個題外話,就是開頭所提到的問題,MVC 並不是運行在互聯網之上的,MVC 與互聯網從概念上就是兩種不同的組成形態,MVC 鑑權協議是點對點的,只有地址的概念沒有ip(其實ip 也是地址的一種,只不過因為數量太有限或因為由電信供應商所控制,而ip 不是獨占的是複用的,從這個角度講,ip 是地址的一個子集)的概念。因此MVC 的域名就只能從地址本身入手,因為不會存在一個中心化的單點的域名分配機構來分配域名(可能有一些自發實現的bit 協議來試圖分配域名映射,但是想達到壟斷和通用很難)。

比如一個網站,按照MVC 鑑權協議的樹狀結構,應該有一個節點作為根節點,這個根節點需要一個公鑰或地址作為自己的標誌。如果我們將根節點的地址作為網站的入口,那就需要在瀏覽器中輸入根節點的地址作為域名。但是地址本身不可閱讀,引入域名系統又帶來單點問題。 MVC 對此給出的對策就是榮耀地址(vanity address),俗稱靚號地址。對於大家都想要的資源,最簡單高效的分配方式就是POW,工作量證明。去窮舉私鑰,找到一個靚號地址,通過自身花費的工作量,來自然獲得域名,是最公平也是最終極的解決方法。比如我窮舉出來一個地址

1GoogleComXXXXXXXXXXXXXXX,通過前綴1GoogleCom來作為域名定位網站是最簡單的。這裡有朋友會問,如果兩個人都窮舉出一樣的地址前綴呢,這個沒關係,還可以通過後綴來識別網站,比如大家都知道真谷歌地址的後綴是XXXXXXXXXXXXXXX,如果有人窮舉出一個

1GoogleComYYYYYYYYYYYYYYY的地址,雖然這兩個地址都可以通過域名1GoogleCom來搜索到,但是大家都信任後綴是XXXXXXXXXXXXXXX 的谷歌地址。

這樣來自己挖掘域名的方法很符合比特幣的免許可的特點。自己付出工作量,通過窮舉來獲得靚號,不需要一個中心註冊機構來發放和管理域名。同時比特幣地址域名本身自帶證書,不需要https 這樣麻煩的證書交換過程(網站上的內容絕對可信,因為沒有根節點私鑰是沒辦法修改網站的)。

域名搞定了,就是URL,如何定位一個鏈上網站的某個頁面下的某個圖片?傳統互聯網使用被稱為統一資源定位符的URL 來定位資源。 URL也是樹狀層級結構的,比如我的知乎主頁:

https://www.zhihu.com/people/hqm-84/activities,可以看做一個個文件夾結構下的資源。 https 是協議,zhihu.com 是域名,然後根目錄下有people 文件夾用於表示用戶,其下有hqm-84 目錄代表我這個用戶,然後是activities 文件夾表示我的動態。

通過我們剛才的分析,其實大家已經發現了,MVC 鑑權協議最開始的設計就是層級結構,也就是一個個節點之間自然而然地構成了一個資源定位的功能。只要給每個節點加一個別名,那自然就可以構造出一模一樣的資源定位架構。這就被稱為MVC URL。它也有個前綴,類似http,只不過稱為mnp(MVC Protocol),mnp://domainname/path/file。

這裡還要提一點,與傳統url 不同的是,傳統互聯網的父子路徑之間的管理是完全交由網站進行自定義的,而MVC 鑑權協議父子節點之間自帶權限控制關係,並且這個權限可以進行拆分。拿剛才我的知乎主頁這個例子,zhihu.com 和people 兩個節點可以是知乎的網站所屬的節點,而hqm-84 這個節點完全可以指定成我自己控制的地址,只有我可以修改下面的路徑,知乎無權修改我這個節點下屬的全部資源,可以做到讓用戶真正地擁有自己的數據。

總結

MVC 鑑權協議說複雜可以很複雜,說簡單也可以很簡單,就是定義瞭如何在鏈上存數據,以及讓數據之間相互關聯。

結合上面的MVC 鑑權協議介紹和現在數據上鍊的痛點,我們可以想像一下如何用MVC 鑑權協議架構改造bitpaste,讓它對作者和讀者都更好用。首先,弄一個域名1bitpasteXXXXXXXXX來作為根節點,然後建立一個user 的子節點,然後再其下建立多個用戶的賬戶節點,這些節點的地址是每個用戶自己的地址(可以通過xpub 導出一個地址) ,然後只有用戶自己(擁有私鑰)才可以修改這個賬戶節點下屬的資源。那麼在一個特定的賬戶節點下有兩個文件夾,一個稱為purchase,一個稱為artifact,用來存儲購買記錄和創作記錄,然後在用戶每次付費購買新文章後,purchase下創建一個新子節點,用於付費及存儲購買記錄,而用戶每次發布新文章之後,在artifact 目錄下創建一個新子節點,用於存放用戶的文章,只有擁有賬戶節點(私鑰)的用戶可以合法創建文章。用戶也可以修改自己的文章,或者刪除文章。

經過上述改造後的bitpaste 就很好用了,用戶用助記詞進行本地登錄之後,可以訪問到purchase 目錄下自己的所有購買記錄,也可以訪問artifact 目錄下,自己的全部創作歷史,通過MVC 鑑權協議的強關聯性解決了前文提到的離散數據的痛點。同時帶來了權限管理和用戶自己掌控數據的優勢。

原文鏈接