今日实时汇率
持有
美元 USD 人民币 CNY 欧元 EUR 英镑 GBP 澳元 AUD 加元 CAD 日元 JPY 港币 HKD 印度卢比 INR 澳门元 MOP 韩元 KRW 墨西哥比索 MXN 阿联酋迪拉姆 AED 阿富汗尼 AFN 阿尔巴尼列克 ALL 亚美尼亚德拉姆 AMD 荷兰盾 ANG 安哥拉宽扎 AOA 阿根廷比索 ARS 阿鲁巴弗罗林 AWG 阿塞拜疆马纳特 AZN 波黑可兑换马克 BAM 巴巴多斯元 BBD 孟加拉国塔卡 BDT 保加利亚列弗 BGN 巴林第纳尔 BHD 布隆迪法郎 BIF 百慕达元 BMD 文莱元 BND 玻利维亚诺 BOB 巴西雷亚尔 BRL 巴哈马元 BSD 不丹努尔特鲁姆 BTN 博茨瓦纳普拉 BWP 白俄罗斯卢布 BYN 伯利兹元 BZD 刚果法郎 CDF 瑞士法郎 CHF 智利比索 CLP 哥伦比亚比索 COP 哥斯达黎加科朗 CRC 古巴比索 CUP 佛得角埃斯库多 CVE 捷克克朗 CZK 吉布提法郎 DJF 丹麦克朗 DKK 多米尼加比索 DOP 阿尔及利亚第纳尔 DZD 埃及镑 EGP 厄立特里亚纳克法 ERN 埃塞俄比亚比尔 ETB 斐济元 FJD 福克兰镑 FKP FOK募集币 FOK 格鲁吉亚拉里 GEL 格恩西岛磅 GGP 加纳塞地 GHS 直布罗陀镑 GIP 冈比亚达拉西 GMD 几内亚法郎 GNF 危地马拉格查尔 GTQ 圭亚那元 GYD 洪都拉斯伦皮拉 HNL 克罗地亚库纳 HRK 海地古德 HTG 匈牙利福林 HUF 印度尼西亚卢比 IDR 以色列新谢克尔 ILS 马恩磅 IMP 伊拉克第纳尔 IQD 伊朗里亚尔 IRR 冰岛克郎 ISK 新泽西岛磅 JEP 牙买加元 JMD 约旦第纳尔 JOD 肯尼亚先令 KES 吉尔吉斯斯坦索姆 KGS 柬埔寨瑞尔 KHR 基里巴斯 KID 科摩罗法郎 KMF 科威特第纳尔 KWD 开曼群岛元 KYD 哈萨克斯坦坚戈 KZT 老挝基普 LAK 黎巴嫩镑 LBP 斯里兰卡卢比 LKR 利比里亚元 LRD 莱索托洛蒂 LSL 利比亚第纳尔 LYD 摩洛哥迪拉姆 MAD 摩尔多瓦列伊 MDL 马达加斯加阿里亚里 MGA 马其顿代纳尔 MKD 缅甸元 MMK 蒙古货币 MNT 毛塔币 MRU 毛里求斯卢比 MUR 马尔代夫拉菲亚 MVR 马拉维克瓦查 MWK 林吉特 MYR 莫桑比克新梅蒂卡尔 MZN 纳米比亚元 NAD 尼日利亚奈拉 NGN 尼加拉瓜新科多巴 NIO 挪威克朗 NOK 尼泊尔卢比 NPR 新西兰元 NZD 阿曼里亚尔 OMR 巴拿马巴波亚 PAB 秘鲁新索尔 PEN 巴布亚新几内亚基那 PGK 菲律宾比索 PHP 巴基斯坦卢比 PKR 波兰兹罗提 PLN 巴拉圭瓜拉尼 PYG 卡塔尔里亚尔 QAR 罗马尼亚列伊 RON 塞尔维亚第纳尔 RSD 俄罗斯卢布 RUB 卢旺达法郎 RWF 沙特里亚尔 SAR 所罗门群岛元 SBD 塞舌尔卢比 SCR 苏丹镑 SDG 瑞典克朗 SEK 新加坡元 SGD 圣赫勒拿镑 SHP 英镑SLE SLE 塞拉利昂利昂 SLL 索马里先令 SOS 苏里南元 SRD 南苏丹币 SSP 圣多美多布拉 STN 叙利亚镑 SYP 斯威士兰里兰吉尼 SZL 泰铢 THB 塔吉克斯坦索莫尼 TJS 土库曼斯坦马纳特 TMT 突尼斯第纳尔 TND 汤加潘加 TOP 土耳其里拉 TRY 特立尼达多巴哥元 TTD 图瓦卢元 TVD 新台币 TWD 坦桑尼亚先令 TZS 乌克兰格里夫纳 UAH 乌干达先令 UGX 乌拉圭比索 UYU 乌兹别克斯坦苏姆 UZS 委内瑞拉玻利瓦尔 VES 越南盾 VND 瓦努阿图瓦图 VUV 萨摩亚塔拉 WST 中非法郎 XAF 东加勒比元 XCD 特别提款权 XDR 西非法郎 XOF 太平洋法郎 XPF 也门里亚尔 YER 南非兰特 ZAR 赞比亚克瓦查 ZMW 津巴布韦币 ZWL
交换
兑换
美元 USD 人民币 CNY 欧元 EUR 英镑 GBP 澳元 AUD 加元 CAD 日元 JPY 港币 HKD 印度卢比 INR 澳门元 MOP 韩元 KRW 墨西哥比索 MXN 阿联酋迪拉姆 AED 阿富汗尼 AFN 阿尔巴尼列克 ALL 亚美尼亚德拉姆 AMD 荷兰盾 ANG 安哥拉宽扎 AOA 阿根廷比索 ARS 阿鲁巴弗罗林 AWG 阿塞拜疆马纳特 AZN 波黑可兑换马克 BAM 巴巴多斯元 BBD 孟加拉国塔卡 BDT 保加利亚列弗 BGN 巴林第纳尔 BHD 布隆迪法郎 BIF 百慕达元 BMD 文莱元 BND 玻利维亚诺 BOB 巴西雷亚尔 BRL 巴哈马元 BSD 不丹努尔特鲁姆 BTN 博茨瓦纳普拉 BWP 白俄罗斯卢布 BYN 伯利兹元 BZD 刚果法郎 CDF 瑞士法郎 CHF 智利比索 CLP 哥伦比亚比索 COP 哥斯达黎加科朗 CRC 古巴比索 CUP 佛得角埃斯库多 CVE 捷克克朗 CZK 吉布提法郎 DJF 丹麦克朗 DKK 多米尼加比索 DOP 阿尔及利亚第纳尔 DZD 埃及镑 EGP 厄立特里亚纳克法 ERN 埃塞俄比亚比尔 ETB 斐济元 FJD 福克兰镑 FKP FOK募集币 FOK 格鲁吉亚拉里 GEL 格恩西岛磅 GGP 加纳塞地 GHS 直布罗陀镑 GIP 冈比亚达拉西 GMD 几内亚法郎 GNF 危地马拉格查尔 GTQ 圭亚那元 GYD 洪都拉斯伦皮拉 HNL 克罗地亚库纳 HRK 海地古德 HTG 匈牙利福林 HUF 印度尼西亚卢比 IDR 以色列新谢克尔 ILS 马恩磅 IMP 伊拉克第纳尔 IQD 伊朗里亚尔 IRR 冰岛克郎 ISK 新泽西岛磅 JEP 牙买加元 JMD 约旦第纳尔 JOD 肯尼亚先令 KES 吉尔吉斯斯坦索姆 KGS 柬埔寨瑞尔 KHR 基里巴斯 KID 科摩罗法郎 KMF 科威特第纳尔 KWD 开曼群岛元 KYD 哈萨克斯坦坚戈 KZT 老挝基普 LAK 黎巴嫩镑 LBP 斯里兰卡卢比 LKR 利比里亚元 LRD 莱索托洛蒂 LSL 利比亚第纳尔 LYD 摩洛哥迪拉姆 MAD 摩尔多瓦列伊 MDL 马达加斯加阿里亚里 MGA 马其顿代纳尔 MKD 缅甸元 MMK 蒙古货币 MNT 毛塔币 MRU 毛里求斯卢比 MUR 马尔代夫拉菲亚 MVR 马拉维克瓦查 MWK 林吉特 MYR 莫桑比克新梅蒂卡尔 MZN 纳米比亚元 NAD 尼日利亚奈拉 NGN 尼加拉瓜新科多巴 NIO 挪威克朗 NOK 尼泊尔卢比 NPR 新西兰元 NZD 阿曼里亚尔 OMR 巴拿马巴波亚 PAB 秘鲁新索尔 PEN 巴布亚新几内亚基那 PGK 菲律宾比索 PHP 巴基斯坦卢比 PKR 波兰兹罗提 PLN 巴拉圭瓜拉尼 PYG 卡塔尔里亚尔 QAR 罗马尼亚列伊 RON 塞尔维亚第纳尔 RSD 俄罗斯卢布 RUB 卢旺达法郎 RWF 沙特里亚尔 SAR 所罗门群岛元 SBD 塞舌尔卢比 SCR 苏丹镑 SDG 瑞典克朗 SEK 新加坡元 SGD 圣赫勒拿镑 SHP 英镑SLE SLE 塞拉利昂利昂 SLL 索马里先令 SOS 苏里南元 SRD 南苏丹币 SSP 圣多美多布拉 STN 叙利亚镑 SYP 斯威士兰里兰吉尼 SZL 泰铢 THB 塔吉克斯坦索莫尼 TJS 土库曼斯坦马纳特 TMT 突尼斯第纳尔 TND 汤加潘加 TOP 土耳其里拉 TRY 特立尼达多巴哥元 TTD 图瓦卢元 TVD 新台币 TWD 坦桑尼亚先令 TZS 乌克兰格里夫纳 UAH 乌干达先令 UGX 乌拉圭比索 UYU 乌兹别克斯坦苏姆 UZS 委内瑞拉玻利瓦尔 VES 越南盾 VND 瓦努阿图瓦图 VUV 萨摩亚塔拉 WST 中非法郎 XAF 东加勒比元 XCD 特别提款权 XDR 西非法郎 XOF 太平洋法郎 XPF 也门里亚尔 YER 南非兰特 ZAR 赞比亚克瓦查 ZMW 津巴布韦币 ZWL
1 美元(USD)=
7.3043 人民币(CNY)
反向汇率:1 CNY = 0.1369 USD
更新时间:2025-04-19 08:02:31
立即换算
假设我们有两种 rollup 解决方案 A 和 B,Alice 想要用 rollup A 上一定数量的代币来换取 rollup B 上同样的代币。已经有人提出方案解决这个问题了,如果 rollup A 和 B 都是完全支持智能合约时,那么就可以去中心化地实现这个假设。然而这篇文章提出的是,当仅有 rollup B 完全地支持智能合约时 (且 rollup A 只能处理简单交易) 如何实现跨 rollup 转账。
我们假定 rollup A 上的交易有某种“备注字段”;如果没有的话,可以使用该交易值的低位数字作为备注发送。
提案
假设我们有一个交换中介 Ivan (在实现时有许多中介可供选择)。Ivan 在 rollup A 中拥有一个 (完全由他控制的账户) IVAN_A。同时,Ivan 还在 rollup B 的智能合约 IVAN_B 中存了一些资金。
智能合约 IVAN_B 具有以下规则:
如果任意用户发送了一笔交易 (发送某代币交易值 TRADE_VALUE 至账户 IVAN_A) ,(交易中还附上了一个目的地址 B DESTINATION 作为备注),则在最小偿还延迟 MIN_REDEMPTION_DELAY 区块之后,该用户就可以返还一笔交易至账户 IVAN_B 中 (其中包括之前的转账证明),然后这笔交易就会排队等候提款至地址 DESTINATION 中。
等待一定的延迟 (例如一天) 后,按照转账打包进 rollup A 的批次和索引顺序处理提款。
当 Ivan 发现其账户 IVAN_A 收到款项时,他就可以亲自发送 TRADE_VALUE * (1 - fee) 代币至 DESTINATION 中。他可以用 IVAN_B 的方法发送交易来完成上述操作,这个方法保存了一个记录,防止合约中的自动发送条款触发该交易。
预期的行为很简单:
Alice 发送一笔交易至账户 IVAN_A 中 (包含 N 代币 和一个备注 ALICE_B)
Ivan 通过 IVAN_B 发送 TRADE_VALUE * (1 - fee) 代币至 ALICE_B 中
第二笔交易紧接着第一笔交易发生。如果 Ivan 可以证明第一笔交易和第二笔交易之间的时间戳差异非常小,那么合约甚至有规则允许提高费用 fee 。
最糟糕的情况是,Ivan 没有如他所期望那样向 ALICE_B 发送代币。遇到这种情况,Alice 可以等待 rollup A 上的交易确认之后,在 rollup B 上找到其他获取代币的替代路径来支付费用,然后就可以自己认领其资金。
资本成本
该方案的主要限制是,IVAN_B 需要持有大量的资金,以确保所有交易发送者都能得到支付。尤其是,假设出现以下情况:
我们将交易上限设置为 TRADE_LIMIT (所以当发送至 IVAN_A 的交易超出限额 value > TRADE_LIMIT 时,交易无效)
每个 rollup 批次最多可以包含 TXS_PER_BATCH 笔交易
Alice 可以自行检查 rollup A 下一批需要处理的交易之前,还有多少未处理的交易,用她在合约 IVAN_B 中的资金减去这些交易的总值,并检查剩余的金额是否足够。由于提款是按顺序处理的 (这是上述的排列机制的目的),Alice 不需要担心合约先处理其他提款申请,再处理她的提款交易申请。
在每批次中最大交易额为 TRADE_LIMIT * TXS_PER_BATCH ,因此 IVAN_B 合约中至少需要这么多的 ETH,还需要额外的资金包含为处理的交易。举个例子,假设交易上限为 0.1 ETH TRADE_LIMIT = 0.1 ETH (交易上限可以设得比较低,因为一笔大额交易可以分成几笔小交易完成),并且每批次可以处理1000笔交易 TXS_PER_BATCH = 1000。那么,合约 IVAN_B 需要持有 100 ETH。
注意,这个设计中还包括隐含的费用,因为交易额超过 0.1 ETH 的任意用户都需要浪费区块空间。这与资本要求相权衡,也就是说,如果用户消耗了一半的区块空间,那么其资本要求将翻倍,反之亦然。如果想要获得合适的平衡,那么隐含的费用要比市场上明确的费用少几倍。
如果我们想要减少或者消除这种消耗,可以这样设计 rollup A:让序列器发送一个已签名的信息,该信息证明了 Alice 在该批次的所有交易。然后 Alice 就会知道在她之前没有交易 (尽管恶意的序列器可以欺骗 Alice,但是作恶代价会很高)。
备注
上述设计基于一个假设:Rollup A 上的交易有一个备注字段,Alice 可以通过该备注指定 ALICE_B 作为她接收代币的目的地址。如果 rollup 没有这种特性,那么我们可以使用以下解决方案。Alice 可以在 rollup B 上的一个以顺序登记的合约上注册账号 ALICE_B ,并获得一个按顺序分配的 ID (因此 Alice 的 ID 等于在她之前注册的用户数量)。
设置用户数的最大值 MAX_USER_COUNT ;如果有必要,这个值可以随时间向上调整。则 Alice 可以确保 TRADE_VALUE % MAX_USER_COUNT 等于 (Alice 的 ID),使用 TRADE_VALUE 的低位数字 (这个数字是这笔交易的一个小数值) 来表示她想交易的代币数量。
从 Rollup B 到 Rollup A 的交易
如果 Alice 把 Rollup B 上的代币转移到 Rollup A,她可以使用相同的机制,只是角色颠倒了:
Alice 将代币发送给 IVAN_B
经过一段时间的延迟后,她将获得取回代币的权利
如果 Ivan 可以向 IVAN_B 证明,他在 Rollup A 上给 Alice 发送了代币,Alice 就失去了这个权利
原文链接:https://ethresear.ch/t/cross-rollup-dex-with-smart-contracts-only-on-the-destination-side/8778