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

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

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

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

需求

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

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

Paypal成为首家获得“有条件的”BitLicense牌照的公司:Paypal在10月22日宣布将支持四种加密货币——BTC、ETH、LTC、BCH的买卖和用这些加密货币购物的前一天,Paypal从纽约金融服务部门(NYDFS)处获得了“有条件的”BitLicense牌照。

据悉,Bitlicense牌照于2015年推出,是最难获得的牌照之一,目前只有24家公司被颁发这一牌照。基于此,纽约监管部门推出了“有条件的”BitLicense牌照,作为一种临时方案。要获得这种牌照,申请公司必须与获得完整BitLicense牌照的公司合作。此次Paypal能获得这一牌照,主要是因为与完整牌照持有方Paxos达成了合作。[2020/10/22]

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

盘和林:美国有条件利用比特币进行全球资产配置,但割全球“韭菜”可能性不大:中南财经政法大学数字经济研究院执行院长盘和林在接受采访时表示,从所拥有的资源来看,美国有条件利用比特币来进行全球资产的配置。不过,从现实上角度来说,盘和林认为,美国割全球的“韭菜”可能性不大。盘和林分析称,如果美国想达到最后的“目的”,这个链条还需要一个关键环节,那就是美国必须出面强制要求其他国家承认比特币的结算,尤其是与关键资源(如石油等)相挂钩。在那个时候,美国才可以在比特币建立的货币体系里占据绝对的主动权。客观来看,虽然存在这种可能,而且美国也是最具有这个条件的国家,但是可能性并不是特别大。其原因在于目前许多国家都在努力摆脱美元的束缚,包括伊朗等国家都在探索属于自己的数字货币或者是和资源挂钩的资源货币,不一定会被迫认可比特币的价值。他表示:“而没有了流通价值,比特币又能具有多大的价值呢?”(中新经纬)[2020/7/29]

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

声音 | 中国银行前行长李礼辉:须警惕美国有条件批准Libra:在1月13日北大国发院举办的“数字货币未来”研讨会暨《数字货币-领导干部读本》发布会上,中国银行前行长、第十二届全国人大财经委委员李礼辉称:“目前为止,Libra在美国国内也还受到很多质疑,包括来自美国的政客和政府部门。但在法规之外,到底有什么东西是能够打动美国的政府、政客的?我觉得应该是国家的经济金融战略。地缘,或者说大国间的经济金融竞争,也许会让美国有条件批准Libra。”(小葱)[2020/1/13]

有条件交易简介

链上事件的注册

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

声音 | 俄罗斯议员:加密法规将再次推迟 但央行或允许人们“有条件”使用加密货币:此前有报道称俄罗斯财政部正考虑立法将加密货币划分为三种类别进行监管,总理Dmitry Medvedev要求确保该法案于11月1日之前通过。但据塔斯社报道,俄罗斯议会将再次推迟加密货币法规。负责起草区块链法案的议会财政委员会主席Anatoly Aksako表示,无法及时准备好该法案。不过,Aksako也表明,可能有办法绕过目前阻碍该法案进展的僵局。Aksakov曾说,在加密货币政策上,俄罗斯正处于一个“十字路口”,面临着二元选择。不过他表示有可能达成“妥协”,“让人们有机会在俄罗斯使用加密货币”。但他补充道,俄罗斯央行需要提供“许可”,并希望保留一定的控制权。Aksakov坦言,央行“坚决反对”加密货币。Aksakov将“无担保加密货币”描述为“真正的危险”,但他认为稳定币“非常真实”,与此同时,俄罗斯最大、最热衷于加密的银行之一——俄罗斯联邦储蓄银行(Sberbank)行长Herman Gref也呼吁政府采取“自由放任”的方式监管稳定币。Gref还认为,Libra可能不会在俄罗斯推出,因为许多俄罗斯企业曾尝试推出类似的数字代币,但均已失败告终。(Cryptonews)[2019/10/13]

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

一笔签过名的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

翻译:?阿剑

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

金宝趣谈

币赢LOEx进取区3月22日15:00上线BAS

尊敬的LOEx用户:LOEx进取区上线BAS!并开放BAS/USDT交易对具体时间如下:充提币:4月22日15:00交易对:3月22日15:00注:未到充值开放时间请勿提前充值.

[0:15ms0-4:426ms