专栏首页本体研究院Ontology Layer 2链下扩容技术上线测试网,率先构建公链平台完整体系

Ontology Layer 2链下扩容技术上线测试网,率先构建公链平台完整体系

前言

试想这样一个场景,一个区块链平台业务迅猛发展,用户数量呈现井喷式增长,很快从百万级达到了千万级,短时间内带来了相关成本的急剧上升。此时此刻,什么样的方式能够继续保持业务体系的高效运转,不必因为复杂的共识和确认流程而阻碍发展步伐?扩容,就成为了企业选择技术解决方案的一条必经之路。

作为一种链下扩容技术,Layer 2具备高性能、低费率的特性,并拥有足够的去中心化和不可篡改性。企业可以放心地将大量的交易记录存在链下,在需要交互时再转移到链上,如此一来便可降低用户的交易成本,带来性能上的飞跃。

基本介绍

作为最新发布的 Aristotle 2020路线图中 Ontology 2.0技术体系的重要组成部分,连同此前发布的跨链、Wasm-JIT、Multi-VM 等多项前沿核心技术,Ontology Layer 2可实现全网领先性能,具体体现为存储成本低、多语言支持和解析执行版本完全兼容,使得部署合约能够像在同一台电脑上运行多个虚拟操作系统一样无缝交互,带来更高的执行效率与更低廉的手续费用。

工作流程

Ontology Layer 2主要包括3个主体部分,Ontology Deposit 到 Layer 2、Layer 2 Withdraw 到 Ontology 以及 Layer 2交易和安全性保证。

在 Layer 2交易中心,用户进行转账或执行合约请求并进行签名。这个交易可以和 Ontology 主链交易格式一致,也可以有所不同。交易收集者(以下简称 Collector)负责收集用户的 Layer 2交易,在整个过程中可以有多个 Collector 存在,用户可以将自己的 Layer 2交易广播给多个 Collector。

Collector 周期性地打包收集到的 Layer 2交易并运行,产生新的 State。Collector 负责将新 State 的 Root 提交到本体主链。在执行 Layer 2区块中打包的交易后,新 State 的 Root 为该 Layer 2区块 State。而 Challenger 负责验证 Collector 提交到本体主链的 Layer 2区块 State,这要求 Challenger 通过 Collector 同步 Layer 2区块,从而维护完整的全局状态。

账户状态证明包括账户状态信息以及其 merkle 证明,可以从 Collector 和 Challenger 查询来获取,只有他们维护有完整的全局状态。

Deposit 到 Layer 2

  1. 用户首先在 Ontology 主链进行 Deposit 操作,主链合约锁定用户 deposit 的资金,记录这笔资金在 Layer 2的状态,此时状态为“未释放”。
  2. Collector 查询到本体主链上有 Deposit 操作,collector 会在 Layer 2根据 Deposit 的操作修改其 State,Collector 增加一个Deposit 释放交易,并和收集的其他用户交易一起打包到 Layer 2区块,提交这个 Layer 2 区块 State 到本体主链时,会附带提交 Deposit 已经释放的请求。
  3. 主链合约执行 Deposit 释放操作,修改 Deposit 资金状态为“已释放”。

Withdraw 到 Ontology

  1. 用户构造 Withdraw 的 Layer 2交易并提交给 Collector;
  2. Collector 根据 Withdraw 修改其 State,同时打包该 Withdraw 交易以及其他用户交易一起到一个 Layer 2区块,提交这个Layer 2区块 State 到本体主链时,会附带提交 Withdraw 请求;
  3. 主链合约执行 Withdraw 请求,记录一笔资金记录,并设置状态为“未释放”;
  4. 在 State 确认后,用户提交 Withdraw 释放请求;
  5. 主链合约执行 Withdraw 释放请求,给目标账户转账,同时设置 Withdraw 记录为“已释放”。

Layer 2交易以及安全性保证

- Layer 2交易

  1. 用户构造 Transfer 的 Layer 2交易并提交给 Collector;
  2. Collector 打包该 transfer 交易以及其他交易到一个 Layer 2区块,执行区块中的交易,提交这个 Layer 2区块 State 到本体主链;
  3. 等待 State 确认。

- 安全性保证

在 Operator 向本体主链提交 Layer 2区块 State 后,Challenge 可以同样运行 Layer 2区块的交易并验证 Layer 2区块 State 的正确性,如果不正确,Challenger 可以生成 Layer 2合约可以解释的欺诈证明挑战 Operator。

如何体验

目前,Ontology Layer 2已上线测试网,开发者可抢先进行体验。

链接:http://152.32.217.204/

