《以太坊技术详解与实战》第1章 - 以太坊:新一代的区块链平台

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yzpbright/article/details/82854249

信息互联网:信息通过 TCP/IP 进行点对点的传递
价值互联网:使得价值(比如电子货币、电子资产、设备访问权限等)脱离第三方直接进行点对点的转移。
与信息的复制和粘贴不同,价值的转移涉及所有权的变更 。 因此,在价值转移过程中,我们需要一份账本来记录资产的变更 。 该账本需要安全、稳定可靠,以及具有一定的覆盖面和可用性(如全球资产需要全球覆盖,在任何地方都可以查询到当前的资产状态) 。
如何构建这样一个账本呢?区块链提供了这样一种可能的技术手段 。

1.1 理解区块链

区块链通常被定义为去中心的分布式记账系统,该系统中的节点无需互相信任,通过统一的共识机制共同维护一份账本 。
区块链是一种分布式、去中心化的计算与存储架构 。为什么需要这种架构?

区块链要解决的是如何用一种可信的方式记录数据,使得用户可以信任区块链系统记录的数据,而无须假设记账节点的可信性 。 怎么实现呢?“无须信任”技术上的解决办法就是假设互相不信任。因此,每个节点都存有一份完整的数据记录,每条新的交易都要被重新验证。当一个节点重新加入网络并需要同步数据的时候,也是从其他节点同步交易历史,然后重新计算验证一一这就决定了其第一个特点,即分布式存储(不能完全信任他人的存储) 。 也正是为了高效可靠的验证需要,才有了区块链现在的数据结构:区块链由成块的交易通过密码学算法连接在一起,使得整个账本公开透明、可追踪、不可篡改(数据被篡改时很容易被验证发现)。 这么多记账节点为什么愿意按照一致性协议记账呢? 依靠的就是巧妙的记账激励机制一一诚实的记账节点会得到相应的奖赏,且诚实的记录比恶意篡改记录的收益更大一一这就是一致性协议设计中的要点 。

这里要说明一点, 我们看到的公有链的平台是去中心的,因为其设计假设以没有任何信任作为前提,即都不可信 。 在实际的应用中,如果有一些可信的元素,是完全可以利用的 。因此我们也看到很多系统设计是多中心或者弱中心的模式 。 “去中心”在这里不是目的,而是一种达到可信的手段 。

1.2 以太坊设计思路与特色技术

随着比特币开始受到开发者等技术人员更多的关注,一些利用比特币网络实现不同于比特币逻辑的代币交易,或者除代币之外其他数字资产交易的新项目开始出现。 由于比特币不太灵活,这些项目大多基于比特币系统做了一些改变,添加了一些新的特征和功能,然后独立地运行在不同的节点上 。 或者说,每一个新项目都要重复、独立地建立一个类似比特币的系统 。 能不能设计一个更通用的系统呢?通过应用层的编写,让不同的数字资产运行在统一的平台之上?以太坊的发明者 Vitalik Buterin 就在思考这个问题。

  1. 以太坊的诞生
    在 2013 年下半年, Vitalik Buterin 提出了“以太坊”的概念一一一种能够被重编程用以实现任意复杂计算功能的单一区块链,这种新的区块链包含了之前众多区块链项目的大多数特征 。
    2014 年,以太坊基金会成立, Vitalik Buterin 、 Gavin Wood和 Jeffrey Wilcke 创建了以太坊项目,作为下一代区块链系统 。
  2. 以太坊与比特币的异同
    相同点:
    与比特币类似,以太坊是一个去中心化的区块链平台 。 在这个区块链平台上有众多节点参与,它们组成了一个 P2P 网络,这些节点彼此平等,没有任何一个节点有特殊的权限,也不存在由一个或多个节点进行协调或调度 。
    区别:
    1)以太坊有更快的“出块”速度以及更先进的奖励机制 。 目前,比特币的出块时间平均为 10min ,而以太坊的出块间隔为 12s ,这意味着以太坊具有更大的系统吞吐量和更小的交易确认间隔 。
    2)以太坊支持智能合约,用户可以自己定义数字资产和流通的逻辑,通过以太坊虚拟机几乎可以执行任何计算 , 而比特币只能支持比特币的转账 。 这一点意味着以太坊可以作为更通用的区块链平台,支持各种去中心化应用( DApp ) 。
  3. 以太坊的特色技术
    如上文所述,以太坊是一个可编程的区块链 。 形象一点地理解,在以太坊区块链上发送的交易不仅仅可以是转账金额,还可以是调用一段代码,而该代码可以由用户自定义 。因此可以想象,在以太坊区块链上处理的交易逻辑不再是单一的转账,而可能是任意的函数调用;记录在区块链账本里的不仅仅是账户余额,还有函数调用后变量的新状态 。 因为代码可以任意定义,所以应用就都可以在区块链上运行了 。

