有条件转账: 实现 L1-L2 互操作性的关键

本文意在讲解StarkEX为支持快速取款而提出的解决方案。本方案的优点在于,其速度完全独立于L2的运营者生成有效性证明的速度。

快速取款模块已经运行在以太坊主网的StarkEx上,并且赋能了DeversiFi交易所和dYdX交易所。

而下文我们讲解的方案除了快速取款以外,还有非常多的使用场景。我们先来了解一下需求是什么。

需求

区块链使得两方之间的免信任交互成为可能。Alice想发布一笔仅在特定条件满足时才能执行的交易;Bob希望在条件满足时能直接执行Alice的交易、不必再次获得Alice的许可。我们把支持此类交互模式的元件称作“有条件交易”。

在L1上实现CT不需要什么奇思妙想,因为智能合约可以保证时间和交易执行的耦合。但如果要求在L2中实现,那就有些挑战了。比如,在StarkEx中,交易发起人签名之后把交易传递给运营者,后者有责任来执行这笔交易,可是你用什么办法来阻止运营者在所需条件满足之前就执行这笔交易呢?

俄罗斯财政部草案:禁止数字货币支付 但“有条件地”允许加密货币交易:2月22日消息,据俄罗斯财政部近日向俄罗斯政府提交的“关于数字货币”的联邦法律草案,虽然俄罗斯将继续禁止在俄罗斯联邦境内使用数字货币作为支付手段,但允许公民在获得许可和客户识别的情况下交易加密货币。该法案定义了对可以开展与数字货币流通组织相关的活动的交易所和运营商的要求。这些要求涉及公司治理、报告、信息存储、内部控制和审计、风险管理系统和自有资金数额。此类公司的活动将由政府确定的授权机构许可和控制。外国加密货币交易所必须在俄罗斯注册才能获得许可证。此外,为保护投资者权益,交易所将被要求提示公民购买数字货币的高风险。公民在购买加密货币之前必须进行在线测试,这将决定对数字货币投资细节的了解程度和对可能风险的认识。成功完成测试后,公民每年可投资最多60万卢布(约合7500美元)的数字货币。如果测试未通过,则最高投资金额将限制在5万卢布(约合623美元)。若是合格的投资者和法人实体,交易将不受限制。此前2月18日消息,俄罗斯联邦财政部提交“关于数字货币”草案,通知政府就数字资产交易规则发起公众咨询。该部预计将在3月18日之前完成对加密法案的公众咨询。[2022/2/22 10:07:34]

在本文中,我们只聚焦于在L2上实现依赖于L1事件的CT。也就是说,这种CT要能保证,运营者仅能在某个?链上事件?发生之后才能执行某笔签过名的交易。更进一步,我们将加入一种依赖于另一个L2中事件的CT,从而支持StarkEx实例之间以及StarkNet中的互操作性。

国家发改委等五部门:支持有条件的城市培育壮大区块链、云计算等数字产业:11月30日,国家发展改革委等五部门发布《“十四五”支持老工业城市和资源型城市产业转型升级示范区高质量发展实施方案》(简称《方案》)提出,积极支持示范区城市符合条件的企业上市。

《方案》提出,深化信息技术与制造业融合发展,支持有条件的城市培育壮大人工智能、大数据、区块链、云计算、网络安全等数字产业,推动知识、信息、数据等新生产要素合理流动、有效集聚和利用。加快构筑数字社会,支持发展远程办公、远程教育、远程医疗、智慧楼宇、智慧社区和数字家庭。(证券日报)[2021/12/1 12:43:19]

下面,我们来形式化这种链上事件的概念,看看我们如何在StarkEx中的CT如何利用它。

有条件交易简介

纽约将考虑颁发有条件的加密许可证:五年前,纽约发布了比特币金融牌照(BitLicense),该牌照被认为不利于加密行业发展。6月24日,纽约金融服务部(NYDFS)表示,它将考虑颁发有条件的许可证,根据该许可证,初创企业将被允许与现有的许可实体合作,在纽约开始运营。?该机构还敲定了去年提议的许可实体代币上市指南,并发布了文件以帮助寻求BitLicense的公司。NYDFS负责人Linda Lacewell表示,这些举措是为了回应加密行业和其他方面的反馈。(Coindesk)[2020/6/24]

链上事件的注册

CT使用了FactRegistry合约来跟踪链上事件。实际上,只有在一个FactRegistry合约中注册了的事件,才能“解锁”CT。举个例子,如果Alice直接在以太坊链上转账了1ETH给Bob,那CT是不能因此满足执行前提的。

