本文意在讲解 StarkEX 为支持快速取款(Fast Withdrawel)(在一个区块时间内从 Layer-2 中取款到任意 Layer-1 地址)而提出的解决方案。本方案的优点在于,其速度完全独立于 L2 的运营者生成有效性证明的速度。
快速取款模块已经运行在以太坊主网的 StarkEx 上(自 2020 年 10 月 StarkEx 2.0 发布始),并且赋能了 DeversiFi 交易所和 dYdX 交易所。
而下文我们讲解的方案除了快速取款以外,还有非常多的使用场景。我们先来了解一下需求是什么。
区块链使得两方之间的免信任交互成为可能。Alice 想发布一笔仅在特定条件满足时才能执行的交易;Bob 希望在条件满足时能直接执行 Alice 的交易、不必再次获得 Alice 的许可。我们把支持此类交互模式的元件称作 “有条件交易(Conditional Transaction,CT)”。
俄罗斯财政部草案:禁止数字货币支付 但“有条件地”允许加密货币交易:2月22日消息,据俄罗斯财政部近日向俄罗斯政府提交的“关于数字货币”的联邦法律草案,虽然俄罗斯将继续禁止在俄罗斯联邦境内使用数字货币作为支付手段,但允许公民在获得许可和客户识别的情况下交易加密货币。该法案定义了对可以开展与数字货币流通组织相关的活动的交易所和运营商的要求。这些要求涉及公司治理、报告、信息存储、内部控制和审计、风险管理系统和自有资金数额。此类公司的活动将由政府确定的授权机构许可和控制。外国加密货币交易所必须在俄罗斯注册才能获得许可证。此外,为保护投资者权益,交易所将被要求提示公民购买数字货币的高风险。公民在购买加密货币之前必须进行在线测试,这将决定对数字货币投资细节的了解程度和对可能风险的认识。成功完成测试后,公民每年可投资最多60万卢布(约合7500美元)的数字货币。如果测试未通过,则最高投资金额将限制在5万卢布(约合623美元)。若是合格的投资者和法人实体,交易将不受限制。此前2月18日消息,俄罗斯联邦财政部提交“关于数字货币”草案,通知政府就数字资产交易规则发起公众咨询。该部预计将在3月18日之前完成对加密法案的公众咨询。[2022/2/22 10:07:34]
在 L1 上实现 CT 不需要什么奇思妙想,因为智能合约可以保证时间和交易执行的耦合。但如果要求在 L2 中实现,那就有些挑战了。比如,在 StarkEx 中,交易发起人签名之后把交易传递给运营者,后者有责任来执行这笔交易,可是你用什么办法来阻止运营者在所需条件满足之前就执行这笔交易呢?
无锡市滨湖区区长孙海东:滨湖在发展元宇宙生态产业上,有优势、有条件、有底气:金色财经报道,在1月1日无锡市滨湖区举行的“2022太湖湾科创带滨湖创新大会”上,无锡市滨湖区区长孙海东如是表示,“要拿出大格局大气魄,举全区之力、聚各方之智,在优化空间布局、集聚高端创新要素、提升创新能级、厚植产业优势、抢占未来产业等方面,谋求新突破,再造发展新优势。”“滨湖在发展元宇宙生态产业上,有优势、有条件、有底气。” 孙海东说,“从产业上来看,我们重点打造的新一代信息技术、数字文化、集成电路设计产业等,都与元宇宙密切相关。目前,已集聚了一批头部企业、高端项目和优秀人才团队。这将为元宇宙生态产业发展提供坚实产业基础和厚实技术基础。”(科技日报)[2022/1/3 8:20:38]
在本文中,我们只聚焦于在 L2 上实现依赖于 L1 事件(记作 L2 | L1)的 CT。也就是说,这种 CT 要能保证,运营者仅能在某个?链上事件?发生之后才能执行某笔签过名的交易。更进一步,我们将加入一种依赖于另一个 L2 中事件(记作L21 | L22 )的 CT,从而支持 StarkEx 实例之间以及 StarkNet 中的互操作性。
动态 | 数字证券公司Propine获新加坡金融监管局有条件经营许可证:据Finance Magnates今日消息,新加坡金融管理局(MAS)近日将数字证券初创公司Propine纳入其金融科技监管沙箱,并已颁发给Propine有条件的经营许可证。Propine将能够为数字资产提供托管服务。[2019/11/8]
下面,我们来形式化这种链上事件的概念,看看我们如何在 StarkEx 中的 CT 如何利用它。
链上事件的注册
CT 使用了 Fact Registry 合约来跟踪链上事件。实际上,只有在一个 Fact Registry 合约中注册了的事件,才能 “解锁” CT。举个例子,如果 Alice 直接在以太坊链上转账了 1 ETH 给 Bob(而不是通过 Fact Registry 合约),那 CT 是不能因此满足执行前提的。
声音 | 俄罗斯议员:加密法规将再次推迟 但央行或允许人们“有条件”使用加密货币:此前有报道称俄罗斯财政部正考虑立法将加密货币划分为三种类别进行监管,总理Dmitry Medvedev要求确保该法案于11月1日之前通过。但据塔斯社报道,俄罗斯议会将再次推迟加密货币法规。负责起草区块链法案的议会财政委员会主席Anatoly Aksako表示,无法及时准备好该法案。不过,Aksako也表明,可能有办法绕过目前阻碍该法案进展的僵局。Aksakov曾说,在加密货币政策上,俄罗斯正处于一个“十字路口”,面临着二元选择。不过他表示有可能达成“妥协”,“让人们有机会在俄罗斯使用加密货币”。但他补充道,俄罗斯央行需要提供“许可”,并希望保留一定的控制权。Aksakov坦言,央行“坚决反对”加密货币。Aksakov将“无担保加密货币”描述为“真正的危险”,但他认为稳定币“非常真实”,与此同时,俄罗斯最大、最热衷于加密的银行之一——俄罗斯联邦储蓄银行(Sberbank)行长Herman Gref也呼吁政府采取“自由放任”的方式监管稳定币。Gref还认为,Libra可能不会在俄罗斯推出,因为许多俄罗斯企业曾尝试推出类似的数字代币,但均已失败告终。(Cryptonews)[2019/10/13]
在上面这个案例中,Fact Registry 合约需要一个函数?transfer(),Alice 传入 Bob 的地址作为收款方。transfer()?函数做两件事:(1)把需要转移的 ETH 发送给收款方;(2)保存对这笔转账的记录,比如存储这笔转账相关参数(发送者、收款方、数额)的哈希值,到合约的存储项中。Fact Registry 合约还带有一个?isValid()?函数,接受一条哈希值作为参数,返回一个布尔值 —— 如果该条输入的哈希值等于合约中记录的某条哈希值,就返回?True。如此,这个记录在合约中的哈希值,就可以当成是一个事实(某个事件已经发生)的证明。这个为 Fact Registry 合约引入一个新的事实的过程,通常称为 “事实注册”。
分析 | 应对Libra可从“有条件地尝试发行锚定人民币的稳定币”等三方面入手:《中国金融》2019年第15期,北京大学数字金融研究中心王靖一和黄益平联合发文《Libra的艰难征程与中国应对》,文章表示,应对当前的Libra,可以先从以下三个方面入手。第一,尽快打破国内外数字金融行业分割的局面,真正构建全面开放的新格局。第二,在监管“沙盒”的框架下有条件地尝试发行锚定人民币的稳定币,助力人民币国际化进程。第三,未雨绸缪,主动考虑一些应对数字货币冲击的策略。[2019/8/7]
一笔签过名的 CT 所包含的链上事件的指纹有两个字段(实际上是这两个参数的哈希值):(1)一个 Fact Registry 合约的地址;(2)上述合约中应当记录的事实。
StarkEx 有条件交易
StarkEx 会批量打包 Layey-2 中的交易,并使用一条发送到链上的 STARK 证明来结算这些交易。如果某一批次中包含 CT,StarkEx 将保证相关的事实已经注册,以便能清算该批交易;否则,整批交易都会回滚。
在本部分,我们会提出一些应用场景,并指出 CT 如何能用在这些场景中。
详细案例 —— 快速取款
在任意 L2 方案中,最初级的从 L2 转出资金到 L1 中的办法便是终局化一次 L2 的状态更新(在该次更新中包含一笔取款交易)。在基于有效性证明的系统(比如 StarkEx)中,终局化一次 L2 的状态更新需要在链上提交一个相应(于此次更新)的有效性证明,一般来说需要 10 分钟。这就意味着,如果用户使用这种方式来取款,就不得不等待至少 10 分钟。
而快速取款的用意正是为了解耦这种(取款对 L2 状态更新的)依赖,让用户能够在 “区块时间” 内免信任地将资金取出,也即,就像使用普通的以太坊合约一样。
那到底是怎么个流程呢?如果 Alice 想要从 L2 中取出 1 ETH 到 L1,Alice 可以在 L2 上签名一条将 1 ETH 转移给流动性提供者(LP)的 CT,条件是 LP 在 L1 上转移 1 ETH(减去一些手续费)给 Alice。Alice 的 CT 仅能在她收到 L1 上的转账之后才能执行,所以她不会面临对手方风险。
我们来看一个能够协助 CT 的简易的 Fact Registry 合约:
我们可以看到这个合约有一个 payabe 函数?transfer(),它的功能有两个:
(1)转移一定数量的 ETH 到某个地址
(2)登记 keccack(amount, address, nonce)
Alice 签发的 CT 只有 keccack(1 ETH, Alice, nonce) 在 Fact Registry 中注册之后才能执行。而这个事实,也只有在给 Alice 的 1 ETH 转账发生了之后才能成功注册。Alice 可以无需信任地取出 1 ETH,整个过程只需她的前面,和 LP 在以太坊链上发起的一笔交易。
类似的流程可以捕捉到下列类型的事件,从而 L2 的 CT 也可以有更多的用途,例如:
如果 ETH 的价格跌到了 1010 DAI(可以通过一个已知的信息输入服务在链上注册),Alice 希望在 L2 卖出 1 ETH,换回在 L1 上的 1000 DAI
Alice 希望在 L2 上给 Bob 10 ETH,只要 Bob 以 Alice 的名义在 Alice 指定的 dApp (比如 Aave 或者 Compound)中存入 9.5 ETH
Alice 希望在 DeversiFi 的 L2 上给 Bob 10 ETH,只要 Bob 在 dYdX 的 L2 中给 Alice 的账户存入 9.5 ETH
CT 的第一种用途是快速取款,但 StarkEx 运营者可以用这一元件实现许多种类的 L2-L1 交互。
原文链接:
https://medium.com/starkware/conditional-transfers-the-key-to-interoperability-2e1de044fb65
作者:? StarkWare
翻译:?阿剑
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。