1.3 应用场景

不是所有的应用场景都必须用区块链解决,那么什么样的应用适用以太坊区块链呢?区块链上的应用需要是跨越组织边界的 ,也就是说,在区块链上存储流通的资产(数据)的所有权是属于多个机构的 。 那么用区块链可解决机构间信任问题,减少摩擦,进而减少成本 。 这里将应用场景分为如下三大类 。

  1. 时间戳和溯源
    由于区块链上数据区块是持续增长且不可篡改的,所以历史上某个时间发生的事情可以从区块链上得到证明 。

在这里插入图片描述

  1. 数字资产的发行和流通
    正如上面介绍的,在以太坊区块链网络,用户可以定义自己的数字资产(虚拟货币、积分、权限等),这些资产可以在以太坊用户之间自如地按照应用定义的规则来转移和流通 。资产与资产之间也可以通过定义来进行流通 。 区块链使得组织、个体、数字资产间的流动性变得可行和可靠 。 该类的应用包括:商家联盟的积分兑换、游戏代币转移、 loT 设备之间的权限转移等 。

  2. 跨组织的数据共享
    冷链物流的例子
    在这里插入图片描述

1.4 去中心化应用 DApp

去中心化应用( Decentralized Application, DApp )是一种运行在去中心化点对点( P2P)网络上的应用软件。与 目前的手机应用类似, DApp 也是一类 App 。 但是它不是运行在iOS ,安卓平 台上,而是运行在以太坊这个操作系统上 。 DApp 具有开源 、去 中心化 、激励机制和共识机制等特性 。 从广义上说,具有以上特性的分布式应用均可被称为 DApp ,如比特币、以太坊等公网区块链;从狭义上说,运行在区块链上的一组智能合约组成了DApp,
本节主要介绍以太坊以及基于以太坊智能合约的去中心化应用 。

1.4.1 DApp 的优势
一般来说,一款应用软件由前端和后端两部分组成 。 常见的应用软件的前端代码(如用户界面等)运行在用户机器上,而后端代码(如存储和管理等逻辑)运行在一个中心化服务器上 。 与一般的应用软件不同, DApp 的后端运行在分布式网络中的各个用户节点上,包含一套实现数据的去中心化存储和管理等逻辑的协议代码 。 在以太坊区块链上, DApp 后端代码由智能合约具体实现 。 相比于现有的中心化应用软件, DApp 具有以下几个特点及优势 。
第一, DApp 均为开源项目,具有公开透明的特点 。

第二,去中心化是 DApp 所具有的最大特点。

第三, DApp 具有激励机制。

第四, DApp 具有共识协议。

1.4.2 DApp 实例

  1. Golem
    GoIem 是一款基于 以太坊区块链的 DApp ,旨在创造一个全球空闲计算资源的产消市场 。 通过 Golem ,用户可以向其他用户出租自己目前未使用的计算资源,同时也可以向其他用户租借计算资源用以解决一些消耗较多算力的任务。

  2. CryptoKitties
    CryptoKitties 是一款基于以太坊区块链的养猫娱乐 DApp ,用户可以在 DApp 中饲养和
    繁育虚拟的小猫 。

  3. Augur
    Augur 是一款基于以太坊区块链的 DApp ,是一个用于预测未来真实事件的市场预测平台 。 用户可以通过 Augur 平台对尚未发生的真实事件作出自己的预测,如果预测正确则可以获得奖励,否则会有一定的损失 。

  4. Bancor
    Bancor 是一款用于实现以太坊上代币之间兑换的交易所 DApp 。 通过 Bancor 部署在以太坊上的智能合约,用户可以将包括以太币及各种符合 ERC 20 标准的代币兑换成 Bancor代币 BNT 。 Bancor 的独特之处在于使用了一套经济学的换算公式,使得各种代币均能根据其现有价格 、 总市值等标准与 BNT 进行兑换 。Bancor 的出现为以太坊上种类繁多的合约代币提供了一个较为统一的兑换平台,无论代币的总市值规模大小、兑换数额的多少, Bancor引人的换算公式均能维持所兑换代币价格的稳定,促进了以太坊上各种代币的流通性 。

  5. KyberNetwork
    KyberNetwork (阻-.TC )是一款数字货币交易所 DApp ,用于实现跨区块链的各种代币之间的交易,但不同于 Bancor,其主要目标是实现更高效、更灵活、兼容性更强的代币实时兑换交易 。 KyberNetwork 目前搭建在以太坊上,用户可以通过其客户端实现交易过程中的实时代币兑换 。

猜你喜欢

转载自blog.csdn.net/yzpbright/article/details/82854249