本文由币乎社区(bihu.com)内容支持计划奖励。

Plasma是一个由Joseph Poon和Vitalik Buterin设计的区块链扩展解决方案,它使用子链向根链(即以太坊)报告的方式来增加交易吞吐量,这样就不用担心通常情况下使用小一点的链而产生的安全问题。OMG(OmiseGO)去中心化交易所是期待Plasma而进行设计的。我们将会使用Plasma来支持可扩展性,完全的链上交易而不用牺牲安全。在这篇文章中我将会讲述我们如何建立一个Plasma。

目标:创建一个不需要依靠自身来确保安全的区块链

我们通过要求用户在出现错误的时候退出子链而达到这一点。下面是运作方式:

  1. 如果一个无效的交易被包含在子链里,所有的用户必须要在7天内退出子链。
  2. 如果一个用户不能访问一个子链,但是一个子链区块被提交给它的父链,用户就必须要重新获取子链的访问并检查它的有效性,否则7天内退出。
  3. 撤回(也称为退出)按照创建交易的顺序进行退出处理。未花费交易输出(UTXO)引用一个被包含在父链的低区块高度的交易(也就是更老的交易)比包含在更新的区块中的交易的优先权要高。这样就导致引用最近包含的无效交易的退出比引用更老的有效交易的退出优先权要低一些。
  4. 只有输入的拥有者签名了已经被包含在相应父链的交易的确认验证,交易才算是有效的。

责任分解

  1. 客户端——观看以太坊并运行子链,尽快的检测诈骗行为并退出。
  2. 子链——观看以太坊的存款,并执行关于链当前状态的所有计算。
  3. 根链——通过智能合约将子链锁定到以太坊。为子链处理存款和退出,只接收足够的信息来处理这两者,以及确认和否认诈骗性退出。
  4. 父链——保证子链安全。与最小可行产品(MVP)的根链同义;在Plasma的最终形态中在子链和根链之间可能存在多个父链。

存款

为了使用Plasma链,用户必须要将他们的资产(即以太币或其他代币)从父链转移到子链上。要移动存款,用户通过将资产移动到在以太坊上相应的Plasma智能合约上从父链移到子链上。

MVP的存款处理已经简化了在Plasma白皮书中指定的处理过程,降低了复杂性。存入Plasma链的存款会被立即包含到子链的父链记录中,并且无法取消存款。想要取消存款,用户可以立即撤回它们的资产。

存款人没有额外的风险。一旦转移资产到智能合约的交易被确认,它们可以被撤回。即使子链没有相应存款的映射,存款人可以依然撤回他们的资产。

撤回

要将资产转移回父链,用户可以发起一个撤回。用户发起撤回可以只是简单的为了将资产移回到父链并将资存在父链。当检测到一个错误性的Plasma链用户必须发起一个撤回;如果用户没有及时撤回,那么他们可能存在丢失资产的危险。

有两种类型的撤回。第一种是“简单撤回”,这是单方从子链撤回自己的资产。第二种是“大量撤回”,当多方一起从子链撤回他们的资产。大量撤回显然更加的复杂,将会在未来的文章中进行讨论。

当用户从Plasma子链撤回资产,是按照退出交易被创建的顺序进行处理的(前面的先处理)。在挑战期结束之后撤回会最终化。在挑战期间任何人可以提供诈骗性行为的证据。

简单撤回

简单撤回包含四步:

  1. 用户提交一个撤回请求给父链上的Plasma智能合约。
  2. 撤回请求进入一个挑战期,该挑战期会打开一段时间。在这段时间内,任何人都可以提交双花的证据给Plasma智能合约,证明这个撤回是无效的。如果一个挑战成功了,那么用户尝试退出是无法撤回它们的资产的。
  3. 如果撤回请求被证明是无效的,撤回者会被惩罚,报告者会得到奖励。如果直到挑战期结束都没有一个成功的挑战,那么撤回者接收到自己的资产。这后面的经济激励还没有最终化。

最终化

有两种类型的最终化:

  1. 子链最终化——取决于子链使用的共识机制;我们选择使用权益证明。
  2. 根链最终化——取决于根链使用的共识机制;以太坊目前使用的是工作量证明。

子链的最终化和安全性取决于根链。Plasma提供的所有安全保证都假设以太坊正常运行。

关于Plasma MVP该记住的事情

  1. 它是权威证明(POA),权益证明将会被加进来。
  2. 它不会利用债券来惩罚欺诈行为。
  3. 如果一个无效的交易被包含在子链中,所有人都必须要立即退出子链。
  4. 子链依赖于以太坊的最终化(区块确认)。

Plasma MVP是朝着下面两点迈出的一步:(i)通过扩展以太坊主网来激发以太坊的潜力,(ii)构建一个OMG去中心化的交易所,为主流金融的使用做好准备。随着OmiseGO更进一步参与到Plasma开发中,设计将会发展到Plasma和OmiseGO白皮书中描述的其他特征中。

我要特别感谢Joseph Poon,Vitalik Buterin和Karl Floersch的时间和洞察力,这对于将全局的区块链缩放解决方案转化为我们正在实施的MVP技术规范是非常有价值的。 所有的错误都是我自己的。

