在區塊鏈上執行程式,到底是啥意思?DAPP到底是什麼?

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

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;