区块链扩容系列之Plasma MVP

2023-11-17

以太坊低TPS一直被诟病,最近V神提出一种将以太坊TPS提升到500的方案,一经发表就被BM调侃。

      

     可见以太坊低TPS目前确实严重阻碍了以太坊的发展,连V神都不得不经常发声。我们知道以太坊低TPS的一个关键原因是以太坊采用POW,因而将部分交易计算量分散到其他非POW网络是提升TPS的一个方向。Plasma就是这样一个非POW网络(侧链),Plasma子链矿工可以是DPOS节点,甚至可以是任意确定的单独个体,从而可以让执行效率成本增长,并具备良好的scaling。

     由于Plasma子链数据由子链矿工维护,而子链矿工可能只有21个节点甚至一个节点,子链的数据安全性就是一个很大问题。当初以太坊采用POW就是为了保证链的安全性,如果为了提升TPS而损失安全性,那直接将以太坊从POW改为DPOS即可,没必要搞Plasma侧链了,因而Plasma子链仍要维持POW级别的安全。这个子链的安全性就是通过merkle验证机制保障的。子链矿工维护子链的交易数据详情,而主链只保存交易merkle树根Hash并验证子链交易数据的正确性。下面就以Plasma MVP版本实现为例来解读这个安全保障机制。

    

Plasma MVP

 

Plasma MVP 全称是Minimal Viable Plasma,采用UTXO模型,整体结构图如下

Plasma MVP目的是以非常简单的方式提供Plasma链的基本安全属性。

Plasma的安全性主要包括如下几点:

        1)资产不能被双花

                资产不能被双花需要有两个保证

                    转移到Plasma子链的资产必须冻结,不能在主链使用,这个通过Plasma Contract合约锁定主网资产

                Plasma子链不能存在双花交易

                    由于子链安全性很弱,矿工也可能是作恶节点,因而需要有其他机制来保障子链交易的安全性。

        2)Plasma链下的资产能自由兑回主链

                这个通过startExit实现,用户可以不需要通过operator直接调用,  因而能及时赎回资产。

 

Plasma系统角色

 

    用户(client):

        参与Plasma系统的普通用户,想在Plasma子链高效低成本转账的用户

    Plasma子链矿工(operator):

        Plasma系统的维护者,负责将子链区块信息打包到主链

    Plasma主链智能合约:   

        负责保存子链少量数据,验证子链操作的正确性合理性。

            

Plasma智能合约接口

 

  • deposit():

    用户充值资产,智能合约会产生一个UTXO

  • startExit(uint256 _utxoPos, bytes _txBytes, bytes _proof, bytes _sigs)

     用户退出以提取资产。退出时需要提供要退出的UTXO的信息。智能合约通过_utxoPos可以计算出区块及oUtxoIndex,然后根据该交易的完整数据及_proof(Merkle路径), 即可验证该utxo是否是一个合法的utxo,但是该utxo是否在后面的区块被使用掉(spent), 智能合约是没有足够的信息去检测的。交易内容中有,startExit操作需要引用一笔交易TxA,用以证明代币T的所有权归属于用户U,以及TxA的“直接祖先”TxB,连同这两笔交易所在的区块。

  • challengeExit(uint256 _cUtxoPos, uint256 _eUtxoIndex, bytes _txBytes, bytes _proof, bytes _sigs, bytes _confirmationSig)

    由于智能合约保存的数据有限,没法检验一个utxo是否已经被消耗。因而需要其他机制来检测双花行为。challengeExit就可以用于惩罚双花行为的。client保存了所有交易的细节,自然知道哪些exit操作是一个双花行为,通过传递证据调用challengeExit来挑战这些非法退出操作。

  • submitBlock(bytes32 root):

    子链矿工向合约提交区块信息的接口,只需提供区块交易merkle树根hash

 

Plasma区块生产

 

           有两种方式生产区块。

            1)用户充值主链资产(比如ETH)

                用户通过调用Plasma主链智能合约Deposit接口充值资产到Plasma链,智能合约会构造一个充值交易和一个区块,该区块只包含该充值交易。Plasma子链需要监听主链智能合约事件,并将该充值区块数据保存到本地。

            2)子链矿工(operator)创建区块。该区块包含子链里的交易

 

