美文网首页区块链研习社
DApp——区块链的3.0时代(1)

DApp——区块链的3.0时代(1)

作者: Qbit趣比汇 | 来源:发表于2018-08-07 11:03 被阅读7次

    每天5分钟,学点区块链  

    本周内容会为大家系统讲解去中心化应用的知识,但在此之前,作为区块链2.0时代的以太坊是我们无法绕过去的一部分内容。因此,就抽出今天的5分钟时间,为大家简单介绍一下以太坊。

    以太坊项目

    在区块链领域,以太坊项目同样是十分出名的开源项目。作为公有区块链平台,以太坊将比特币针对数字货币交易的功能进一步进行拓展,面向更为复杂和灵活的应用场景,支持了智能合约(Smart Contract)这一重要特性。从此,区块链技术的应用场景,从单一基于 UTXO (Unspent Transaction Outputs,是未花费的交易输出,它是比特币交易过程中的基本单位)的数字货币交易,延伸到图灵完备的通用计算领域。用户不再受限于仅能使用比特币脚本所支持的简单逻辑,而是可以自行设计任意复杂的合约逻辑。这就为构建各种多样化的上层应用开启了大门,可谓意义重大。

    以太坊(Ethereum)项目的最初目标,是打造一个运行智能合约的平台(Platform for Smart Contract)。该平台支持图灵完备的应用,按照智能合约的约定逻辑自动执行,理想情况下将不存在故障停机、审查、欺诈,以及第三方干预等问题。以太坊平台目前支持Python 等多种语言实现的客户端。由于核心实现上基于比特币网络的核心思想进行了拓展,因此在很多设计特性上都与比特币网络十分类似。以太坊区块链底层也是一个类似比特币网络的 P2P 网络平台,智能合约运行在网络中的以太坊虚拟机里。网络自身是公开可接入的,任何人都可以接入并参与网络中数据的维护,提供运行以太坊虚拟机的资源。

    跟比特币项目相比,以太坊区块链的技术特点主要包括:

    支持图灵完备的智能合约,设计了编程语言 Solidity 和虚拟机 EVM;

    选用了内存需求较高的哈希函数,避免出现强算力矿机、矿池攻击;

    叔块(Uncle Block)激励机制,降低矿池的优势,并减少区块产生间隔(10 分钟降低到 15 秒左右);

    采用账户系统和世界状态,而不是 UTXO,容易支持更复杂的逻辑;

    通过 Gas 限制代码执行指令数,避免循环执行攻击;

    支持 PoW 共识算法,并计划支持效率更高的 PoS 算法。

    此外,开发团队还计划通过分片(Sharding)方式来解决可扩展性的问题。

    这些技术特点,解决了比特币网络在运行中被人诟病的一些问题,让以太坊网络具备了更大的应用潜力。

    基于以太坊项目,以太坊团队目前运营了一条公开的区块链平台——以太坊网络。智能合约开发者使用官方提供的工具和以太坊专用应用开发语言 Solidity,可以很容易开发出运行在以太坊网络上的“去中心化”应用(Decentralized Application,DApp)。这些应用将运行在以太坊的虚拟机(Ethereum Virtual Machine,EVM)里。用户通过以太币(Ether)来购买燃料(Gas),维持所部署应用的运行。

    智能合约

    智能合约(Smart Contract)是以太坊中最为重要的一个概念,即以计算机程序的方式来缔结和运行各种合约。最早在上世纪 90 年代,就有人就提出过类似的概念,但一直依赖因为缺乏可靠执行智能合约的环境,而被作为一种理论设计。区块链技术的出现,恰好补充了这一缺陷。

    以太坊支持通过图灵完备的高级语言(包括 Solidity、Serpent、Viper)等来开发智能合约。智能合约作为运行在以太坊虚拟机(Ethereum Virual Machine,EVM)中的应用,可以接受来自外部的交易请求和事件,通过触发运行提前编写好的代码逻辑,进一步生成新的交易和事件,可以进一步调用其它智能合约。智能合约的执行结果可能对以太坊网络上的账本状态进行更新。这些修改由于经过了以太坊网络中的共识,一旦确认后无法被伪造和篡改

    以太币

    以太币(Ether)是以太坊网络中的货币。以太币主要用于购买燃料,支付给矿工,以维护以太坊网络运行智能合约的费用。以太币同样可以通过挖矿来生成,成功生成新区块的以太坊矿工可以获得 5 个以太币的奖励,以及包含在区块内交易的燃料费用。用户也可以通过交易市场来直接购买以太币。

    燃料

    以太坊的运行环境,也就是以太坊虚拟机(EVM)。每个参与到网络的节点都会运行EVM作为区块验证协议的一部分。每个网络中的全节点都会进行相同的计算并储存相同的值。合约执行会在所有节点中被多次重复,而且任何人都可以发布执行合约,这使得合约执行的消耗非常昂贵。所以为防止以太坊网络发生蓄意攻击或滥用的现象,以太坊协议规定交易或合约调用的每个运算步骤都需要收费。

    这笔费用以gas作为单位计数,也就是俗称的燃料。燃料控制某次交易执行指令的上限。每执行一条合约指令会消耗固定的燃料。当某个交易还未执行结束,而燃料消耗完时,合约执行终止并回滚状态。Gas 可以跟以太币进行兑换。需要注意的是,以太币的价格是波动的,但运行某段智能合约的燃料费用可以是固定的,通过设定 Gas 价格等进行调节。

    那么,今天的5分钟内容就到这里!

    明天将为大家详细介绍Dapp必备的智能合约~

    参考资料:《精通比特币》、《区块链技术指南》

    相关文章

      网友评论

        本文标题:DApp——区块链的3.0时代(1)

        本文链接:https://www.haomeiwen.com/subject/qbmgvftx.html