翻译作者: 许莉
原文地址: Construction of a Plasma Chain 0x1

作者:Lilymoana
链接:https://www.jianshu.com/p/408b4228562a
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Plasma链0x1的构造相关推荐

  1. 【译】Construction of a Plasma Chain 0x1

    Plasma链的构建0x1 Plasma是一种由Joseph Poon和Vitalik Buterin设计的区块链缩放解决方案,该解决方案使用儿童链向根链(即Ethereum)进行报告,以提高交易吞吐 ...

  2. 以太坊区块链黑客松: 构造下一个数字世界

    今年,新冠状病毒突袭全球,似乎给全世界按下了"暂停"键,我们所依赖的生活网络以及习以为常的经验皆被中断或迟延.作为回应,这种突变敦促我们去重思当下诸多行业的社会经济构架,其中包括艺 ...

  3. c语言链地址法构造哈希表,链地址处理法构造简单哈希表

    链地址法:将所有关键字为同义词的记录保存在一个线性链表中(拉链法) 设某哈希函数产生的哈希地址在区间[0,12]上,则创建指针数组add[12],其中每个元素都是一个单项链表的头结点(有值). 由于仅 ...

  4. Qtum量子链研究院:Plasma技术详解(下篇)

    Plasma的设计模型有两个主要的分支:Plasma MVP(Minimal Viable Plasma,最小可行的Plasma)和Plasma Cash.Plasma MVP的目标是为最基本的可用的 ...

  5. php反序列化之pop链构造

    前言 随着对反序列化学习的不断深入,我们来学习一下pop链的构造.这个pop链对于我这种小白来说还是比较难理解的,再次写下这篇文章总结一下,加深自己对构造pop链的理解.同时也是提供想要入坑的小伙伴们 ...

  6. Layer 2:公链本就不该追求性能 |链捕手

    经历了两年时间,区块链行业从无到有出现了数十个.上百个不同设计的 Layer 2 项目,而大部分人对 Layer 2 的认识仅仅就是「扩容方案」那般可有可无. 为什么公链就是性能那么低?为什么我们觉得 ...

  7. 一起再看执行上下文/作用域链/原型链

    作为小白入坑的这段时间,这三个概念很早便深入我心,但是却总感觉模模糊糊不知道该怎么讲清楚其中的关系,甚至有时候还会混淆,正好今天拿出来复盘一下. 举三个栗子 执行上下文 简单直白的讲执行上下文就是一种 ...

  8. DLX (Dancing Links/舞蹈链)算法——求解精确覆盖问题

    精确覆盖问题的定义:给定一个由0-1组成的矩阵,是否能找到一个行的集合,使得集合中每一列都恰好包含一个1 例如:如下的矩阵 就包含了这样一个集合(第1.4.5行) 如何利用给定的矩阵求出相应的行的集合 ...

  9. Qtum量子链研究院:Plasma扩容方案详解(上)

    近段时间著名的比特币投资者Olivier Janssens发布的推特投票中,Vitalik Buterin表达了其对ERC20 CBDC(央行数字货币)的支持.当被问到有关延展能力的问题时,Buter ...

最新文章

  1. Exchange Server 2003多服务器安装以及管理工具介绍
  2. 新个税法通过,起征点每月5000元,一图看清你能省多少钱
  3. 改变HTML中超链接的显示样式
  4. 云服务远程登录---设置安全组
  5. mysql 数据目录更换_更改Mysql数据目录,这个坑你可能也趟过~
  6. C++实现贪吃蛇(多线程,窗口设置,链表,音乐播放)
  7. Lync Server外部访问系列PART4:部署反向代理
  8. maya扇子动画_maya变形金刚全流程动画教学(永久有效)
  9. java getselecteditem_java – 为什么JComboBox上的getSelectedItem()不是通用的?
  10. linux上的pcb设计软件,PCB设计软件(CadSoft Eagle Professional)
  11. 深入了解创宇网络安全硬件产品--零信任(ZTSA)
  12. OpenWrt路由器无线中继、桥接、信号放大、访客网络的实现方案
  13. 肯德尔系数怎么分析_肯德尔和谐系数
  14. FlashPaper 使用经验之谈
  15. c++中new是否会自动初始化
  16. 安卓linux远程桌面连接,用SSH连接你的android手机
  17. win10 2016长期服务版激活
  18. ARM通用寄存器及状态寄存器详解
  19. 接口技术实验:七段码显示
  20. 计算机考试打字多快才有用,书记员考试打字诀窍(提高速度)

热门文章

  1. git中常用命令小结
  2. 解决redhat的未注册问题
  3. 2015年10月5日 正式启用该博客
  4. C++找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小(也可能没有鞍点)
  5. Matlab循环读取txt文件并对其中数据进行计算最后导出为excel
  6. 科大星云诗社动态20201225
  7. 第08课:深层神经网络(DNN)
  8. 怎么把网页源码家入hexo博客_一款被大厂选用的 Hexo 博客主题
  9. Python8:logging Module
  10. 大话数据结构与算法:算法初步1