织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 竞争币 > 以太坊

他山之石 | 入门二层扩容方案 Optimistic Rollup 运行原理 (2)

时间:2020-06-19 17:53来源:未知 作者:admin 点击:
学校里有 1000 名学生,每名学生每天签发 1 条消息,每条消息的平均燃料费是 0.1 美元,则学校每月的开销是: 1000 名学生 x 1 条消息 / 每天 / 学生 x 0.1 美

  学校里有 1000 名学生,每名学生每天签发 1 条消息,每条消息的平均燃料费是 0.1 美元,则学校每月的开销是:

  1000 名学生 x 1 条消息 / 每天 / 学生 x 0.1 美元燃料费 / 消息 x 30 天 / 月

  = 3000 美元 燃料费 / 月。

  心疼。

  解决方案 v2

  囊中羞涩的学校无法负担每月 3000 美元的开销。

  这时候就需要 Optimistic Rollups (ORU)前来救场了。Jamal 说,通过 ORU,学校可以使燃料费降低 99%左右,方法如下:

  当学生点击「签名并发送」时,签名后的消息还会像以前一样发送到 Jamal 家里的服务器上。但随后,他会把所有这些签名添加到一大串数据中。我们把这些数据叫做 WiSWho (即「谁在和谁约会」):

  WiSWho=「【alice 的 ID,alice 的消息 msg,alice 的签名】、【bob 的 id,bob 的消息,bob 的签名】……

  当然有其他更有效的方法来封装这些 WiSWho 数据,不过先忽略这一点。

  然后,Jamal 广播了一个用他的私钥签名的交易。交易消息显示:

  「本人,Jamal,证明本交易附带的数据(WiSWho)代表了 XX 学生在 X 日 /X 月 /X 年的关系状态,并且我拉钩发誓,这里面包含了全部的事实且只有事实」。

  用行话来说,Jamal 是第二层的「操作员」。

  如果你曾经在以太坊上进行过交易,那么你会知道这些附加数据的去向,即 Etherscan 资源管理器中的「输入数据」字段。如下图所示,在进行简单的以太坊转账时,多数情况下不会填写这个字段。当调用一个函数时,例如 Uniswap 的交换函数,会附加上函数名称及函数输入。而且,WiSWho 就是在这里被附加到了 Jamal 的交易中。Jamal 的交易是对第一层 ORU 合约中一个函数的调用。

  左:无数据附加到简单的 Ether 转账交易。右:附加 Uniswap 的函数名称及输入(例如:min_tokens 是需要接收的金额)作为数据。

  只有 Jamal 的签名能校验以太坊上的这一份 ORU 合约。就第一层而言,WiSWho 中的学生签名只是一块又一块「冰冷的」二进制数据。

  这便是可扩展性取得进展的缘由:第一层上的全节点不会校验 WiSWho 内部的签名,而是仅校验 ORU 操作者的签名,并将附加的数据保存起来。

  接下来,我们看看为什么这些数据必须永远只能由全节点保存。

  悬念

  你可能已经在上面 Jamal 的签名消息中,注意到了两个被强调的词语:

  全部的事实

  只有事实

  缺点(1)——审查。即在 Bob 的收买下,Jamal 恶意地审查了 Alice 的消息。Bob 和 Alice 吵架了,于是想要破坏 Alice 的浪漫生活。

  缺点(2)——欺诈。即 Jamal 加入了一条或多条无效的消息。例如,Jamal 在 Alice 的消息中加入信息,说:「我正在同时和 10 个男孩和 10 个女孩约会」,而实际上,Alice 根本没有签署过这样的消息。在 WiSWho 中,Jamal 加入的 Alice 签名是无效的,是伪造的签名。他这么做的原因可能是 Bob 收买了他,想要伤害 Alice,或者是 Jamal 本人憎恨 Alice,想让她尴尬。正向我们所说的那样,ORU 智能合约不会检查 WiSWho 内部内容的有效性,因为这么做会违背 ORU 的初衷:增加燃料费(签名校验可不便宜),并且在本质上变成了上述不可持续的解决方案 v1。 (责任编辑:admin1)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容