👨‍🚀 Glaze & Jasmine:喜欢我们新的设计吗?

👩‍🎨 在过去的两周时间里,我们和团队的新设计师 Jenny 共同合作完成了 un.Block 新形象的设计;于此同时,我们的 Substack 邮件订阅破百 🎉,感谢大家的一路支持。本期 un.Block 的内容主要是对前几期内容的拓展与延伸,将和大家分享通过链下撮合形式的 DEX CowSwap;系统地和大家讲解 Gas Fee 机制。

如果你喜欢本期内容,不妨在阅读后给我们点个 ⚡️ ,并在下方订阅 un.Block Weekly 

🔥本周热点:CowSwap

在上一期中,我们为大家介绍了 DEX。这一期我们为大家剖析链下撮合交易,P2P 的 CowSwap

CowSwapGnosis 在正式推出 GPV2(Gnosis Protocol V2) 前的一次尝试。未来这些新功能也会集成到 Balancer 中。 CowSwap 使用链下撮合交易的方式。在不采用流动性提供者的情况下 CowSwap 为用户提供低手续费的代币兑换服务。

⚙️ 使用流程

使用 CowSwap 进行代币兑换的流程与其他 DEX 差别不大。选好交易对后,点击 Approve Allowance,允许合约使用你选定的代币。这一步所有 DEX 都有,需要上链,并收取一定的Gas Fee。令CowSwap独特的是交易的最后一步。Approve Allowance 成功上链以后,点击 Swap 只需要进行签名,不需要上链,也就是说不像其他 DEX 一样需要 Gas Fee。

需要注意的时目前CowSwap 是 Alpha 阶段,CowSwap 提供了90% 的 Gas Fee 补贴和 0 协议费用。

图片来源

🔨 原理

与我们之前介绍的 Uniswap 等 DEX 不同,CowSwap 不采用 AMM(Auto Market Maker)。基于 GPV2 的 CowSwap 更像是采用 Orderbook 的路线。

为了节省 Gas Fee,交易的撮合在线下完成。如果交易不能成功结算,CowSwap 会调用 Uniswap 等 DEX 进行交易。用户只要提供一份签名,多个 Solver 便会在链下为用户寻找最好的结算方式,并通过 CowSwap API 进行提交。

GPV2 会奖励提供最佳结算方式的 Solver。通过 CowSwap 的验证后,用户的交易便会进行结算。由于是链下撮合交易,失败的交易并不需要用户支付 Gas Fee

除了低 Gas Fee,撮合交易,P2P 的另一个好处就是对于 MEV(矿工通过对交易排序来获取额外利益) 有更强的抵御能力。与传统 DEX 通过滑点防止 MEV 攻击不同,CowSwap 的点对点交易具有很强的顺序性。这样矿工就很难通过操纵交易打包顺序来提取例利润。

P.S. 关于 MEV 可以阅读这篇文章

💠 去中心化

区块链的确不是万能的。它的低效,高昂的手续费被人诟病。因此链上和链下结合是一个非常好的选项,但保证链下运算的去中心化的非常麻烦。GPV2 计划从中心化一步步转为去中心化。

Solver 负责在链下寻找最佳的结算方式。因为 GPV2 担心 Solver 会互相串通,不提供最佳的而是对 Solver 自己最有利的结算方式。GPV2 计划先对 Solver 采用白名单机制,白名单的审核权利将交给社区。GPV2 计划在未来放开对 Solver 身份的限制。任何用户只要质押指定数量的 GNO 便可以成为Solver。

对于链下 Orderbook API,GPV2 将实现一个去中心化的 P2P 网络。为了严格的去中心化,链下的设计变得繁琐了起来。

🧐 或许在未来我们可以看到链上和链下结合的跨链交易所。链下交易的撮合可以用户节省在多条链上链的费用。

📔 相关阅读

GPV2 road to decentralization

Introducing Gnosis Protocol V2 and Balancer-Gnosis-Protocol


🏫 区块链 101

本期区块链 101 将和大家一起学习区块链中的 Gas Fee 燃油费机制,在区块链中每一步运算都是要支付手续费的

📖 区块链理论:Gas Fee 燃油费机制

⛽️ 为什么需要支付 Gas Fee

在 Ethereum 网络以及其他的区块链网络,当你进行转账、通过合约发送代币或在区块链网络上进行任何其他操作的时候,你必须为该运算付费,交易的手续费以 Gas 进行计算,通过 Ether(该网络下的主代币) 支付 Gas Fee(燃油费)。一笔交易的 Gas Fee 可通过 Gas Price(油价) 和 Gas Limit(油量限制) 计算得出。

💰 Gas Price

