基于區(qū)塊鏈的應(yīng)用程序“DApp”介紹
對于一些人來說,區(qū)塊鏈已成為一種被過度炒作的技術(shù)和流行語,它與錯失百萬富翁的機(jī)會有關(guān),或者與那些在廚房里喋喋不休的談?wù)撍鼘⑷绾胃淖兪澜绲耐掠嘘P(guān)?;趨^(qū)塊鏈的應(yīng)用程序非常重要,因為它們解決了現(xiàn)在企業(yè)和最終用戶面臨的問題:隱私、數(shù)據(jù)安全性以及與之共享數(shù)據(jù)的人員。
關(guān)于區(qū)塊鏈技術(shù)的一個普遍誤解是,它意味著要取代傳統(tǒng)貨幣,雖然這可能是少數(shù)人的目標(biāo),但它只是區(qū)塊鏈應(yīng)用的一個用例。
什么是DApps?DApps是分散式應(yīng)用程序的縮寫。這些應(yīng)用程序?qū)嶋H上不應(yīng)該對最終用戶進(jìn)行區(qū)分。關(guān)于DApps的重要之處在于后端是如何處理數(shù)據(jù)的。
DApps在區(qū)塊鏈上運(yùn)行,其中最著名的區(qū)塊鏈之一是以太坊網(wǎng)絡(luò)。這允許開發(fā)人員構(gòu)建自己的應(yīng)用程序,甚至在他們之上創(chuàng)建自己的區(qū)塊鏈代幣(這些代幣可用于通過ICO籌集資金,或作為貨幣支付維護(hù)網(wǎng)絡(luò)的人)。
要將應(yīng)用程序視為DApp,必須滿足幾個要求:
◆應(yīng)用程序是開源的,這意味著代碼是公開可見的,開發(fā)人員可以創(chuàng)建分支或編輯代碼。
◆應(yīng)用程序的數(shù)據(jù)不是托管在本地(內(nèi)部部署)或獨(dú)立的云服務(wù)器上,而是在安全的計算機(jī)網(wǎng)絡(luò)上分散運(yùn)行,這些計算機(jī)可以由云服務(wù)器和運(yùn)行該軟件的單個PC組成。
◆應(yīng)用程序具有數(shù)量有限的區(qū)塊鏈代幣(例如以太幣是以太坊網(wǎng)絡(luò)的代幣)。這需要一對加密密鑰來簽署交易,以便將數(shù)據(jù)存儲在區(qū)塊鏈中。
它是如何工作的?從各方面來看,DApps不應(yīng)該都被認(rèn)為是應(yīng)用程序。它們可以是網(wǎng)頁、桌面應(yīng)用程序或移動應(yīng)用程序,只需像任何其他應(yīng)用程序一樣運(yùn)行就可以。應(yīng)用程序的數(shù)據(jù)不托管在本地或云服務(wù)器上,而是托管維護(hù)相同分類帳的節(jié)點(diǎn)網(wǎng)絡(luò),也就是一個區(qū)塊鏈網(wǎng)絡(luò)。不幸的是,為了正確解釋DApps如何工作,它意味著深入研究區(qū)塊鏈的功能。對于那些不是技術(shù)背景的人來說,這很快就會變得深奧。
因此,在解釋這是如何工作的過程中,不會過度技術(shù)化。
區(qū)塊鏈?zhǔn)且环N點(diǎn)對點(diǎn)網(wǎng)絡(luò),其目的是維護(hù)一個記錄數(shù)據(jù)的開放式分類賬,可以將其視為電子表格。在每個節(jié)點(diǎn)上的網(wǎng)絡(luò)中存在相同的分類帳副本,這意味著同一分類帳有數(shù)千個副本(任何兼容的計算機(jī)都可以運(yùn)行該軟件并成為節(jié)點(diǎn))。這就是不可變性的來源,所有節(jié)點(diǎn)的分類賬必須相同。如果一個分類帳存在差異,則該記錄將失效。
為了獲得有關(guān)節(jié)點(diǎn)的信息,大多數(shù)情況下,礦工將驗證交易,然后將其發(fā)送到網(wǎng)絡(luò)。這可能是資源密集型過程,需要大量的計算能力,因此礦工由發(fā)起交易的用戶為其努力支付代幣。出于這個原因,DApps要求用戶擁有一個錢包,其中包含與該特定區(qū)塊鏈相關(guān)的代幣。例如,在以太坊網(wǎng)絡(luò)上運(yùn)行的DApp通常會使用以太幣。
這是對區(qū)塊鏈的過度簡化,并且有許多不同的區(qū)塊鏈可以以不同的方式工作(只要它們遵守上面提到的規(guī)則:開源、用區(qū)塊鏈代幣分散)。
有什么好處?要理解為什么人們對DApps感到興奮,首先讓我們來研究一些應(yīng)用程序如何工作的問題。例如,一個社交網(wǎng)絡(luò),數(shù)百萬人正在與該網(wǎng)站進(jìn)行交互,并且為了讓用戶看到其他用戶的評論、帖子、喜歡等,必須將數(shù)據(jù)保存在網(wǎng)絡(luò)上的某個地方,以便可以保留此操作。沒有人想讓自己發(fā)表的評論消失。因此,這些交互都存儲在集中式服務(wù)器上,站點(diǎn)所有者和主機(jī)負(fù)責(zé)保護(hù)、備份和管理該數(shù)據(jù)的傳播。維護(hù)服務(wù)器的成本很高。他們需要硬件、員工、電力等。由于很多網(wǎng)站對最終用戶免費(fèi),企業(yè)可能會向廣告商開放你的數(shù)據(jù),然后廣告商可以用他們的產(chǎn)品定位你,這樣網(wǎng)站就可以支付成本。
在DApp中,沒有存儲數(shù)據(jù)的集中式服務(wù)器。相反,它被保存到區(qū)塊鏈中。這樣,就沒有任何組織負(fù)責(zé)保護(hù)最終用戶數(shù)據(jù)。沒有組織需要支付員工工資、維護(hù)服務(wù)器或其他管理費(fèi)用。由于沒有涉及運(yùn)營網(wǎng)絡(luò)的組織,因此銷售用戶數(shù)據(jù)以降低成本的動機(jī)就少了。由于數(shù)據(jù)存儲在區(qū)塊鏈中,因此非常安全。
通常,區(qū)塊鏈需要超過51%的網(wǎng)絡(luò)受到同時攻擊才能影響存儲在分類賬上的數(shù)據(jù),這不僅操作起來很復(fù)雜,而且也會劃不來。
如前所述,為了滿足要求,DApps必須是開源的,這意味著任何人都可以檢查代碼以查看應(yīng)用程序的功能。這提供了傳統(tǒng)應(yīng)用程序通常不會提供的透明度。
有哪些障礙?DApps并非沒有缺點(diǎn)。首先,需要有足夠數(shù)量的節(jié)點(diǎn)在網(wǎng)絡(luò)上運(yùn)行。因此,如果平臺建立在一個小區(qū)塊鏈上,有時大多數(shù)這些節(jié)點(diǎn)實際上是由創(chuàng)建者操作的,所以實際上這并不是分散的。
大多數(shù)基于區(qū)塊鏈的DApps最大的問題之一是學(xué)習(xí)曲線,它阻止了不太精通計算機(jī)的用戶使用它們。由于用戶需要擁有持有區(qū)塊鏈特定代幣的錢包,因此用戶需要保留所謂的私鑰或種子詞以訪問其錢包并在區(qū)塊鏈上簽署交易。
與標(biāo)準(zhǔn)密碼不同,私鑰在忘記或丟失時無法重置,也無法更改。通常,私鑰是由64個字母數(shù)字字符組成的字符串,難以記憶,應(yīng)該僅在紙上記錄,以避免黑客在數(shù)字保存時訪問它的風(fēng)險。因此,它并不像輸入您的電子郵件和設(shè)置密碼那么簡單,而且會有很多的人因為丟失了私人密鑰而被鎖在賬戶外,再也無法訪問!
DApps面臨的另一個問題是,在區(qū)塊鏈上可以存儲的數(shù)據(jù)是有限制的,例如,視頻文件太大而無法以分散的方式存儲,因此仍必須存儲在集中式服務(wù)器上。
這些問題可以及時克服,并且上述一些問題不存在于像Hyperledger Fabric等這些企業(yè)區(qū)塊鏈中,后者不需要最終用戶維護(hù)錢包和支付礦工費(fèi)用。