跳转至

区块链项目

虽然去中心化应用 ( DApps )可以代替一些中心化应用,但是它们的架构、基础设施和实现与传统的中心化应用有很大的不同。与现有的实现相比,并不是每个区块链实现都能证明其优势。本章的目的是探索一些能彻底改变分散式网络的项目。

在这一章中,我们将研究金融和非金融区块链项目。自从比特币发明以来,已经出现了超过两千种加密货币(简称 altcoins),并获得了很多关注。该技术的广泛使用引起了风险资本家的注意,并说服他们投资于主要专注于集中交易所、钱包或创建自己的加密货币解决方案的项目。直到 2015 年,区块链技术的应用大多偏向于加密货币,但在区块链平台的帮助下,分散应用的采用在金融和非金融领域创造了巨大的创新机会。

在任何集中式应用程序中,总是需要一个中介。但是分散的应用程序不再需要这些中介。从现有应用程序中消除中介或中央机构的想法对许多开发商和投资者很有吸引力,因为这可以减少因这些实体而产生的成本。

创建了许多社区来改进现有的区块链功能,并改善分散式应用程序中的最终用户体验。这就产生了一个吸引人的区块链应用程序和广大消费者的市场。

对于初学者来说,探索不断增长的区块链市场是一项艰巨的任务。此外,很难找到满足用户需求的应用程序。这主要是因为您要寻找的实现很可能会迷失在应用程序的海洋中。分类和识别一个好的实现需要大量的探索。首先,在深入研究一些激动人心的区块链项目之前,我们将在下一节对广泛的应用进行分类。

区块链项目的分类

不同的机构已经使用区块链技术创建了分散的应用程序或概念证明,以充分利用区块链能够提供给他们的东西。探索区块链的机构可能有财务或非财务用例。在此基础上,我们将区块链应用程序大致分为金融和非金融项目。

金融项目

任何具有经济价值的真实资产都可以直接映射到数字资产。任何利用这些可交易数字资产的项目都可以归类为金融项目。尽管所有处理可交易资产的应用程序都可以归类为金融项目,但是它们也可以有非金融用例。

大多数早期与区块链相关的项目都是金融项目。这主要是因为实施的动机是比特币,而比特币本身试图分散对互联网上货币的控制。这影响了许多开发者社区从事与加密货币密切相关的项目。许多交易所、代币分发平台和支付网络应运而生,这迫使银行服务直接参与其中,以便现有银行客户可以利用加密货币应用。

尽管区块链技术对于非金融应用也是有用的,但是只有轻量级金融应用获得了广泛的受众,并且由于广泛的暴露范围而能够创建弹性系统。尽管许多金融应用不一定局限于加密货币,但许多最初的金融应用都是加密货币,特别是 PeercoinLitecoin ,它们试图模仿比特币,通过修改协议来实现更好的性能。

非金融项目

在比特币的早期,人们对底层技术的可扩展性及其未来的发展范围感到担忧。虽然加密货币是一项伟大的发明,通过其基于 P2P 的系统使互联网资金的分散化成为可能,但其真正的技术尚未完全开发。几个开发者社区开始在比特币区块链构建应用,以利用比特币区块链实现的去中心化。由于比特币区块链的可扩展性限制和隐私问题,许多项目是通过定制比特币实现和分叉比特币区块链来创建的。

随着该技术的潜力变得明显,它很快在数字身份、供应链、资产管理和许多其他用例中实现,以取代一些过时的技术。由于区块链技术的局限性,并非所有的实现都是成功的,但开发者能够找到与加密货币没有直接关系的用例。这为组织探索非金融领域的区块链技术铺平了道路。许多需要替换现有技术的非金融组织开始实施区块链作为解决方案。因此,比特币的几种替代实现出现,为非金融用例服务。

我们将通过查看一些应用程序来探索金融和非金融项目的一些子类别。

金融区块链项目

在这一节中,我们的目标是通过对区块链在金融领域中的早期金融实现进行分类来探究它们。

加密货币

自从比特币首次引入区块链以来,它的概念已经发生了演变。虽然比特币的底层技术已经应用于几个不同的领域,但加密货币被认为是区块链技术的真正应用。此后,许多项目被创建,一些模仿比特币的实现,另一些解决现有实现中的问题。

尽管可以发现许多加密货币拥有与比特币相似的属性,但它们不一定能解决相同的问题。事实上,这些货币中的许多只是为了激励网络的参与者而创造的。

我们将在加密令牌部分讨论这些货币。探索所有的加密货币相当困难,因为几乎每天都有新的实现被创造出来。我们将尝试通过将加密货币分为可追踪的和不可追踪的货币来简化这一过程。****

可追踪的加密货币

正如我们所知,比特币的区块由交易集合组成,网络上的任何参与者都可以检索和解析这些交易。创造比特币的目的是为了分散对货币的控制权。这带来了隐私成本,因为每笔交易都是公开的,因为它需要由网络上的节点进行验证。这意味着网络中的任何人都可以追溯到每笔交易的源头。

比特币提供了伪匿名,因为账户持有人的公开地址不需要与他们的真实身份联系起来。这防止了账户所有人的身份被泄露,即使所有的交易都是公开的。但是,如果用户的身份被泄露,他们的整个交易历史就有被泄露的风险。即使存在这些风险,透明、公开可见的交易也不会因为伪匿名而带来太多麻烦。

许多加密货币追随比特币的脚步,创建完全透明的交易账簿。Litecoin、Namecoin 和 Peercoin 是一些加密货币,它们不仅模仿了比特币项目,还以这样或那样的方式增强了其功能。

无法追踪的加密货币

后来开发了许多加密货币,以掩盖私人交易信息,使交易不可追踪,从而解决了比特币和其他类似加密货币面临的隐私问题。 ZcashMoneroBitcoin Private 是一些试图通过掩盖交易中的私人信息来保护用户隐私的加密货币。我们将研究 Zcash 如何通过创建不可追踪的交易来帮助实现隐私。

兹凯许

Zcash 通过隐藏发送者、接收者和值信息来创建屏蔽交易。Zcash 是第一种使用区块链技术中的零知识证明密码原语的加密货币,于 2016 年 10 月发布。

零知识证明是一种系统,在该系统中,用户可以证明他们拥有知识,而无需向验证者公开。零知识证明确保提供给验证者的任何信息都不会损害证明者的隐私。在常规交易中,用户通过用密钥签署交易来证明他们拥有资产。Zcash 为交易创建了一个零知识证明,即使用户没有附上太多信息,也可以验证该证明:

图 8.1:一个 Zcash 事务屏蔽了事务的输入和输出(来源:https://z.cash )

Zcash 使用了一种新颖的零知识证明形式,称为 zk-SNARK ,代表知识的零知识简洁非交互论证。zk-SNARKs 证明拥有信息,如私钥,而不与验证者共享或通信。这样,一个屏蔽的事务,即使它是完全加密的,也可以通过使用 zk-SNARK 证明来验证。

深入讨论 zk-SNARK 协议超出了本章的范围。我们将在第 9 章区块链优化和增强中深入探讨。

加密令牌

任何类型的加密货币,如果不是为了交换价值而创建的,都被认为是一种特殊的代币。这些代币还拥有与任何其他加密货币相同的功能,因为它们是为了在分散的网络中发挥作用而创建的。这些令牌可以分为两种类型:

  • 安全令牌(Security token):安全令牌代表真实的实物资产,比如公司的股份或任何形式的财务收益。这些种类的代币还具有预定的经济价值,类似于代币的价格。
  • 公用事业代币:公用事业代币是为项目提供燃料,并在项目启动后向其持有者提供项目所提供的服务。这些代币没有固定的经济价值,它们的价格将由它们的创造者决定。

硬币产品

最初的硬币发行 ( ICO )是为前面提到的代币创造的,以筹集项目的初始资本。ICO 是一个众筹过程,在这个过程中,任何愿意为项目做贡献的人都可以成为项目的一部分,并拥有一定份额的代币。ico 可以提供任何类型的令牌,但安全令牌是最安全的令牌,因为它们具有明显的经济价值。但是这使得 ICO 更加复杂,因为它要求你使用knT6】ow 你的客户 ( KYC )程序来识别用户的身份。由于与安全令牌相比,公用令牌的功能定义简单,因此在 ico 中最常用。

ICOs 期间提供的大多数令牌都是在现有的区块链网络中使用以太坊等区块链平台创建的。以太坊有一个名为 ERC-20 的智能合约创建标准,用于在以太坊区块链中发行代币。其他区块链平台提供商,如 NEO,也有标准化的(NEP-5)令牌创建,以支持其区块链上的 ICO。我们将通过在第 12 章、区块链用例中实现一个众筹用例来探索更多关于 ICO 的内容。

涟漪支付网络

Ripple 是一个支付网络,为 SWIFT 等现有全球支付系统提供解决方案。它有助于现有的支付系统,这些系统遭受延迟、不可靠和昂贵的交易。它通过一个计算机网络来实现这一目标,该网络使用 ripple consensus 算法在一个名为 Ripple Consensus Ledger (RCL)的分布式账本上结算和记录交易。

涟漪用例

Ripple 提供了广泛的用例,尤其是全球支付。我们现在来看几个例子。

跨境支付

Ripple 提供全球支付解决方案,这意味着可以在不同国家建立支付渠道。这使得银行能够以端到端的透明度和低成本实时结算跨境支付。随着 Ripple 采用的增加,货币和交易对手的数量将会增加,流动性提供商需要为每种货币与每个交易对手保持账户:

图 8.2:跨境支付渠道(来源:https://ripple.com)

波纹代币作为货币桥梁

Ripple 可以借助自己的令牌(称为 XRP)在任何银行之间创建货币对。与任何其他传统的中间货币兑换不同,XRP 不需要银行账户:

图 8.3:作为货币桥梁的 XRP(来源:https://ripple.com

波纹网络

Ripple 网络由一组类似于比特币中完整节点的服务器组成。他们合作达成关于网络状态的共识。Ripple 维护着一个公共分类账,不断更新所有交易的全球真相。

Ripple 的分散式明细账有两种状态:上次结账明细账期初明细账。最后关闭的分类帐状态是波纹网络同意的最近分类帐的状态。未结分类账接受追加的新交易,以便改变其状态。

每个 Ripple 节点维护一个名为唯一节点列表 ( UNL )的节点集合列表,它将直接影响分类帐的状态。UNL 是 Ripple 网络中被任何服务器信任以达成共识的节点的子集。UNL 成员将投票赞成将有效的交易记录插入分类帐。

波纹一致性算法

Ripple 协议共识算法 ( RPCA )是网络中的节点每隔几秒钟执行一次的过程,以在网络中达成共识。在网络节点成功同意后,分类帐将保持关闭状态。在将交易成功添加到分类帐之前,RPCA 有几个必须通过的步骤:

  1. 每个服务器收集所有已知的有效交易,这些交易不属于分类帐的一部分,并将其公开。这些未确认的交易被称为候选交易列表。
  2. 每台服务器从 UNL 服务器收集所有候选列表。获得所需赞成票数量的交易将被选择进行下一步。
  3. 最后,确保每个事务至少有 80%的服务器 UNL 投票。满足此规则的所有交易都将被追加到分类帐中。

波纹令牌(XRP)

Ripple 总共发行了 1000 亿 XRP 代币,其中大部分由 Ripple 社区持有。Ripple 可以在 3.5 秒内结算一笔代币交易,也可以立即消费。尽管 XRP 代币是 Ripple 网络的一部分,但 Ripple 不一定需要 XRP 代币来进行跨境支付。

加密货币交易所

加密货币交易所是一个第三方,允许用户将加密货币转换为另一种类型的资产或不同的加密货币。这些交易所主要用于将法定货币(如美元)转换为加密货币,反之亦然。加密货币交易所通常是集中式服务器,它们维护一个可扩展的服务器来匹配用户的出价和出售请求。他们维护一个订单匹配引擎,记录所有的买入和卖出请求,并在匹配买入和卖出请求时启动交易。交易所对每笔交易收取少量费用。

加密货币交易所的一个缺点是,在分散的加密货币网络中,它们是一个集中的模型。许多分散的加密货币交易所已经被创建,以将货币直接从一个用户的钱包兑换到另一个用户的钱包,而无需将其转移到交易所。Kyber Network、0x 和 OmiseGO 是一些著名的分散交易所。

分散交易所

由于区块链技术的潜在应用,越来越多的人参与其中。特别是,加密货币市场正在增长。新货币定期推出,市场上已经有超过 2000 种加密货币。这意味着人们需要同时接触多种货币,并将一种货币兑换成另一种货币。加密货币交易所帮助用户通过在市场上下单来兑换代币。虽然交易所允许用户交换资产,但他们需要用户将其资产转移到这些交易所维护的账户中。这在分散的生态系统中创造了加密资产的集中化。这使得在集中交易所进行的大多数交易容易受到内部欺诈和外部黑客的攻击。据报道,在这些集中式交换机上发生了多起黑客攻击事件。日本交易所 Mt. Gox 的黑客攻击是加密货币历史上最大的黑客攻击。

分散的交易所消除了货币兑换过程中所需的中介,并且它们不维护订单簿。与集中交易不同,他们不会对每笔交易收取费用。

Kyber 网络

Kyber Network 是一个链上分散交换,允许用户毫不费力地转换令牌,不需要任何信任。Kyber 网络在以太坊区块链上运行,目前支持所有以太坊令牌。它将在未来支持跨链贸易。

设计

Kyber 网络运行的一些重要组件如下:

  • Users: Users of the network are the backbone of the decentralized exchange. Each users' wallet acts as an interface to communicate with the network. It supports integration with existing apps, such as Status, and MetaMask, in order to manage user accounts. Integrating with these apps helps to integrate user accounts with Kyber Network without any hassle.

    MetaMask 是帮助开发人员将用户界面与区块链网络集成的桥梁。MetaMask 提供了一个浏览器扩展,以便 web 应用程序可以与区块链进行通信。

  • 智能合约(Smart contracts):智能合约中交易功能的编码方式和部署到区块链的逻辑。交易所的每一项主要职能都有不同类型的合约。

  • 储备:这些储备充当交易所中资产的容器。储备可由凯博网络或第三方维护。
  • 储备出资人:这些是为储备提供资本的实体。
  • 储备经理:这是负责维护储备和决定货币汇率的实体。
  • Kyber 网络运营商:这是负责添加和删除保留实体,以及在网络中列出和删除令牌对的实体。

图 8.4:Kyber 网络的组件(来源: https://kyber.network/ )

图 8.4 连接了 Kyber 网络的所有组件,以创建一个分散式交换生态系统的概述。在用户钱包提供的用户界面的帮助下,用户通过与 Kyber Network contract 通信来发起兑换操作。智能合约与储备进行通信,以执行信贷或借记操作。储备经理获取汇率,智能合约确保为交易选择最佳汇率。

凯博网络区别于现有交易所的一些特性如下:

  • 与集中交易不同,凯博网络不持有任何用户资产。这意味着它不是攻击的目标。
  • 由于交易所运行在区块链网络上,任何类型的账户都可以进入,包括合约。智能合约可以在没有任何中介的情况下与交易所通信。这为去中心化的自治组织 ( )创造了一个全新的机会,在这种情况下,管理组织的规则可以由网络成员而不是中央权力机构来决定。
  • 所有的兑换请求几乎都是立即执行的,用户可以立即从他们的钱包中取出兑换的货币。

总之,由于其分散模式,凯博在区块链生态系统中有很大的潜力,这将适合任何分散系统。

非金融区块链项目

在金融领域成功实施区块链后不久,区块链技术也在非金融领域得到了应用。我们将通过进一步分类来探究其中的一些实现。

资产管理

管理现实世界中的资产是一项具有挑战性的任务,因为它需要中介来维护包含资产完整历史的记录。中介需要证明自己的合法性,才能给用户提供资产信息。建立信任是一项昂贵的任务,尤其是在一个不信任的网络中。区块链技术通过管理的去中心化,有助于实现这种信任。

现有实物资产的数字表示是区块链应用程序的关键特征之一。可以在分散的网络中管理物理资产的数字表示。

事实上

Factom 为资产管理提供了精确、可验证且不可变的审计跟踪,消除了信任的必要性。记录管理带来了保护、同步和验证记录信息的难题。许多传统方法仍然需要一些手动操作,这使得扩展和实现准确性变得更加困难。

Factom 针对资产管理问题提出了一种解决方案,通过将加密数据或数据指纹发布到分布式分类帐来保护个人或组织的数据。Factom 还允许用户审核和验证区块链上发布的数据。Factom 通过运行一个分布式协议来实现这一点,该协议运行在比特币区块链之上。

设计

Factom 为开发基于区块链的应用程序创造了一种快速、廉价、无膨胀的方式。Factom 架构的主要工作流程包括以下步骤:

  1. 服务器创建的块将被记录在 Factom 自己的链中
  2. Factom 将锚(目录块的散列)固定到比特币区块链上

图 8.5: Factom 生态系统(来源:https://www.factom.com

如图图 8.5 所示,比特币区块链是 Factom 设计中的最后一层,它只存储关于资产的最少信息。Factom 通过仅在不可变的比特币区块链上存储实际信息的摘要来创建比特币区块链的锚。

Factom 是通过形成一组块的层次结构来创建的,目录块形成与比特币区块链的连接。层次结构本身构成了一个参考链,如图 8.6 所示。目录块中的每个引用只是条目块及其链 ID 的散列。这些条目块具有指向在特定时间段内到达的具有特定链 ID 的所有条目的引用。链 ID 的入口块也是微链的一部分。Factom 中的大部分数据都在叶子上,即条目本身。由于比特币的不变性,这些分层数据结构被认为是不可修改的。

Factom 系统中的层和概念如下:

  • 目录层:组织入口块的 Merkle 根
  • 条目块层:组织对条目的引用
  • 条目:这包含应用程序的原始数据或其私有数据的散列
  • :这是一组特定于应用程序的条目

图 8.6:Factom 的分层架构(来源:https://www.factom.com

Factom 产品

Factom 为私营企业和公众提供了多种解决方案。以下是 Factom 的几款产品:

  • Factom Harmony :这是为了解决抵押贷款行业的问题而创建的。它减少了因使用 Factom 的透明性而产生的文档、法律和合规性费用。
  • dLoc :这是一个文件认证验证系统。Factom 与领先的射频识别 ( RFID )产品制造商 Smartrac 合作,将该技术用于任何可以被 RFID 标记的资产。

社交媒体平台

社交媒体是一个任何人都可以发布内容的地方,分享他们的观点、技能或知识,以帮助需要这些资源的其他人。虽然有多种不同目的的社交媒体平台,但对于内容创作者如何因其贡献而获得回报,并没有定义标准。这家总部位于区块链的网络通过奖励贡献者在社交媒体平台上的工作来帮助标记网络内容。这是通过创建基于奖励的去中心化社交网络平台来实现的,比如 Steemit、Sapient Network、Indorse 和 Sola。

Steemit 是一个博客平台,内容创作者和策展人根据他们的贡献得到公平的回报。Steemit 使用 Steem 区块链来管理在其平台上创建的每个帖子或评论的奖励流程。我们将探索 Steem 区块链,以了解其社交媒体平台的奖励制度。

史奇姆

用户生成的内容一直为社交媒体平台巨头的创始人和股东带来数十亿美元的收入。另一方面,内容创作者几乎不被认可,他们的贡献报酬也很少。Steem 通过将大部分红利返还给内容贡献者来支持在线社区,这些贡献者首先为平台带来了价值。

Steem 是一个总部位于区块链的奖励系统,社区建设和社交互动可以获得加密货币奖励。Steem 鼓励用户通过公平的会计系统参与社区,以准确奖励用户的贡献。这是一种基于工作的货币的证明,具有 3 秒的预定块生成时间。

steam 中的投票模型

STEEM 平台有一个名为 Steem 的加密货币令牌。Steem 在一人一票的基础上运作。在这种模式下,对平台贡献最大的个人(以其账户余额衡量)对贡献评分的影响最大。

类似于 Steem 的现有系统允许当消费者通过小费(通常通过小额支付渠道)来表示他们对内容的欣赏时,向贡献者支付报酬。这些平台的缺点在于激励模式,它不一定总是激励好的内容。Steem 旨在实现各种捐款的有效小额支付。内容消费者不必决定如何和给内容创作者多少小费;相反,他们为内容投票,Steem 平台将使用他们的投票来确定个人奖励。

Steem 中的投票准确地决定了内容的质量,并相应地奖励内容创作者,而其他平台不一定只给内容创作者提供奖励。Steem 奖励那些对一条内容的总价值贡献最大的人,并根据支付给内容创作者的最终奖励按比例奖励投票者。

蒸汽代币

Steem 中有三种主要的代币:Steem (STEEM)、Steem Power (SP)和 Steem Backed Dollars (SBD)。

Steem 是 STEEM 区块链上的加密货币令牌。钢铁可以很容易地在交易所买卖。

sp

SP 基本上是 STEEM,被锁定在归属基金中 13 周,在平台内提供额外的收益。Steem 用户对奖励分配的影响与他们拥有的 SP 数量成正比。SP 持有人也从其持有的股份中获得利息。最早投票的人得到的奖励份额最大,因为奖励是按时间分配的。

SBD

任何货币的使用者都希望其价值稳定。SBD 的设计意图是通过将加密货币的价值与 1 美元挂钩来稳定加密货币的世界。此令牌可确保令牌持有者获得最大收益,并使区块链网络得以发展。由于令牌的稳定性,它可以在交易所与其他加密货币交换。

蒸汽中的共识

就像其他区块链应用程序一样,Steem 使用共识机制将任何交易块纳入公共分类账。负责包含一个块的个人由 Steem 网络中的人选出。区块创建分轮进行,每轮为创建的区块选择 21 个见证。任何错过块并且在过去 24 小时内没有产生块的见证人将被禁用,直到他们更新他们的块签名密钥。

共识机制确保每个人都有潜力参与区块生产,不管他或她是否有足够的实力最终位居榜首。拥有更多的 SP 可以提高用户的投票权。

数字身份

数字身份是比特币最初区块链实现的固有特征之一。它标识资产的所有者。它还可以存储重要的用户信息,这些信息可以与任何第三方共享,但必须得到用户的同意。存储在区块链上的用户的数字身份可以与不同的应用程序共享,这减少了用户验证身份的 KYC 操作的不必要的复制。此外,区块链提供的数字身份确保用户的身份可以在全球范围内得到验证。

许多组织正致力于区块链的数字身份功能,以便他们可以消除对使用服务器来维护用户机密数据的依赖。IBM 和微软等科技巨头正在不断探索在区块链空间实现数字身份标准化的方法。

ShoCard 身份管理

ShoCard 是一种身份管理服务,采用区块链技术构建,人们可以拥有并保护自己的数字身份。用户可以向任何人证明他们的身份,他们还可以决定与谁共享他们的详细信息。第三方可以使用区块链来验证信息的真实性,而无需集中式验证器。

ShoCard 架构旨在提供非常高的交易吞吐量。它使用工作证明在短时间内认证大量用户。ShoCard 目前提供两种产品:

  • 软件即服务的嵌入式模式()* ShoBadge ,完整的企业级身份提供商 ( IdP )解决方案**

****# ShoCard 架构

ShoCard IM 平台提供软件开发套件 ( SDK )与应用程序集成。ShoCard IM 平台由以下模块组成:

  • 史氏唱片公司
  • ShoCard 服务层
  • ShoCard 侧链
  • 区块链缓存
  • 卡片分块链适配器

ShoCard 有一个位于应用程序和服务器之间的服务层。因为所有的消息都是加密的,所以在通信期间服务层不能读取数据:

图 8.7: ShoCard 架构

以下是 ShoCard 服务的一些职责:

  • ShoCard 服务器充当安全通信管道,只是将信息写入区块链。
  • ShoCard 服务层负责管理所有客户端 SDK 和区块链之间的接口。
  • ShoCard 侧链用于增加产量。认证数据存储在侧链中,只有哈希数据存储在公共区块链中。
  • 区块链还缓存区块链的本地副本,以实现更快的读取访问,从而可以独立于公共区块链来管理验证。
  • ShoCard 区块链适配器将维护工作证明的区块链接口抽象化,因此 ShoCard 服务层可以保持高效。

ShoCard 使用不可变的公共区块链来验证用户的身份,但不存储用户的详细信息。由于公共区块链数据具有高度的透明度,因此存储在区块链中的数据只能用于验证用户证书。区块链是证书的存放处。

ShoCard 的一些使用案例包括:

  • 无密码登录
  • 通过为整个旅程或停留创建具有数字身份的单一旅行令牌,改善客户在机场和酒店的旅行体验
  • 自动注册
  • 身份验证
  • 年龄证明

https://shocard.com/identity-management-use-cases查看 ShoCard 身份管理用例的详细列表。

物联网中的区块链

物联网领域的许多公司,如 Filament、Xage,甚至 IBM 的 Watson 平台,都在寻找替代技术来实现更好的连接和存储。区块链的引入促使这些公司融合物联网和区块链,许多公司已经成功集成了它们,获得了优于现有实施的优势。

由于区块链承诺为自主产品提供基础,它保证生产可信物联网 ( IoTT )。将区块链与物联网合并的一些原因是为了建立设备之间的信任、降低成本和提高交易速度。根据定义,物联网是分布式的,这使得在分布式区块链账本中采用用例更加容易。

极微小

IOTA 是一个开源的分布式账本,旨在通过免费的微交易为物联网的未来提供动力。由于将有数十亿台设备连接到互联网,需要高效地交换信息,因此需要一个可扩展的解决方案,每秒钟需要处理数百万笔交易。IOTA 建议使用修改的事务模型为物联网世界中的机器对机器通信提供可扩展的解决方案。

IOTA 维护其分布式分类帐的方式与现有的分散式应用程序非常不同。IOTA 不能被归类为区块链项目,因为它没有使用区块链作为其底层技术。IOTA 使用有向非循环图 ( DAG )技术而不是区块链中的块来创建和维护事务。事务确认时间非常快,并且对事务吞吐量没有限制,因为它不受块创建时间的控制。

IOTA 基于一个名为 Tangle 的新分布式分类账,它试图解决区块链设计的一些问题,试图通过引入一种在分散式 P2P 系统中达成共识的新方法来创建一个高效且可扩展的系统。

Tangle 是一个分布式分类帐,保留了区块链的安全交易功能,消除了重复花费,但不存储块中的交易。

设计

对于每一个新的交易,两个随机的、未确认的交易在混乱中被验证。交易的每一次确认都增加了交易真实的可能性。每笔交易都应该接受一定数量的验证,才能被接受为已确认的交易。在 IOTA 的混乱中,一些事务将具有较少的验证,而其他事务将具有足够数量的验证。

用户必须验证另外两个随机选择的事务,以便发出创建的事务。这个交易应该稍后由其他用户验证。由于每个节点都对分散的分类帐有贡献,所以它的架构本质上是分散的。IOTA 与一名协调员合作,该协调员将在最初确认所有交易。

一旦网络变大,协调器可以被移除。目前,IOTA 使用 SHA-3 的一个版本 Kerl 作为哈希函数,它使用三元(而不是二元)运算。

IOTA 在每个事务中使用工作证明来防止垃圾邮件,这在精神上类似于 Hashcash 中使用的工作证明。

物联网中的 IOTA

虽然我们听说物联网已经有一段时间了,但它实际上并没有为普通观众做出多大贡献。市场上的物联网产品往往会增加用户的奢侈品,但它们不一定能解决现实世界的问题。物联网设备必须取代大多数孤立的设备,它们应该能够以一种相当有效的方式相互通信。IOTA 的架构确保通信可以随着设备数量的增加而轻松扩展。

数据存储

P2P 网络协议的一个重要应用是数据存储的分散化。 BitTorrent 是第一个通过 P2P 网络实现数据存储去中心化的协议。星际文件系统 ( IPFS )协议后来被实现来创建分布式文件系统,它在后来的实现中也利用了比特币区块链技术。

已经使用分布式文件系统创建了几个区块链项目,其中用令牌激励节点为网络上的存储做出贡献。已经引入了不同的共识算法,这些算法对于数据的存储、检索和激励过程是必不可少的。

一些基于区块链的分布式数据存储项目如下:

  • 见上图
  • 迈德赛夫
  • Filecoin
  • 锡安

Filecoin

Filecoin 是一个分布式存储网络,它将其存储网络变成了一个算法市场。加密货币已经证明,像数字货币这样的重要资产可以在不需要中介的情况下进行交易。但这些货币在网络上只有分散的交易信息。在区块链网络中分散大量数据既昂贵又缓慢,而且数据不需要像交易一样进行验证,因为每一部分数据都与其他数据无关。已经为分散的数据存储创建了许多协议,以便可以有效地获取数据,而不需要第三方。IPFS 就是这样一个协议,它通过分散网络本身,服务于全球 P2P 网络中使用的数十亿个文件,证明了内容寻址的效用

在区块链的帮助下,Filecoin 提供了一个建立在 IPFS 存储协议之上的激励模型。Filecoin 为分散存储创造了一个市场。为分布式存储网络提供空间的节点称为矿工,它们类似于比特币中的矿工,尽管它们提供的是计算能力。矿工因其存储贡献而获得消费者的 Filecoin 奖励。Filecoin 网络通过在整个存储网络中复制和分散内容来实现健壮性。

Filecoin 区块链的共识是通过时空证明实现的,借出存储空间的矿工有资格创建区块。Filecoin 协议为消费者提供数据存储和检索服务。

IPFS 吗

IPFS 是一种协议,旨在创建可寻址内容和 P2P 方法,以在分布式文件系统中存储媒体。2014 年,IPFS 采用了比特币区块链来存储需要不可变的数据。

IPFS 的文件通过它们的散列来识别,因此它们以一种友好的方式被缓存。IPFS 使用单一的大规模群集,在其中任何人都可以向其他任何人提供数据块;与 BitTorrent 协议不同,块共享不限于文件的对等方。可以通过各种协议访问 IPFS 文件,例如 HTTP。IPFS 有一个名字服务叫做行星间名字系统 ( IPNS ),兼容其他名字服务,比如 DNS 和. onion

Filecoin 协商一致意见

比特币中的共识算法除了在全球区块链国家问题上达成共识之外,实际上没有任何贡献。

比特币挖掘所涉及的难度使得一个节点参与挖掘过程的成本确实很高。Filecoin 提出了一个有用的工作共识机制,确保矿工为达成共识所做的工作是有用的。

Filecoin 的有用共识协议选举一个挖掘器来创建一个块,挖掘器被选中的概率与其相对于网络其余部分的当前使用的存储成正比。因此,该一致协议确保所提供的存储量也被用作计算的证明。

Filecoin 的分散存储网络(DSN)

Filecoin 的 DSN 基于激励交易的审计和验证。网络中的客户付钱给矿工来存储和检索数据。矿工只有在网络审计了所提供的服务后才能获得报酬。

网络中不同的参与者是客户存储挖掘者检索挖掘者:

  • 客户端通过 PUT 和 GET 请求付费在 DSN 中存储和检索数据。
  • 存储挖掘器为网络提供数据存储。存储矿工通过提供他们的磁盘空间和服务来自客户端的 PUT 请求来参与 Filecoin。要成为存储矿工,用户必须通过按比例存放抵押品来抵押他们的存储。存储挖掘器通过承诺在指定的时间内存储客户机的数据来响应 PUT 请求。存储矿工生成时空的证明,并提交给区块链,以证明他们正在通过时间存储数据。如果有无效或缺失的证明,存储矿商将受到处罚,并失去部分抵押品。存储矿商也有资格开采新区块,这样做时,他们将获得创建区块的采矿奖励和区块中包含的交易的交易费。
  • 检索挖掘器向网络提供数据检索。检索矿工通过服务用户通过 GET 请求的数据来参与 Filecoin。与存储矿工不同,他们不需要保证、承诺存储数据或提供存储证明。存储挖掘者也作为检索挖掘者参与是很自然的。检索挖掘者可以直接从客户或检索市场获得数据。

所有 Filecoin 节点的集合被称为 Filecoin 网络。Filecoin 网络负责存储网络的管理协议。管理包括审核存储证据、修复可能的故障、管理可用存储和验证承诺。

钱币市场

为了满足 Filecoin 网络中的需求和供应要求,存在两个市场:存储市场和检索市场。这两个市场结构相同,但设计不同:

图 8.8: Filecoin 市场

客户和矿商通过提交给市场,为他们需要或提供的服务提议价格。当交易所匹配订单时,它将启动并执行交易。

Filecoin 借助可验证的市场以分散的方式交换服务。矿工和完全节点是可验证市场的参与者。可验证市场是具有两个阶段的协议:订单匹配和结算。

存储市场是一个可验证的市场,允许客户向矿工支付存储数据的费用。就像任何交易所一样,它维护一个链内订单簿。订单簿是公开的,因此客户可以随时监控价格和相应的出价。

检索市场是一个可验证的市场,允许客户向矿工支付检索存储数据的费用。客户请求特定的信息,市场分配一个挖掘器来处理这些数据。与存储挖掘器不同,检索挖掘器不需要生成存储证明。网络中的任何用户都可以通过提供数据来换取 Filecoin 奖励,从而成为检索矿工。

BigchainDB

BigchainDB 是一款数据库软件,继承了区块链系统的许多特性。它集合了结构化数据库(高事务率和低延迟)和区块链系统(不变性、分散性和身份)的最佳特性。BigchainDB 的最初实现没有实现纯粹的去中心化,因为它容易受到单点故障的影响。BigchainDB 的最新版本通过确保节点的拜占庭容错 ( BFT )来实现去中心化。这是通过集成用于联网和共识功能的 Tendermint 协议实现的。

BigchainDB 的特性

BigchainDB 包含了分布式数据库和典型的基于区块链的系统的所有基本特性。尽管它没有基于区块链的数据库的理想特性,但它是一个很好的数据存储解决方案,并且是一个有用的分散数据库系统。

区块链继承特性

BigchainDB 的区块链继承特性包括:

  • 权力下放

网络中的每个节点都包含自己的 MongoDB 实例,它维护所有的事务。BigchainDB 是分散的,以确保没有单个所有者、没有单点控制和单点故障。即使有三分之一的节点以任何方式出现故障,网络也能承受这种故障。BigchainDB 通过使用名为 Tendermint 的中间件来确保 BFT。

由于高能耗,Tendermint 没有使用比特币的工作证明算法来实现每个块的共识。它通过在验证节点之间达成共识来提供 BFT。验证节点通过广播投票来决定要附加的下一个块,从而参与共识协议。如果协议获得了大多数投票(2/3 的验证者),它将把块提交给区块链。Tendermint 协议需要在每个块插入到区块链期间运行该一致过程,以确定下一个块,因此它被称为基于循环的协议。

  • 不变性:与传统数据库不同,BigchainDB 不会对插入的数据执行更新或删除操作。由于区块链的性质,事务只能被追加。每个节点上的所有事务都以不可变的方式维护在 MongoDB 实例中,类似于其他区块链系统。

  • 资产所有权:像大多数基于资产的区块链应用程序一样,BigchainDB 提供资产管理操作,如资产创建和转移。用户可以通过拥有资产被转移到的账户的私钥来要求资产。通常,加密货币等区块链应用程序只有一种类型的资产,但 BigchainDB 可以根据用户的需要创建任意多的资产。所有的资产管理操作都是通过创建事务来执行的,它验证每一个事务,以确保它不会受到事务攻击,比如双重花费。

数据库继承的特性

BigchainDB 的数据库继承特性包括:

  • 高事务吞吐量: BigchainDB 是作为现有分布式数据库的替代品而创建的,它增加了区块链技术提供的特性。尽管数据库是按照区块链原则设计的,但它保留了数据库的特点。即使在分散的网络中,它也能够实现高交易率。最新版本的 BigchainDB 每秒处理 1000 个事务,这与其他基于区块链的存储应用程序相比是很高的。

  • 低延迟: BigchainDB 在提交的块中包含一个事务只需要几秒钟。Tendermint 协议负责在分散式网络中保持低延迟。

  • 数据库查询:我们都知道,任何结构化或非结构化的数据库都使用查询语言来请求和检索其中的数据。BigchainDB 节点还允许用户索引和查询存储的数据。网络中的每个节点都维护自己的 MongoDB 实例。由节点运营商决定如何将数据库暴露给区块链网络。该节点可以公开任何接口。它可以是 REST API 或 GraphQL API。

BigchainDB 事务的生命周期

BigchainDB 事务的生命周期由以下步骤组成:

创建交易

只要创建的事务符合 BigchainDB 事务规范,任何用户都可以创建 BigchainDB 事务并将其广播到网络,BigchainDB 事务规范定义了事务的预期键和值。

通常使用 BigchainDB 提供的驱动程序创建事务。有一个各种编程语言的驱动程序列表,包括 Python 和 JavaScript。

下面的 JSON 结构显示了事务的所有字段。BigchainDB 交易由输入和输出组成,类似于比特币交易。此外,每个事务都有一个operation字段,它指定对资产执行的操作:

{ 
  "id": "3667c0e5cbf1fd3398e375dc24f47206cc52d53d771ac68ce14ddf0
 fde806a1c", 
  "version": "2.0", 
  "inputs": [ 
    { 
      "fulfillment": "pGSAIEGwaKW1LibaZXx7_NZ5-V0alDLvrguGLyLRkgm
 KWG73gUBJ2Wpnab0Y-4i-kSGFa_VxxYCcctpT8D6s4uTGOO c\nF-hVR2VbbxS35
 NiDrwUJXYCHSH2IALYUoUZ6529Qbe2g4G", 
      "fulfills": null, 
      "owners_before": [ 
        "5RRWzmZBKPM84o63dppAttCpXG3wqYqL5niwNS1XBFyY" 
      ] 
    } 
  ], 
  "outputs": [ 
    { 
      "amount": "1", 
      "condition": { 
        "details": { 
          "public_key": "5RRWzmZBKPM84o63dppAttCpXG3wqYqL5niwNS1XB
 FyY", 
          "type": "ed25519-sha-256" 
        }, 
        "uri": "ni:///sha-256;d-_huQ-eG-QQD-GAJpvrSsy7lLJqyNhtUAs_own7aTY?fpt=ed25519-sha-256&cost=131072" 
      }, 
      "public_keys": [ 
        "5RRWzmZBKPM84o63dppAttCpXG3wqYqL5niwNS1XBFyY" 
      ] 
    } 
  ], 
  "operation": "CREATE", 
  "asset": { 
    "data": { 
      "message": "Greetings from Berlin!" 
    } 
  }, 
  "metadata": null 
} 

发送交易

一旦创建了事务,就可以通过调用节点公开的 HTTP API 将它传输到网络。当事务到达节点时,它被验证以确保它符合事务规范和事务合法性。然后使用 Tendermint 实例将它广播到网络。下图显示了 BigchainDB 的服务器、MongoDB 实例和 Tendermint 实例在网络中是如何互连的:

图 8.9:BigchainDB 网络及其组件(来源:https://www.bigchaindb.com)

用例

由于 BigchainDB 的区块链和数据库特性,它的应用可以在集中式和分散式生态系统中看到。在集中式系统中,比如云上的服务器,它可以取代现有的数据库。然而,它最适合的应用是以太坊这样的分散平台。以太坊中创建的 DApps 通常利用分布式存储机制,如 IPFS。BigchainDB 可以在这样的应用程序中用来存储事务数据。

分布式计算

在过去的十年里,我们见证了计算机行业的巨大发展。计算行业的增长体现在处理能力、内存、存储、网络、设计等等方面。随着计算能力的增加,开发人员已经开始着手开发同样令人兴奋的项目来利用它。虽然高性能计算设备对普通大众来说是可获得的,但是它们不是非常经济。这是分布式计算被引入的时候,在这种情况下,一个复杂的问题可以通过将问题分解成任务,由几个计算设备来解决。

分布式计算是一种不使用任何单个高性能计算机器来解决复杂任务的有效方式。就像分布式数据存储一样,分布式计算已经与区块链平台集成在一起。假人是一个位于区块链的平台,为计算能力提供市场。

假人

假人是 P2P 网络中分布式计算能力的全球市场。它允许任何拥有多余计算能力的人成为生产者,并通过将其计算能力贡献给一个分散的网络来实现货币化。假人可用于为分散式微服务或任何异步任务供电。假人市场的主要优势是降低复杂任务的计算价格,如 CGI 渲染、科学计算和机器学习。

假人在一个 P2P 网络中运作,允许有计算能力的提供商将他们的资源出租给客户,或者用假人的话说,出租给请求者。与现有的云平台不同,在现有的云平台中,支付是通过第三方服务以固定的时间间隔进行的,假人使用的微支付服务建立在基于以太坊的交易系统上,可以实现网络参与者之间的直接支付。

假人生态系统

假人生态系统由三个主要部分组成——资源提供者、资源请求者和软件开发者。下图描绘了由以下组件组成的假人生态系统:

图 8.10:假人生态系统(来源: https://golem.network

应用注册表

应用注册中心是以太坊区块链上的一个智能合约,任何人都可以在这里发布应用,比如集成工具,它们可以在假人网络上运行。这个注册中心为请求者寻找工具提供了一个市场。

由于在一个分散的系统中信任未经测试的软件是不安全的,假人在一个叫做验证者的特殊用户的帮助下将应用程序列入白名单或黑名单。当软件作者发布一些软件时,验证者检查并证明应用程序是安全的还是不安全的。所有安全应用程序都被添加到白名单中,其他应用程序被添加到黑名单中。每当使用应用程序时,提供者都会使用这个白名单。假人维护着一份安全应用程序的白名单,首次用户可以参考。

供应商

计算能力由假人生态系统中的提供商提供。分散式网络的基础设施可以由任何人提供。提供商甚至可以提供单个 CPU 的周期。每个提供者因对请求者的计算任务做出贡献而被奖励。

请求者

请求者是提供者共享的计算资源的消费者。由于供应商和请求者的参与,假人是一个竞争激烈的市场。与现有云平台的定价不同,这一竞争激烈的市场导致了计算资源的合理价格。

假人允许用户同时充当提供者和请求者,以便请求者可以在空闲时间共享他们的资源。

Golem 网络令牌(GNT)

GNT 通过促进参与者之间的微支付服务为整个分散式网络提供动力。GNT 是在项目众筹期间创建的,但主要由请求者和提供者在假人网络中使用:

  • GNT 用于所提供服务的提供者和请求者之间的结算
  • 在 GNT,软件开发人员因向应用程序注册中心投稿而获得报酬
  • 参与软件验证过程需要 GNT

假人代币不能被开采,并且仅限于在众筹期间创建的代币数量。

区块链平台

随着去中心化的区块链应用程序在几个技术领域获得大量曝光,个人开发者和组织开始创建区块链平台,在该平台上可以创建应用程序,而不用担心 P2P 网络、共识或事务的底层实现。这些项目为普通程序员提供了一个平台,通过创建业务逻辑来实现有效的用例。

每个区块链平台都有自己的区块链和节点网络。这将在一个区块链平台上创建的区块链应用程序与区块链上的交易和其他数据隔离开来。有多个区块链平台,每个平台都试图解决现有平台实现中的问题,或者为特定应用程序开发附加功能。

我们已经研究了 NEO 和多链平台,并创建了分散式应用程序。以太坊、厄里斯、NXT、EOS 和 Hyperledger 是一些用于实现不同用例的知名平台。

艾瑟芬

以太坊是一个广泛使用的平台,通过提供一个不可变的分类账来创建去中心化的应用程序,该分类账使用比特币共识算法的修改版本。以太坊用一种叫做 Solidity 的面向对象编程语言提供了高级脚本功能。以太坊拥有自己的分布式虚拟机,名为 EVM,可以执行编译好的 Solidity 脚本。

以太坊是由当时与比特币有关的程序员 Vitalik Buterin 在 2013 年末提出的。布特林早些时候提出,比特币需要一种高级脚本语言来开发应用程序。在未能说服比特币开发社区后,他提出了以太坊。

Ethereum 令牌

以太坊包含一个名为以太的令牌,它为区块链的功能提供能量。以太坊的所有交易都需要少量以太费才能纳入区块链。这个小的计算单位叫做。与《T2》第七章、潜入区块链——所有权证明中讨论的 NEO 的气体令牌不同,气体不是一个单独的令牌,而是以太的一个小单位。

乙醚

以太是以太坊生态系统中使用的加密货币。以太可以像比特币一样作为虚拟货币使用。它可以在用户拥有的公钥和私钥的帮助下进行交易。以太代币在加密货币交易所以 ETH 符号交易。

气体

当交易包含在区块链中时,汽油是需要附加的小额乙醚费用。Gas 主要用于减少区块链的垃圾邮件交易。任何聪明的合同作者在公共账本中部署时都会附加少量的 gas。这将确保提交人在区块链部署合法合同。

气价可以由用户在部署合同时用少量乙醚来指定,这被称为气价。在任何交易期间需要花费的气体量被称为气体极限。气价以 gwei 为单位计量(1 乙醚= 10 9 gwei)。

EVM

与比特币中使用的基于堆栈的语言不同,Solidity 是一种图灵完全语言,因此它需要一个运行时环境来执行程序。EVM 提供了一个运行时环境来执行以太坊节点中的智能合约。EVM 运行在一个与以太坊网络和其他主机进程隔离的节点上。只有智能合约的输出可以广播并作为交易附加到区块链。EVM 执行被编译成以太坊字节码的 Solidity 脚本。这确保了执行独立于平台,以便网络上的每个节点执行并产生相同的输出。EVM 已经在几种不同的语言中实现,包括 Go、JavaScript 和 Python。

区块链共识

以太坊节点通过使用基于工作证明的算法,以类似于比特币的方式为区块链挖掘块。附加块的节点确保使用散列函数在块上完成足够量的计算。平均块创建时间限制在 12 秒左右。

以太坊使用名为 Ethash 的工作证明算法,这是一种抗 ASIC 的算法,旨在克服挖掘过程的集中化。挖掘需要在计算哈希之前从伪随机缓存中生成大型数据集。由于在此过程中使用了内存,因此它对基于 ASIC 的采矿设备具有抵抗力。验证过程可以在低内存的情况下执行,因为它只需要重新生成数据集的一部分。

ASIC 代表专用集成电路。该电路将执行特定的操作。比特币专用集成电路是专门为运行 SHA256 哈希函数而开发的,以便充分利用硬件的能力。

以太坊已经计划在不久的将来用利益证明取代基于工作的共识证明。矿工将不再能用他们的计算能力做出贡献。相反,代币持有者将为达成共识做出贡献。

DApp 发展

目前,以太坊是 DApp 开发中使用最广泛的平台,这是因为它提供了出色的社区支持。以太坊平台上有超过 2000 个活跃的 DApps。完整的统计数据可以在https://www.stateofthedapps.com/stats找到。它提供了一套优秀的工具来引导 DApp 开发。在本节中,我们将列出在以太坊生态系统中开发 DApp 所需的一些基本组件和工具。

Geth

以太坊提供多种语言的客户端软件,包括 C++、Python 和 Rust。客户端软件的 Go 编程语言实现叫做 Geth ,很流行。每个客户端软件都捆绑了几个组件:

  • 客户端守护进程:就像比特币核心的客户端守护进程一样,Geth 守护进程是一个与其他以太坊节点建立 P2P 连接以交换区块链数据的进程。Geth 守护进程需要一直运行,以确保客户端的本地区块链副本是最新的。Geth 客户端守护进程还可以验证和挖掘事务。客户端公开了一个 RPC 接口,让 DApps 与区块链网络通信。
  • 客户端 CLI :客户端软件提供了一个命令行界面 ( CLI ),可以用来对以太坊客户端节点进行操作。CLI 可用于管理账户、创建交易和查询本地区块链数据等。
  • 客户端用户界面 : Mist 是使用最广泛的图形用户界面软件。它附带了以太坊节点的 Go 和 C++实现。

Web3.js

像任何其他 web 应用程序一样,即使 DApps 也需要一个前端应用程序来为用户提供与后端应用程序通信的接口。由于大多数前端应用程序是在 web 浏览器中执行的,因此以太坊提供了一个名为 web3.js 的 JavaScript 库,可以在前端应用程序中使用该库与去中心化的区块链网络进行通信。其他语言中也有可用的库,比如 Python 的 Web3.py,如果客户端接口是用 Python 构建的,它们可以执行类似的操作。

块菌框架

Truffle 是一个框架,通过创建所需的项目结构以及基本的脚本和配置来帮助引导以太坊 DApp 项目。这类似于 Django、Angular、React 等框架。Truffle 简化了开发人员在区块链上编译和部署合同的任务。

MetaMask

MetaMask 是一个应用程序,它充当通常在 web 浏览器上运行的用户界面应用程序和以太坊区块链节点之间的桥梁。在图 8.11 中,元掩码形成了 DApp 用户界面和区块链节点之间的桥梁。MetaMask 为 web 浏览器提供了一个插件或扩展,使用户能够管理他们的帐户。以太坊区块链的所有交易查询都在 MetaMask 桥的帮助下转发到以太坊网络。

元掩码通过由节点提供的 RPC 接口调用方法来与区块链节点通信:

图 8.11:以太坊 DApp 建筑

以太网

像比特币一样,以太坊可以在区块链的 mainnet 或 testnet 上运行。mainnet 和 testnet 区块链都是公共区块链。除此之外,以太坊节点可以建立一个私有或本地的区块链实例。由于有各种各样的选项和社区支持,在 Ethereum 中建立一个开发环境是小菜一碟。

区块链当地

一个以太坊本地区块链实例可以在眨眼之间建立起来。来自 Truffle 框架的一个名为 Ganache 的 JavaScript 包可以建立一个以太坊的本地实例。该包附带了以太坊区块链的 JavaScript 实现,因此本地测试不需要以太坊客户端。一个本地以太坊区块链实例附带了挖掘、账户管理、区块链浏览器和许多其他更新的特性。Ganache 运行一个本地以太坊客户端实例,该实例也监听以太坊的 JSON-RPC 端口(8545)。

测试和分块链

以太坊的 testnet 类似于比特币的 testnet。它模拟 mainnet 区块链,不同之处仅在于它包含一个替代区块链,其交易没有实际价值。testnet 还需要 gas 来部署智能合约或简单交易。

与比特币的 testnet 不同,以太坊社区中有三个 testnet 区块链,每个都由不同的团队维护:

  • 这是一个由 Geth 团队维护的区块链网络的权威证明。以太无法在这个网络中开采。
  • Ropsten testnet :这是一个可以开采以太的区块链网络的工作证明。
  • Kovan testnet :这是由奇偶校验团队维护的区块链网络的权威证明。以太无法在这个网络中开采。

由于创建任何事务都需要 gas,即使在测试网中也是如此,所以可以通过从累积了所有未使用的测试网以太网的测试网龙头请求 gas 来获取 gas。Rinkeby testnet 用户可以通过指定目标帐户地址向https://水龙头. rinkeby.io 请求乙醚。

项目的链接

我们列出了本章提到的一些项目的链接。

摘要

我们试图涵盖金融和非金融领域的大多数区块链应用程序。本章深入探讨了区块链行业的发展以及区块链生态系统中应用的未来发展趋势。

在这一章中,我们首先列出了区块链技术下的几个项目,将它们分为金融和非金融领域。然后,我们深入研究了每个项目的架构、实现、用例等等。我们确保理解了区块链在所涉及的每个实现中的角色。

现在我们已经知道了一些区块链用例,以及它们的优缺点,我们可以考虑优化现有的区块链架构了。在下一章中,我们将介绍一些使用区块链设计 DApps 时可以实现的优化。****


我们一直在努力

apachecn/AiLearning

【布客】中文翻译组