Gas Price(油价) 是每单位 Gas 的价格,它的计价单位是 Gwei(1 Gwei = 0.000000001 ETH,10 的负 9 次方)。假如 Gas Price 设定为 40,每一 Gwei 就是 0.00000040 ETH。

Gas Price 受网络拥挤程度的影响,当网络资源充裕的时候,Gas Price 低,交易手续费低;当网络拥挤不堪的时候,Gas Price 的价格可以飞上天,不同链的网络情况都不同,因此 Gas Price 都不一样。

Gas Price 的高低决定了交易被矿工打包的快慢,矿工更倾向于先打包 Gas Price 高的交易(钱能使得鬼推磨)以获取更高的挖矿收益。因此,假如你想让交易更快被执行(抢购、恐慌抛售的时候),Gas Price 越高越好,有的时候为了抢购,人们甚至付出比物品价格更高的 Gas Price 来贿赂矿工;假如你想省钱,例如朋友之间转账(不追求到账速度),你可以降低你的 Gas Price,但这样会使交易变慢,要注意的是,过低的 Gas Price 可能导致交易的失败或一直等待,阻塞后续交易。

在阻塞状态下,你可以通过向自己发起一笔0元转账,指定相同的 Nonce 值,支付手续费,以消除阻塞状态。

需要注意的是,在目前的机制下,交易失败,Gas Fee 是不返还的,因此切勿为了省钱设置过低的 Gas Price,这样会导致交易失败或阻塞;交易阻塞后还需要再支付一次手续费消除阻塞,得不偿失。

📦 Gas Limit

Gas Limit(油量) 是你愿意为一笔交易花费的最大数量的 Gas 单位。在去中心化网络中的每一步运算都要消耗 Gas ,Gas Limit 决定了你计划使用的计算资源的上限。

一般的标准交易的 Gas Limit 为 2100,假如 Gas 耗尽了,但运算未完成,交易会因为 “Out of Gas” 而失败(没油了,跑不动了);假如运算在 Gas 耗尽前完成,已消耗的手续费会被矿工收取,未消耗的部分将不会被收取。

因此,一笔交易最高被收取的手续费是 Gas Price * Gas Limit;目前 ETH 网络上每一个区块的 Gas Limit 是 15,000,000 (上段时间经过投票,从 12.5M 提升到了 15M ),区块 Gas Limit 的提升意味着每个区块能存放更多的交易内容,一定程度上降低了 Gas Price。

在智能合约开发中,Gas 消耗也是需要被考虑的在内的因素(每一步运算都在烧钱),死循环、无意义的操作会导致 Gas 的浪费;代码审计中也会找出合约代码中浪费 Gas 的操作。

🧾 Tx Fee

Tx Fee = Gas * Gas Limit

Tx Fee 就是最终消耗的交易手续费。

每条链都有自己的 Sacn 工具,以 Ethereum 为例,在 Etherscan 上可以查看全部实时交易记录,每一条录上都记录着 Gas Price、Gas Limit、Tx Fee 等信息。

🚗 总结

ETH 网络一直以拥堵出名,UniSwap 空投派钱、CryptoKitties 游戏火热的时候 Gas Price 更是贵上天,庆幸有 ETH 的网络升级和区块 Gas Limit 的上调使 Gas Price 有所回落。相比 ETH,BSC(Binance Smart Chain)的 Gas Price 要低得多。Gas Price 也是影响用户选择使用什么网络的一个重要因素,毕竟谁也不想支付过高的交易手续费。

📔 相关阅读

Ethereum: GAS AND FEES

YouTube: What is Ethereum Gas?

🔨 区块链开发:OpenZepplin 发布 4.1

知名智能合约开发库 OpenZepplin 近日发布了 4.1 的版本更新,有如下亮点:

  1. 受以太坊柏林升级的影响,OpenZeppelin 用 UUPSUpgradeable 代替 Transparent Proxy 以降低 Gas。
  2. 发布 Multicall,用户可以在一笔交易中底层调用(call)个多个函数。
  3. ERC20FlashMint 实现了 ERC3156,支持 flashLoan 和 flashMint。

官方更新日志:OpenZeppelin Contracts 4.1


📘 文章推荐

零知识证明(Zero Knowledge Proof)是最近比较火热的领域

🧐 ZK-Rollup 开发经验分享

  • ZK-Rollup 到底是怎么提升性能的?
  • 一个完整的 ZK-Rollup 系统是长什么样的?
  • ZK-Rollup 系统中有什么少被人讨论但是重要的常识经验吗?

🔔 订阅 un.Block Weekly

✈️ Telegram 频道


🚏Find us

提问&纠错&反馈:

Email:unblocketh@gmail.com

视觉设计:Jenny

特别鸣谢:

本文非商业目的转载授权遵循 CC BY-NC 4.0 协议

版权所有 ©️un.Block 2021