DAPP:一文了解通俗易懂的区块链知识-ODAILY_区块链的几个大局有哪些

区块链技术最初令人兴奋的地方在于,它可以在没有银行和中介机构的情况下,允许将数字货币点对点地转移到世界上的任何人。如今,这种兴奋感将进一步增强,因为人们意识到这种点对点功能可以应用于其他非加密货币类型的交易,例如资产,契约、音乐、艺术品、企业之间的合同等等。

在区块链上记录的交易是一个点对点消息,该消息指定了所执行的操作,包含数据参数、消息的发送方和接收方、交易费用以及记录的时间戳。

从比特币到区块链

比特币自推出以来一直在持续运营。在其最初的成功之后,人们开始思考,既然可以交易数字货币,为什么不能交易其他数字资产?这个问题在2013年左右得到了回答,因为在另一个区块链以太坊上添加了一个代码执行环境,这里的创新之处在于,通过验证和记录可以扩展到其他数字资产,以及相关的交易和系统中。因此,区块链可以通过为其他非货币性质的点对点交易提供软件支持,在实现去中心化系统中发挥核心作用。

探索真正的区块链

图一右边Tx(事务)表示参与者两个帐户(From和To)之间的消息。这些事务的具体信息被记录在区块链上。

每个Bk由一组交易组成,并由一个区块编号标识。例如,在图一中,#10163275区块有142个Tx,而#10163274区块有60个Tx。在访问站点时,可以看到一组不同的区块,也可以搜索特定的区块号并验证Tx的数量,这也证明了区块链技术的不可篡改性。所有的区块连接在一起就形成了区块链。

区块链是什么?

区块链是用于在去中心化的交易系统中,对所有参与者实现共识的一种技术。区块链的目的是验证和执行发起人提出的交易,并在所有参与者的共识下记录这些交易信息。

如图二所示,区块链的基础设施存在于一个分布式的系统中,包含用于特定目的的软件,即点对点之间进行信任的中介。图二的左侧是一个执行操作的分布式(客户机/服务器)系统。该系统可以验证和记录在区块链上的数据信息。

在区块链编程中,不需要替换现有的系统,而是通过验证代码来增强共识度。为了进一步理解区块链编程,我们了解一下Bitcoin和Ethereum的区块链堆栈。

如图三所示,这是区块链存在已久的两种模式。比特币只有钱包应用程序,而以太坊有称为智能合约的可编程代码。

图三

图三也展示了编程的三个层次:

协议级编程——这一层涉及到部署和操作区块链本身所需要的软件,类似于现在电脑的操作系统软件。

智能合约级编程——在这个级别上可以设计和编程验证的规则,并指定要记录在底层区块链上的数据和消息。智能合约是代表用户应用程序驱动区块链的引擎。

应用程序级编程——这个级别涉及到使用区块链协议之外的Web应用程序框架和用户界面设计概念进行编程。

Dapp是基于底层区块链技术衍生的各种分布式应用,是区块链世界中的服务提供形式。Dapp嵌入了一个重要的代码元素——智能合约。对于任何给定的智能合约,其代码的精确副本将通过一个特殊的交易传输,并部署在区块链网络的节点中。

智能合约是表示Dapp逻辑的不可变可执行代码。其定义的数据变量和函数共同执行Dapp的规则和操作,并在区块链上进行验证和记录。

区块链编程

在从顺序编程到结构化编程、函数式编程、面向对象编程(OOP)、Web和数据库编程和大数据编程的演变过程中,程序员经历了方法、工件和架构的变化。类似地,区块链编程也是另一个范式的转变。四个基本概念在区块链编程中发挥着重要作用。

去中心化基础设施——特殊的计算硬件和软件堆栈,支持区块链协议、智能合约和应用程序(Dapp)。此基础设施的主要组件是连接区块链的节点和网络。

分布式分类帐技术——基础设施上面是分类帐,交易和数据同时记录在所有利益相关者的分类账中。这是一个分布式的账本,所有的利益相关者都记录了相同的事实。它是不可变的,因为每个区块都链接到前一个区块的签名,使其能够防篡改。

去中介协议——去中心化系统中的参与者遵循相同的区块链协议进行连接,并能够相互通信和交易。该协议是每个参与者都要遵守的一套规则。

信任推动者——在一个去中心化的系统中,没有中央当局和中介机构。因此,需要一个基础架构来实现自动治理和规则遵从,区块链软件承担了信任中介者的角色。

去中心化基础设施

区块链基础设施本质上是去中心化的,就像连接城市的铁路和公路,可以把Dapp想象成火车和汽车。什么是去中心化系统?去中心化系统是一种分布式系统,具有以下特点:

1、参与者点对点进行通信并拥有资产的所有权,不管是数字的还是非数字的。

2、参与者可以凭借自己的意愿加入或者离开该系统。

3、参与者可以在传统信任边界之外部署自己的网络。

4、决定权是由所有参与者决定的而不是中央机构。

5、使用区块链自动化软件来充当信任的中介。

以空中交通为例。航班有起点、目的地、中途停站机场和形成航空网络的航路点。类似地,区块链节点承载着作为事务端点的计算环境,并执行其他功能,如事务的中继和广播。

图四

图四显示了单个区块链节点的逻辑架构。在去中心化网络中,一个节点可以支持多个帐户来表示网络中参与者的身份,帐户是交易实体的唯一标识。

区块链节点承载图四中堆栈所表示的元素。它是区块链应用程序开发的基础。最下面两层大多是计算系统的标准硬件和软件。第三层是区块链协议层,包含区块链的组件。第二层承载应用程序逻辑,这一层是解决数据访问、验证和记录等问题。顶层是面向用户的界面,在这里可以进行Web编程,例如,使用HTML和JavaScript相关框架,这些元素构成了Dapp及其用户界面(UI)层。

Dapp并不像我们平时玩的手柄游戏,只支持单一的用户。相反,通过它的节点网络会连接大量的参与者,每个节点可以托管多个帐户并标识不同的参与者。一个节点还可以托管多个Dapp,例如,一个用于去中心化管理系统,另一个用于去中心化支付系统。

图五显示了一个由三个节点组成的网络。该网络广播区块和客户发起的交易,区块和交易构成网络的有效载荷,并最终在经过验证后记录在分布式分类帐上。

图五

网络标识符用来标识区块链网络中的节点。例如,网络ID#1是以太坊公共网络;网络ID#4是另一个名为Rinkeby的公共网络。在网络上部署智能合约时,必须使用其标识符来指定网络。在给定网络上的参与者共享一个统一的分布式账本,以记录他们的交易信息。

智能合约被部署在由区块链节点托管的沙箱环境(如虚拟机)中。智能合约的语法类似于OO语言中的类。它包含数据、函数和函数执行的规则。调用智能合约函数会在区块链上生成事务(Tx),如果验证失败,则恢复函数调用,如果执行成功,则将生成的事务(Tx)广播到网络并进行记录。

星际观察

区块链的技术是不可限量的,就像你不会想到如今的互联网技术如此发达一样。技术是在不断突破的,也需要我们不断给予新的理念新的创意。

区块链作为不可篡改的分布式数据库,利用点对点传输和加密算法等技术,将大大降低信任成本,提高目前的生产效率。同时区块链技术作为价值互联网的载体,有很大几率将颠覆目前的信息互联网技术,科学技术是第一生产力,区块链行业将会成为各国竞争的重要领域。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

区块博客

[0:15ms0-3:567ms