动态 | 加密交易所Luno获马来西亚证券委员会有条件批准:据cryptoninjas消息,全球加密货币交易所Luno今天宣布,马来西亚证券委员会(SC)已有条件的批准Luno提交的数字资产交易所的申请。在SC确认Luno满足要求条件后,Luno将成为马来西亚受监管的三大加密货币交易所之一。[2019/6/4]

在上面这个案例中,FactRegistry合约需要一个函数?transfer(),Alice传入Bob的地址作为收款方。transfer()?函数做两件事:把需要转移的ETH发送给收款方;保存对这笔转账的记录,比如存储这笔转账相关参数的哈希值,到合约的存储项中。FactRegistry合约还带有一个?isValid()?函数,接受一条哈希值作为参数,返回一个布尔值——如果该条输入的哈希值等于合约中记录的某条哈希值,就返回?True。如此,这个记录在合约中的哈希值,就可以当成是一个事实的证明。这个为FactRegistry合约引入一个新的事实的过程,通常称为“事实注册”。

声音 | 社科院赵磊:对待成熟的数字货币 可有条件放开交易:据中国法律评论消息 ,中国社会科学院法学研究所副研究员赵磊称,比特币的出现深受货币非国家化思想的影响,其天然就排斥来自政府的监管以及任何第三方的干预。排斥监管是区块链技术的天然属性。而一旦区块链技术大量应用到各种社会场景中去,不可避免地会涉及投资人、参与者、普通消费者与国家等多方利益,带来许多社会问题。从目前区块链技术发展阶段来看,主要应该采取以下三方面监管措施:一是对待首次代币发行(ICO)要加强监管;二是对待成熟的数字货币,可有条件放开交易;三是使用技术手段监管区块链在金融、法律以及其他行业的应用。[2019/1/3]

一笔签过名的CT所包含的链上事件的指纹有两个字段:一个FactRegistry合约的地址;上述合约中应当记录的事实。

StarkEx有条件交易

StarkEx会批量打包Layey-2中的交易,并使用一条发送到链上的STARK证明来结算这些交易。如果某一批次中包含CT,StarkEx将保证相关的事实已经注册,以便能清算该批交易;否则,整批交易都会回滚。

有条件交易的案例

在本部分,我们会提出一些应用场景,并指出CT如何能用在这些场景中。

详细案例——快速取款

在任意L2方案中,最初级的从L2转出资金到L1中的办法便是终局化一次L2的状态更新。在基于有效性证明的系统中,终局化一次L2的状态更新需要在链上提交一个相应的有效性证明,一般来说需要10分钟。这就意味着,如果用户使用这种方式来取款,就不得不等待至少10分钟。

而快速取款的用意正是为了解耦这种依赖,让用户能够在“区块时间”内免信任地将资金取出,也即,就像使用普通的以太坊合约一样。

那到底是怎么个流程呢?如果Alice想要从L2中取出1ETH到L1,Alice可以在L2上签名一条将1ETH转移给流动性提供者的CT,条件是LP在L1上转移1ETH给Alice。Alice的CT仅能在她收到L1上的转账之后才能执行,所以她不会面临对手方风险。

我们来看一个能够协助CT的简易的FactRegistry合约:

我们可以看到这个合约有一个payabe函数?transfer(),它的功能有两个:

转移一定数量的ETH到某个地址

登记keccack(amount,address,nonce)

Alice签发的CT只有keccack(1ETH,Alice,nonce)在FactRegistry中注册之后才能执行。而这个事实,也只有在给Alice的1ETH转账发生了之后才能成功注册。Alice可以无需信任地取出1ETH,整个过程只需她的前面,和LP在以太坊链上发起的一笔交易。

更多应用场景

类似的流程可以捕捉到下列类型的事件,从而L2的CT也可以有更多的用途,例如:

如果ETH的价格跌到了1010DAI,Alice希望在L2卖出1ETH,换回在L1上的1000DAI

Alice希望在L2上给Bob10ETH,只要Bob以Alice的名义在Alice指定的dApp中存入9.5ETH

Alice希望在DeversiFi的L2上给Bob10ETH,只要Bob在dYdX的L2中给Alice的账户存入9.5ETH

总结

CT的第一种用途是快速取款,但StarkEx运营者可以用这一元件实现许多种类的L2-L1交互。

原文链接:

https://medium.com/starkware/conditional-transfers-the-key-to-interoperability-2e1de044fb65

作者:?StarkWare

翻译:?阿剑

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

芝麻开门交易所NFT火热 短暂泡沫还是长期趋势?

有些人正在从NFT中赚取大笔资金,几乎每个人都可以碰碰运气并体验这个新兴的利基市场。艺术爱好者Danny表示,NFT通往大规模采用的道路已经开始了,而Steinwold认为,NFT将成为世界上最大的市场之一.

[0:15ms0-2:479ms