UTXO合法性检验

 

    任何一个UTXO都是一个交易的out, 要检验UTXO的合法性,只需要检测某一合法交易的对应输出是否包含该UTXO。由于Plasma主链智能合约只保存区块的交易merkle树根hash, 因而智能合约时没法直接检测的,调用者必须提供证据。这个证据就是交易数据+merkle路径。

        

    智能合约通过交易数据算出叶子节点hash,然后通过橙色的兄弟节点hash(merkle路径)递归计算就可以得到root hash,然后比较该root hash和合约里保存的root hash即可知道tx data是否是真正的数据。merkle树的更多信息可以看看这篇文章:https://blog.csdn.net/ITleaks/article/details/79992072

 

作恶惩罚机制分析

 

Plasma模型下,普通用户和矿工(operator)都可作恶。

        用户作恶:

            可通过startExit来提取已经被花掉的utxo,即双花。这种情况下,只需其他用户发现该行为并通过challengeExit即可阻止该行为。同时,为了给challengeExit足够的时间,startExit调用后,调用者并不能立即获得主链资产,必须等待7天且没有被challenge成功才行。

        矿工作恶:

            1)向主链提交错误区块,由于submitBlock只接受merkle root hash,没有足够信息来检测区块内容的正确性。

                    这种情况下,普通用户可以通过监听区块内容检测是否是正确区块,如果发现operator作恶,普通用户啥都没法干,只有通过startExit赎回自己的资产并退出这个子链。

                

            2)operator不工作

                operator为了避免普通用户发现自己的错误区块数据,可以选择不给用户发送区块信息,用户自然就没法发现operator的做恶行为。为了避免这种情况,普通用户可以定时检测operator是否在出块及发送区块信息,如果发现operator已失联,可调用startExit赎回资产并退出该子链。

 

作恶行为检测激励

 

    利益驱动:

        当用户A调用startExti赎回一个属于用户B的utxo时,用户B自然有动力去发现并举报这次作恶行为,否则B会丢掉属于自己的资产。

    奖励驱动:

        用户在调用startExit时必须抵押一定量的资产,当被challenge成功时,挑战者获得押金。

 

MVP的限制

 

     Operator作恶或者子链瘫痪时,可能会出现挤兑现象而导致challengeExit操作阻塞,进而导致非法startExit超期而成功。

     Plasma参与方需要保存全网所有数据。目前只支持ETH。 

 


|**************************************************
* 本文来自CSDN博主"爱踢门",喜欢请点关注
* 转载请标明出处:http://blog.csdn.net/itleaks
***************************************************|

如果你对EOS,ETH技术及开发感兴趣,请入QQ群讨论: 829789117


如需实时查看最新文章,请关注公众号"区块链斜杠青年",一起探索区块链未来

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