文档链接:https://github.com/ontio/layer2

下一篇,我们将带来详细的与其他链上 Layer 2的性能对比。

附录:名词解释

Layer 2交易

用户在 Layer 2进行转账或者执行合约的请求,用户已经对其签名。这个交易可以和本体主链的交易格式一样,也可以不一样。

Collector

Collector 是 Layer 2交易收集器,它负责收集用户的 Layer 2交易,验证并执行交易,每生成一个L ayer 2区块,Collector 负责执行区块中的交易,更新状态,并生成 Layer 2合约可以解释的、用于安全性保证的状态证明。

Layer 2区块

Collector 周期性的打包收集到的 Layer 2交易,生成一个包含这期间所有 Layer 2交易的区块,产生一个新的 Layer2区块。

Layer 2 State

Collector 执行 Layer 2区块中打包的交易,更新状态,将所有更新的状态数据排序生成一个 Merkle 树,计算 Merkle 树的根 hash,该根hash即为该区块的 Layer 2 State。

Operator

Operator 是 Layer 2的安全守护程序,负责监听本体主链是否有到 Layer 2的代币转移或者 Layer 2到本体主链的代币转移交易,同时 Operator 还负责周期性的将 Layer 2的状态证明提交到本体主网作为证明。

Challenger

负责验证 Operator 提交到本体主链的状态证明。这要求 Challenger 从 Operator 或者链上同步 Layer 2交易,维护完整的全局状态。在 Challenger 同步执行交易并更新状态后,可以验证 Operator 提交在本体主网的状态证明正确性,如果不正确,Challenger 可以生成 Layer 2合约可以解释的欺诈证明挑战 Operator。

账户状态证明

包括账户状态信息以及其 Merkle 证明,可以从 Operator 和 Challenger 查询来获取。只有他们维护有完整的全局状态。

欺诈证明

欺诈证明包含当前 Layer 2区块更新之前账户状态证明。因为有以前 Layer 2区块的状态证明以及提交的账户状态证明,可以证明更新之前旧状态的合法性,在旧状态合法的情况下,运行当前区块即可证明新的状态证明合法性。


本文分享自微信公众号 - 本体研究院(ontologyresearch),作者:本体君

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 本体技术视点 | Ontology Layer 2全网性能综合对比分析

    上一期我们详细介绍了 Ontology Layer 2的工作流程。主要包括3个主体部分,Ontology Deposit 到 Layer 2、Layer 2 W...

    本体Ontology
  • 本体技术视点 | 想用Wasm开发dApp?你不得不读的入门教程(1)

    Ontology Wasm 自从上线测试网以来,得到了社区开发人员的极大关注。同时,Ontology Wasm 也即将上线主网。我们知道,Ontology Wa...

    本体Ontology
  • 本体技术视点 | Python智能合约终极篇:合约执行引擎API

    在前两期的本体技术视点中,我们介绍了跨合约静态调用与动态调用,讲述了如何使用 RegisterAppCall API 与 DynamicAppCall API ...

    本体Ontology
  • UI篇-Layer几个关键点补充

    强大的UIView是基于 CALayer实现的,它的重要性不言而喻,相信大家也都有自己的研究和理解,今天这片文章里的内容是几个关键点的补充。

    進无尽
  • 彻底搞懂感受野的含义与计算

    感受野(Receptive Field),指的是神经网络中神经元“看到的”输入区域,在卷积神经网络中,feature map上某个元素的计算受输入图像上某个区域...

    李拜六不开鑫
  • 网站被黑后和网站被入侵更好的处理解决办法

    早上刚上班就有新客户咨询我们Sinesafe安全公司反映说收到一条阿里云的短信过来,内容为:网站木马文件提醒018-06-20 09:20:49尊敬的***网:...

    网站安全专家
  • PHP常用函数 随机生成字符串

    在平时开发中会用到随机生成授权码,生成账户信息,生成密码,都需要随机字符串的生成,接下来上代码。

    Debug客栈
  • Java HashSet

    HashSet继承自AbstractSet,实现了Set接口、Cloneable、Serializable接口。

  • Shell的字符串处理

    在Shell编程快速入门指南一文中已经简单介绍了字符串的变量命名、截取、获取长度等操作,但通常我们对字符串的操作的需求远远不止这些,Shell本身一起已经内置了...

    用户1515472
  • Kali Linux Web渗透测试手册(第二版) - 1.2 - Firefox浏览器下安装一些常用的插件

    1.2、为渗透测试配置web浏览器(即在Firefox浏览器下安装一些常用的插件)

    用户1631416

扫码关注云+社区

领取腾讯云代金券