Plasma的框架特性难以解释。如果没有提供如何使用Plasma的例子,很难准确描述Plasma是什么。与此同时,重要的是要,这些例子仅代表了Plasma的部分可能性。
因此,在介绍框架内的应用程序示例之前,有必要介绍Plasma作为框架的作用。如果你习惯将Plasma视为一个特定的项目,那么你在看这个章节时,会觉得很模糊!不用担心,我们将在稍后详细介绍其中一些应用程序。
为什么我们需要Plasma?
在解释什么是Plasma之前,首先要理解Plasma为何存在。基本上,它归结为现代区块链系统在现代标准下运行缓慢的事实。为了处理任何广泛容量的简单支付,区块链每秒大约需要处理几千笔交易。根据网络条件,以太坊目前每秒最多只能支持20-30次交易。
识别‘交易已存在’与‘交易需要被证明存在‘的区别,通常被称为“区块链可扩展性”问题。我们希望在保留安全性和去中心化的方式下,扩展区块链系统。这也是我们当初构建区块链的原因。
Plasma正在尝试用不同的方式解决可扩展性问题。其中一些项目试图通过升级区块链进行扩容,我们经常称之为“第1层”扩容,因为我们也正在修改基础层。其他项目尝试在现有系统之上构建东西,我们通常将此称为“第2层”扩容,因为目前我们也在不更改底层系统的前提下,添加新图层。
Plasma属于第二类的“第2层”扩容项目。我们有必要了解2层项目如何工作以及他们的作用。许多第2层设计用来监察,即每个人都不必了解网络上发生的每一笔交易。试想一下,你每天早上都会从当地的咖啡店买一杯咖啡。你除了需要在众多咖啡中挑选一款外,可能会发现,使用商家的预付移动钱包更方便。只需一次性将钱导入移动钱包,就不必每次在付款时都拿出钱包了。对商家来说也更快、更便宜,因为他们不必每次都通过支付处理器收款。这是一个互惠互利的做法。
究其本质,实际上是将钱投入到你所持有的咖啡店的本地“账本”中,就像预付卡一样。我们尽量简化这个流程,因为没必要通过复杂的流程来让所有人知道你向咖啡店付过款了。只要和和店家对于钱包内余额的使用达成一致,一切流程都会更简便。因此这是大多数第2层项目的核心。上面是一个很简单的例子-它只涉及两个参与者(你和咖啡店)。然而,人们想知道的是我们是否可以将这个想法扩展到整个区块链中。
是否可以暂时将资金从区块链转移到一个更小(和更便宜)的区块链中,再将第二条链上转移的资金转回去?答案是-可以!这便是“侧链”的演变。我们的基本理念是,从一个链中获取资产并通过将资产锁定在主链(或“根链”)来将它转移到另一条链上,并在侧链上再次“创建”它。当想要将资产转回去时,只需要“摧毁”侧链上的资产并在根链上将其解锁。这听起来很简单,但却存在一个很大的问题——必须有人同意在侧链上“创建”这些资产。那么谁可以“创建”资产呢?——共识机制。基本的理念是,如果侧链共识机制运作正常,那么你的资产是安全的。不幸的是,侧链的安全性通常不如根链。如果有人创建了与锁定在根链上的资产不对应的“凭空出现”的钱,他们可以“摧毁”这些虚假资产并盗取大量财富。
显然这不是理想化的模式,但只要侧链是安全的,你的资产就是安全的。但如果侧链发生故障,那么资产就面临被窃取的风险!这就为什么我们要介绍Plasma(这是我们要介绍Plasma的原因)。Plasma最先被开发用来提高侧链的便利性,同时确保存储在侧链上的资产安全(只要在根链安全的情况下)。我们虽然没有得到侧链一样的作用,但是保留了一些最重要的东西(例如让交易变得便宜),同时保证安全。Plasma的根本原则是即使在侧链丧失安全的情况下,所有的用户资产也可以“返回”根链。
Plasma构建区块
区块链运行速度很慢而且费用高昂,因此我们想让区块链运作快速且便宜,同时保证安全。这就是我们需要Plasma的原因。Plasma究竟是什么呢?Plasma是一种构建扩容的去中心化应用程序的方法,在提高速度但不牺牲安全性的情况下。让我们探究一下它的组件吧。
链下执行交易
Plasma应用程序在其“根链”之外需要做大量的工作(例如以太坊)。根链运行速度慢且费用高,因为需要它很安全。如果一款应用可以做除根链以外所有的任务,那么便是一个好方法。例如,在Plasma MVP中,几乎包含所有交易,除了以太坊。只能存取款,即登录和退出才需要用智能合约来处理。对Plasma应用程序来说是一个标准化的工作流,不需要任何移进和移出的资产,可在链下用智能合约处理。
状态承诺
当我们在链下处理这么多任务时,我们需要某种方式来确保变化的最终性。这也是我们使用“状态承诺”的原因。状态承诺是一种密码学方式,用来存储压缩版本的应用程序。
但是,存储应用上的所有东西会严重地破环Plasma,我们通常使用Merkle树代替,这样一来,这些承诺变成类似于应用程序的保存点。
退出
当有用户要离开Plasma链时,Plasma应用程序便会使用这些承诺。我们通常将其称为“退出”应用程序。让我们想象一个网络支付应用程序来阐明这一点!应用程序上的状态承诺可能会包含一些关于用户当前存额的信息,如果用户想要从应用程序中取出(“退出”)余额,它们需要提交智能合约证明他们有这么多余额可以取出。要做到这一点,用户可以使用一个名叫默克尔证明的技术。
以上是大多数Plasma应用程序构建区块的基本方式。接下来我们会给你介绍Plasma MVP,它是Plasma第一个被指定的正式应用程序,下篇将会探索如何应用这些模块来创建一个真正的Plasma支付网络,敬请期待。
原文来源于:https://www.learnplasma.org/docs/plasma-framework.html
本文由头等仓进行翻译。想要获取更多区块链项目资讯,欢迎添加作者go-first-one,或者点击本文出处了解更多哦~