区块链扩容系列之Plasma MVP 的相关文章

  • 每天都在谈SOA和微服务,但你真的理解什么是服务吗?

    近几年来 我一直从事着和面向服务相关的底层软件研发工作 逐渐的形成了一些自己的看法 其中我觉得比较重要的看法就是服务需要一个更准确细致的定义 简单来说 服务的本质就是行为 业务活动 的抽象 为了更好的阐述新服务的概念 并方便与传统的SOA中
  • 文储研习社第17期

    文储研习社是文储区块链技术人员自发组织的学习交流社区 旨在于追踪区块链时下最新热点 解码热点蕴含的未知领域 享受思想交流的碰撞 欢迎志同道合的小伙伴加入我们 共同学习与成长 第17期 为了提高考证通过率 不小心搭了条链 作者 Bingo 你
  • 为什么要使用零知识证明来开发跨链协议

    用户需要什么样的跨链服务 在过去的几年当中出现了各种各样的独立公链以及以太坊 Layer 2 由于在安全性 低成本 快速交易以及开发者和用户社区差异等方面 不同链都具有各自不同的优势 用户在不同链之间切换使用的行为是很常见的 比起以太坊链
  • 区块链能提供有效的身份管理?

    随着身份盗窃和数据泄露在世界各地越来越多的情况下 身份验证是一个主要问题 对访问数据的人进行身份验证实际上是他们要求的 每天 数以百万计的人在网上进行不同的活动 从研究一个学术话题 到购买新的项目 到在社交媒体平台上发表评论 甚至进行不同的
  • Gavin Wood Web3峰会最新演讲:波卡不是智能合约平台,而是平台的平台(全文)...

    在波卡上 每个平台都在用高性能 高效率和最优的方式做着自己擅长的事 而不必让它们的用户用底层平台的货币进行支付 从而将可定制性和灵活性提高了一个台阶 本文谨代表作者个人观点 不代表火星财经立场 该内容旨在传递更多市场信息 不构成任何投资建议
  • 以太坊系列之十五: 以太坊数据库

    以太坊数据库中都存了什么 以太坊使用的数据库是一个NOSQL数据库 是谷歌提供的开源数据leveldb 这里尝试通过分析以太坊数据库存储了什么来分析以太坊可能为我们提供哪些关于区块链的API 存储内容 NOSQL是一个key value数据
  • 以太坊区块链学习之在私链上部署合约

    上一篇博客介绍了如何搭建私链并在私链上创建账户 挖矿 查看余额 本篇将介绍在私链上部署合约并与之交互 本篇开发环境为MacOS 10 12 建议读者使用macOS系统或者Ubuntu系统 第一步 进入geth客户端 启动私链 进入geth客
  • 初识区块链

    这篇博客主要从社会和经济层面来直白的向大家讲述区块链是什么 比特币是什么 分享的内容仅限于自己的理解 里面会存在本人的观点 但是希望读者能有自己的独立看法 审慎的阅读本文 甚至能考虑到我的认知不足导致的偏差 不为任何投资电子货币者提供意见
  • FISCO BCOS 2.0新特性解读

    FISCO BCOS是完全开源的联盟区块链底层技术平台 由金融区块链合作联盟 深圳 简称金链盟 成立开源工作组通力打造 开源工作组成员包括博彦科技 华为 深证通 神州数码 四方精创 腾讯 微众银行 亦笔科技和越秀金科等金链盟成员机构 代码仓
  • 区块链技术是如何应用到版权维护上?

    随着视频和音乐行业的迅速发展 数字出版已经形成完整的产业链 带来一些可观的收入 但是也伴随侵权的现象发生 那么区块链技术怎么运用到作品版权保护上呢 1 时间戳 我们知道区块链有一个 时间戳 这个可信时间戳由权威机构签发 能证明数据电文在一个
  • 近千万EOS被盗事件回顾,大家请保护好自己的EOS私钥

    最近有伙伴被盗了价值近千万的EOS 于是查看了这次被盗活动账号记录 这次分享出来 一是有可能大家有线索 二是也让大家意识到数字货币私钥安全的重要性 事件回顾 受害人在7 9号被偷盗人通过update auth更换了账号授权公私钥 紧接着被转
  • 使用web3和infura开发以太坊ethereum区块链

    web3 Github https github com ethereum web3 js web3 js是以太坊提供的一个Javascript库 它封装了以太坊的RPC通信API 提供了一系列与区块链交互方法 使js与以太坊交互变得简单
  • 期货ctp基础知识(合约,开仓,平仓,做多,做空,保证金,手续费)

    期货ctp教程地址 期货ctp教程 合约 期货买卖的是合约 股票买卖的是股票 做多和做空 2 1 做多 你就是买入看涨 所以买这个动作对应的指令就是 买开仓 当你赚了或者止损的时候 就要把合约卖掉 对应的指令就是 卖平仓 2 2 做空 你先
  • 扬帆证券:A股风格或呈大小盘短期均衡

    上星期 A股商场接连弱势盘整格局 沪指于3000点上方窄幅轰动 前期小盘股占优的风格再度演绎 北交所个股体现继续生动 组织观念以为 近期北证50指数的动摇加剧 短期商场的风格或许会呈现大小盘均衡 进入12月 出资者对经济和商场的决心进一步上
  • 凌晨!比特币突破4万美元,本轮上涨分析与未来展望!

    比特币在上周五 1日 成功突破38000美元大关后 就持续震荡走高 在今晨06 30左右 更是一举突破4万大关 最高来到41750美元 再度刷下2023年新高 以太坊 ETH 在差不多同样时间 最高来到2265美元 刷新年内新高 近24小时
  • 默克尔树(Merkle Tree)

    默克尔树 Merkle Tree 是一种哈希树的变体 它是一种有向无环图 DAG 通常用于数据完整性验证 它以密码学家拉尔夫 默克尔的名字命名 是由一系列哈希值构成的树状结构 默克尔树的特点是 它的每个非叶子节点都是其子节点的哈希值的哈希
  • 工业互联网会是制造业数字化发展的未来吗?

    新工业革命正逐步形成 你认为工业互联网会是制造业数字化发展的未来吗 从这几年的工业互联网发展政策措施 就能看到答案 早在近三年前 工业互联网创新发展行动计划 2021 2023年 就提出了五方面 11项重点行动和10大重点工程 着力解决工业
  • zkSend — — 在Sui上发红包像发电子邮件一样简单

    12月14日 知名区块链媒体平台The Block发表了这篇关于对Mysten Labs联合创始人Adeniyi Abiodun的采访 文中 我们 指代该媒体 数据均为截止撰写文章时数据 以下是正文 两年前 当五名前Facebook工程师创
  • 申泰勇教练的独家人物化身系列即将登陆 The Sandbox

    申泰勇 Shin Tae yong 教练是足球界的传奇人物 他来到 The Sandbox 推出了自己的专属人物化身系列 作为前 K 联赛中场球员和印尼队取得历史性成就的幕后教练 他的传奇经历现在已经影响到了虚拟世界 向过去 现在和未来致敬
  • 案例研究:YGG 如何通过 GAP 帮助 Pixels 扩大玩家群体

    在 Sky Mavis 联合创始人 Jeffrey Jihoz Zirlin 在 YGG Web3 游戏峰会 W3GS 上发表主题演讲时 他向在场的人们透露 MMO 农场游戏 Pixels 的日活跃用户数已经超过了 130 000 人 这使

