大家都知道: ETH開啟了區(qū)塊鏈2.0,ETH上可以運行DAPP。
那么,DAPP究竟是什么?在區(qū)塊鏈上運行程序到底是怎么一回事?
在之前我們說到:BTC用區(qū)塊鏈記賬和使用UTXO,而ETH用區(qū)塊鏈運行程序代碼和使用賬戶余額制。
區(qū)塊鏈2.0, 是可編程區(qū)塊鏈,我們可以在區(qū)塊鏈2.0上面,運行智能合約、DAPP(分散的應用程序),而區(qū)塊鏈1.0不行。
那么,為什么區(qū)塊鏈1.0,不能運行程序?
因為,區(qū)塊鏈1.0使用的腳本語言,不是圖靈完備的。
什么是圖靈完備?
如果一門編程語言,給它足夠時間,它就可以用計算機完成任何計算任務,解決任何計算問題,那么這門語言就是圖靈完備的。
如果需要解決任何問題,就需要運用到——“循環(huán)”、“條件控制”等語句。
什么是循環(huán)?
循環(huán)是計算機科學領(lǐng)域的一種常見的控制流程,循環(huán)可以告訴計算機去反復執(zhí)行任務。
比如:“去幣乎,點贊一百萬次贊!” 點贊,就是任務。
循環(huán):
點贊
點贊
點贊
點贊
共計一百萬次,很快,幣乎里面所有的文章,都被愛莉莎點了贊。
什么是條件控制語句?
就是滿足一定條件,才執(zhí)行任務。
比如,如果這篇文章點贊數(shù)小于100,才點贊。
這里的條件就是:文章點贊數(shù) 《 100。任務還是點贊。
比特幣的腳本語言,沒有循環(huán)語句和條件控制語句。
因此,我們說:比特幣腳本語言,不是圖靈完備的。這導致比特幣腳本語言,有一定的局限性。
當然,由于這些局限性,黑客就沒辦法使用這種腳本語言,寫一些死循環(huán)(會造成網(wǎng)絡癱瘓),或者一些能導致DOS攻擊的惡意代碼,也就避免了比特幣網(wǎng)絡受到DOS攻擊。比特幣的開發(fā)者,也認為核心區(qū)塊鏈,不應該具備圖靈完整性,來避免一些攻擊和網(wǎng)絡堵塞。
但是,也正是由于這些局限性,比特幣網(wǎng)絡,沒有辦法運行它復雜的程序了。
而,ETH使用的語言,具備了圖靈完整性。
打個比方:
區(qū)塊鏈1.0就像古老的電話,只有打電話接電話這種核心功能。
而區(qū)塊鏈2.0就像智能手機,上面可以運行各種各樣的APP,可以運行游戲APP,可以運行微信,極大地影響了人們的生活。
在區(qū)塊鏈上運行程序,到底是啥意思?
我們知道,在電腦上運行程序,是由CPU執(zhí)行一系列的任務。
在區(qū)塊鏈上運行程序,是在區(qū)塊鏈網(wǎng)絡上運行各個任務。
需要注意的是,區(qū)塊鏈網(wǎng)絡的每個節(jié)點,都會記錄:
1. 所有交易的歷史
2. 所有智能合約的歷史
3. 所有智能合約的當前狀態(tài)
什么是狀態(tài)?
你在淘寶上,購買一件商品,那么,會有顯示如下的狀態(tài),已下單、已出庫、已發(fā)貨,你購買的進度,就是一個個的狀態(tài)。
在區(qū)塊鏈上運行程序,所有節(jié)點會進行同步,讓智能合約所處的狀態(tài)保持一致。
DAPP到底是什么?
DAPP是分散應用程序(decentralized application)的縮寫,指:運行在分散式網(wǎng)絡上的應用。
以太坊網(wǎng)絡就像手機的IOS系統(tǒng)和Android系統(tǒng), 是平臺系統(tǒng),是底層的生態(tài)環(huán)境。
DAPP就是平臺上,衍生的各種分布式應用,也是區(qū)塊鏈世界基礎服務的提供方。
DAPP之于區(qū)塊鏈,就像APP之于IOS和Android。
DApp =前端+智能合約
一個DApp的前端,可以是任何語言編寫的前端代碼和用戶界面(就像一個應用程序)。前端可以調(diào)用后端。
前端→智能合約→區(qū)塊鏈
智能合約是DAPP和區(qū)塊鏈數(shù)據(jù)庫之間的橋梁,發(fā)揮區(qū)塊鏈‘a(chǎn)pi連接器’的作用。
打個比方,Dapp就像一個‘啟用區(qū)塊鏈’的網(wǎng)站,而智能合約允許它連接到區(qū)塊鏈上。
傳統(tǒng)的Web應用程序,使用HTML,CSS和JavaScript來渲染頁面(前端)。它還需要用API,從數(shù)據(jù)庫中獲取數(shù)據(jù)。比如,當你打開Facebook網(wǎng)頁,該頁面會通過API來獲取你的個人信息(姓名、性別等等),并將其顯示在頁面上。結(jié)構(gòu)如下:前端→API→數(shù)據(jù)庫
而Dapp與傳統(tǒng)的Web應用程序非常相似,前端使用完全相同的技術(shù)來渲染頁面。
一個關(guān)鍵的區(qū)別是,DAPP不使用API訪問數(shù)據(jù)庫,而是通過智能合約,訪問區(qū)塊鏈數(shù)據(jù)庫。
結(jié)構(gòu)如下:
前端→智能合約→區(qū)塊鏈
DAPP的特點:
首先,用戶的隱私得到很好的保護,信息被加密存儲于區(qū)塊鏈上。
其次,網(wǎng)絡節(jié)點去中心化操作,所有節(jié)點同步DAPP各種狀態(tài)。
第三,通過標準算法生產(chǎn)代幣,代幣根據(jù)應用場景使用,有貢獻的用戶可獲得代幣獎勵。