自区块链2.0到来后,以太坊上便可以运行DAPP。今天就为大家揭晓区块链上运行的DAPP究竟是怎么回事?
区块链1.0为什么不可以运行程序?
之前我们都知道比特币使用区块链记账和UTXO,而以太坊则是用区块链运行代码和记账,因此,区块链1.0被称为脚本语言。
直到区块链2.0以来,可以在其上面运行智能合约、DAPP等分散的应用程序,许多区块链项目也真正开始活跃起来。
综合来看,由于区块链1.0不是图灵完备的,所以,许多应用程序无法运行。
什么是图灵完备?
图灵完备是指机器执行任何其他可编程计算机能够执行计算的能力。
图灵完备也意味着你的语言可以做到能够用图灵机能做到的所有事情,可以解决所有的可计算问题。
简单来讲,一切可计算的问题都能计算,这样的虚拟机或者编程语言就叫图灵完备的。当然图灵完备也可能因为陷入死循环而导致程序崩溃。
循环是什么?
循环简单来说是指计算机领域中一种常见的控制流程,它可以通过特殊指令让计算机反复执行一项或多项任务。
例如,计算3的倍数并每次间隔10秒,这里面3的倍数和间隔10秒就是任务,循环就是3、6、9、12、15、18、21、24…
条件控制语句
条件控制语句即用一定的条件来实现对程序流程的选择、循环、转向和返回等进行控制。
就以上举例,条件就是时间间隔=10秒,任务还是3的倍数。
在比特币的开发语言中没有循环和条件控制语句,因此,比特币是脚本语言,它的图灵不是完备的,这就表明了比特币具有一定的局限性。
然而,并非这种脚本语言就是不好的。比特币开发者认为核心区块链不应该具备图灵完备,这样可以有效避免外来攻击和网络堵塞。也正是这种局限性,黑客们一直没办法用脚本语言写一些死循环代码来攻击网络,使比特币网络一直稳定运行。但是,这也使得比特币网络上无法再运行复杂程序。
众所周知,日常我们都是在电脑上运行程序,而这些程序都是由CPU执行一系列任务。那么,在区块链网络上运行各个程序就需要在其每个节点上执行并记录智能合约、交易数据信息等。程序收到节点传递的信息会进行同步,让智能合约保持当前状态一致。
什么是DAPP?
DApp是(DecentralizedApplication)的缩写,中文直译为去中心化应用,也可以理解为分布式应用。DApp基于区块链,主要出现在以太坊、EOS等分布式平台或网络上,不依赖任何中心服务器,实现去中心化的目的。与传统的APP不同,DApp坚决强调去中心化,必须运行在分布式的操作系统,而不能工作在iOS及Android这些传统平台上。尽管不依靠任何中心节点,但DApp却离不开智能合约。也可以说,依托智能合约的约束,使得DApp无需听命于任何中心化服务器或节点,实现自治。除此之外,DApp还必须做到安全存储,保障隐私。
通俗讲,DAPP之于区块链,就像APP之于IOS和Android。即:DAPP=前端+智能合约。前端可以使用任何语言编写,只要能够充分展示用户界面,调用后端的代码即可。这里面,智能合约就是连接DAPP和数据库的桥梁,相当于传统互联网APP中的API连接器,其结构:
前端→智能合约→区块链
DAPP(分布式应用)的特点:
现阶段DAPP的特点还没有统一看法,但是基本大同小异,归纳如下:
1)DApp通过网络节点去中心化操作,可以在用户的任何个人设备(包括手机、电脑)上运行。
2)DApp运行在对等网络。不依赖中心服务器,不需要专门的通信服务器传递消息,也不需要中心数据库来记数据,保存在用户个人空间。
3)DApp数据加密后存储在区块链上,以依托于区块链进行产权交易、销售,承载没有中介的交易方式。
4)DApp参与者信息被安全储存,可以保护数字资产,保证产权不会泄露、被破坏。
5)DApp必须开源、自治,可以由用户自己打包生成、签名标记所属权。其发布信息不受任何机构限制。