zoukankan      html  css  js  c++  java
  • 【转】构建 Plasma 链 0x1

    Plasma 是由 Joseph Poon 和 Vitalik Buterin 提出的区块链扩展解决方案,利用子链回报根链 (以太坊) 的方式来提高交易流量,并最小化小链通常伴随的安全考虑。OMG (OmiseGO) 的分布式交易所将采 Plasma 的设计。我们将利用 Plasma 支持可扩展且完全链上的交易所,在不牺牲安全性下。本文我将会描述我们如何构建 Plasma。

    目标:产生不需要依赖自己安全性的区块链

    安全性会构建在使用者离开子链,当有错误发生。以下说明如何工作:

    1. 如果有无效的交易被包含在子链,那所有用户必须七天内离开。
    2. 如果用户无法存取子链,但他所在子链的区块已递交到母链,用户必须要能重新存取子链,所以要能检查有效性,或是在七天内离开该子链。
    3. 提款(撤离)会参照之前交易的产生顺序进行处理,从未花费的 UTXO 选择最旧的交易,参照其在母链所在区块的最小高度会优先于之后的区块。这可使最新的无效交易,在处理的优先权低于急于提款离开的旧交易。
    4. 只在交易的拥有者确认其交易在母链上已被转换且确认时,交易才被视为有效。

    Responsibility Breakdown (任务拆分)

    1. Client (客户端) — 监看 Ethereum 且运行子链,当侦测到诈欺的行为就立即离开
    2. Child chain (子链) — 监看在 Ethereum 上 deposit 的行为,并执行所有与该子链目前状态相关的计算。
    3. Root chain (根链) — 透过智能合约锚钉子链在 Ethereum 链上,处理子链上要存款与离开(提款)的业务,当收到足够的信息进行确认与处理,或是拒绝诈欺的提款(离开)。
    4. Parent chain (母链) — 作用是保护子链,在 MVP 上母链等同于根链。但在最终版本上,子链上可能会有多个母链,但只有一个根链。

    Deposits (存款)

    为了使用 Plasma 链,使用者需要将他们的资产 (以太币或代币) 从母链移动到子链,为了进行存款,用户将他们资产转移到适当的 Plsama 智能合约,该合约运行在以太坊上。

    在 MVP 中,存款的行为有所简化,不同于 Plasma 白皮书中般复杂。在 Plasma 上的存款会立即被纪录到子链的母链纪录上,并且没有机会取消存款。相比于取消存款,用户可以更希望能立刻提款。

    对存款方没有额外风险, 一旦转移资产的合约交易被确认,则可提领资产。即使在子链上没有反映相应的存款,存款方仍可提领他们的资产。

    Withdrawals (提款)

    为了将资金转回母链,使用者可以进行提款。使用者可能只是简单地将资金转回到母链并持有。或当使用者侦测到有故障的子链时,可以进行提款,使用者可能失去资金,如果未能即使反应的话。

    有两类的提款行为,第一类是简单地提款 (simple withdrawals),子链上的单一参与方进行提款,第二类则是,多个参与方同时进行大量提款 (mass withdrawals),大量提款因为较为复杂,会在之后的文章说明。

    当使用者要从 Plasma 链提领资金,提领依交易被产生的顺序 (先来的先离开) 而被提款离开,提款流程会在挑战期结束后完成,在挑战期间,任何人都可以提出欺诈行为的证据。

    Simple Withdrawals (简单地提款)

    简单提款包含下列四个步骤:

    1. 使用者向母链上的智能合约递交提款请求。
    2. 提款请求会进入一段时间的挑战期,在此期间,任何人都可向智能合约递交双花的支付证据,证明该提领请求是无效的。如果挑战成功,则尝试提款退出的使用者将无法提领。
    3. 如果提款请求被发现是无效的,提领者会被处罚,回报者会被奖励。如果在挑战期结束前没有收到成功的挑战,那提领者提领成功。背后的经济激励设计尚为完成。

    Finality (最终性)

    有两种型态的最终性:

    1. 子链的最终性 (Child chain finality) — 取决于子链使用的共识算法,我们选择 PoS
    2. 根链的最终性 (Root chain finality) — 取决于根链使用的共识算法,以太坊目前使用 PoW

    子链的最终性和安全性取决于根链,所有 Plasma 链的安全保证假设来自以太坊正常工作

    关于 Plasma MVP 的一些事项

    1. 目前使用 Proof of Authority, PoS 将会之后加上
    2. 不使用保证金来处罚诈欺
    3. 如果有个无效的交易被包含进子链,需要每个人立即退出子链
    4. 子链会依赖于以太坊本身的最终性 (区块确认数)

    Plasma 的 MVP 面向

    1. 理解其对于以太坊主链扩展性的潜力
    2. 被用来建立 OMG 分布式交易所,为主流金融使用预备

    随着 OmiseGO 进一步对 Plasma 的发展,这个设计会演进并扩展到 Plasma 和 OmiseGO 白皮书中描述的其他功能。

    我想特别感谢 Joseph Poon, Vitalik Buterin 和 Karl Floersch 的时间与见解,这对未来的区块链扩展解决方案,转化为正在实现的 MVP 技术规格是非常有价值的。有任何错误请告知我。


    链接: https://medium.com/taipei-ethereum-meetup/%E6%A7%8B%E5%BB%BA-plasma-%E9%8F%88-0x1-1a743c0f36d6

  • 相关阅读:
    myeclipse 配置svn
    windows下 将tomcat做成服务,并于oracle后启动
    局部内部类为什么只能访问final局部变量,对于成员变量却可以随便访问?
    使用cmd查看windows端口占用情况,并关闭应用
    生成javadoc文档
    JNI以及JNA使用
    自定义标签-java
    dwr框架应用
    Hadoop生态圈简介
    tomcat之日志记录
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13312949.html
Copyright © 2011-2022 走看看