随机推荐

  • uboot SPL framework的前世今生

    一开始只有uboot 没有SPL 后来由于一些原因 参考文献1 有些公司如TI添加了SPL 模块 SPL的作用为 参考文献2 为了提高代码的可重用性 uboot 2012 10中将SPL模块标准化 叫做SPL framework 查看ubo
  • 双指针技巧总结

    一 双指针技巧 情景1 通常 我们只需要一个指针进行迭代 即从数组中的第一个元素开始 最后一个元素结束 然而 有时我们会使用两个指针进行迭代 双指针的典型场景 1 从两端向中间迭代数组 2 一个指针从头部开始 而另一个指针从尾部开始 1 反
  • python获取最大、最小值

    1 获取数组极值 并返回索引 c 10 5 0 5 3 10 15 20 25 print c index min c 返回最小值 print c index max c 返回最大值 2 对series求最值 file path D Rec
  • 【C++】模板初阶

    文章目录 1 文件的编译和链接 1 1编译 1 2链接 2 函数模板 2 1函数模板格式 2 2函数模板的显示实例化 2 3非模板函数和同名函数模板的调用顺序 3 类模板 4 模板声明和定义分离的情况 1 文件的编译和链接 1 1编译 编译
  • (一)linux系统简介, centos简介及特点,设置静态IP,防火墙

    本章重点 linux系统简介及特点 下载安装 网络和防火墙的相关命令 具体内容 linux系统简介 Linux 内核最初只是由芬兰人林纳斯 托瓦兹 Linus Torvalds 在赫尔辛基大学上学时出于个人爱好而编写的 git 代码同步技术
  • [007]爬虫系列

    一 背景 有些时候网站开发者为了反爬 会做一些状态码欺骗的处理 原理如下 例如 浏览器发送一个请求 获取一个js文件 服务器返回状态码 例如 503等 此时浏览器就会按照状态码503给它做相应的处理 即 浏览器为了速度 会清缓存 所以直接s
  • 压力测试工具apache-ab讲解

    最近在做webservices 得到的数据是从德国那边的服务器 要将这些数据整合到现在网站中去 不知道性能如何 就做个压力测试 现在有些压力测试工具都是收费的 在开源的apache中自带个ab工具 就在C Apache2 2 bin ab
  • Leetcode初级算法——链表

    删除链表中的节点 请编写一个函数 使其可以删除某个链表中给定的 非末尾 节点 传入函数的唯一参数为 要被删除的节点 现有一个链表 head 4 5 1 9 它可以表示为 示例 输入 head 4 5 1 9 node 5 输出 4 1 9
  • pycharm使用anaconda

    一 Anaconda 1 简介 Anaconda就是可以方便的对的python包进行管理 并且可以通过可视化界面对虚拟环境进行管理 Anaconda包含大部分python库 且自带jupyter notebook等一系列应用 实在是学习py
  • Anaconda Prompt 如何切换工作路径

    Anaconda Prompt 默认路径 默认路径是你的用户名路径 切换路径 Anaconda Prompt在默认路径下 无法直接cd到其他盘 只能在根目录下进行切换盘符 在用户名路径下 输入cd 切换到根目录 返回根目录 使用cd 切换到
  • Office 之将 PPT 图片完美插入 Word

    将 PPT 图片完美插入 Word 原始文档 https www yuque com lart tools wdg4ww 前言 PPT 提供了简单易用的基本绘图支持 而 Word 则提供了专业的文档撰写和处理的支持 但这些工具并不是独立且互
  • 国内版ChatGPT插件来了,快速帮你阅读分析一本书,拆书神器

    好消息 我们都知道 自 OpenAI 开放插件后 其插件数量一直在迅速增加 据国外网友统计 最新的插件总数已经有 430 个 与 5 月 13 日刚开放时的 74 个相比 增长超过 400 而现在 文心一言网页版也正式添加了插件机制 普通用
  • 数据库操作不再困难,MyBatis动态Sql标签解析

    系列文章目录 MyBatis缓存原理 Mybatis的CachingExecutor与二级缓存 Mybatis plugin 的使用及原理 MyBatis四大组件Executor StatementHandler ParameterHand
  • 网页设计,前端大作业-个人主页网站

    个人主页网站 下载链接在文末 个人介绍 比较简单的一个网站适合初学者学习使用 点我下载
  • 简单有效,如何彻底卸载删除AlibabaProtect.exe

    简单有效 如何彻底卸载删除AlibabaProtect exe Process Hacker https www isharepc com 33781 html
  • Java常量池理解和经典总结

    Java常量池理解和经典总结 一 相关知识 1 什么是常量 第一种 是一个值 这个值本身 我们就叫做常量 整型常量 1024 实型常量 1 024 字符常量 g c w 字符串常量 gcw 逻辑常量 true false 这只是我们平时我们
  • JPEG数据格式分析

    添加链接描述 参考如让 感谢原创分享 JPEG数据分析 分析对象是一幅8x8的jpg图片 如下 图片已被放大并被虚线切分 这里写图片描述 用windows照片查看器查看图片详细信息 信息 参数 大小 667字节 尺寸 8x8 宽度 8像素
  • 【干货】Spring远程命令执行漏洞(CVE-2022-22965)原理分析和思考

    前言 上周网上爆出Spring框架存在RCE漏洞 野外流传了一小段时间后 Spring官方在3月31日正式发布了漏洞信息 漏洞编号为CVE 2022 22965 本文章对该漏洞进行了复现和分析 希望能够帮助到有相关有需要的人员进一步研究 1
  • 《热题100》字符串、双指针、贪心算法篇

    思路 对于输入的的字符串 只有三种可能 ipv4 ipv6 和neither ipv4 四位 十进制 无前导0 小于256 ipv6 八位 十六进制 无多余0 00情况不允许 不为空 class Solution def solve sel
  • 区块链扩容系列之Plasma MVP

    以太坊低TPS一直被诟病 最近V神提出一种将以太坊TPS提升到500的方案 一经发表就被BM调侃 可见以太坊低TPS目前确实严重阻碍了以太坊的发展 连V神都不得不经常发声 我们知道以太坊低TPS的一个关键原因是以太坊采用POW 因而将部分交