






















👨🚀 Glaze & Jasmine:喜欢我们新的设计吗?
👩🎨 在过去的两周时间里,我们和团队的新设计师 Jenny 共同合作完成了 un.Block 新形象的设计;于此同时,我们的 Substack 邮件订阅破百 🎉,感谢大家的一路支持。本期 un.Block 的内容主要是对前几期内容的拓展与延伸,将和大家分享通过链下撮合形式的 DEX CowSwap;系统地和大家讲解 Gas Fee 机制。
如果你喜欢本期内容,不妨在阅读后给我们点个 ⚡️ ,并在下方订阅 un.Block Weekly
在上一期中,我们为大家介绍了 DEX。这一期我们为大家剖析链下撮合交易,P2P 的 CowSwap

CowSwap 是 Gnosis 在正式推出 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 网络。为了严格的去中心化,链下的设计变得繁琐了起来。
🧐 或许在未来我们可以看到链上和链下结合的跨链交易所。链下交易的撮合可以用户节省在多条链上链的费用。
Introducing Gnosis Protocol V2 and Balancer-Gnosis-Protocol
本期区块链 101 将和大家一起学习区块链中的 Gas Fee 燃油费机制,在区块链中每一步运算都是要支付手续费的

在 Ethereum 网络以及其他的区块链网络,当你进行转账、通过合约发送代币或在区块链网络上进行任何其他操作的时候,你必须为该运算付费,交易的手续费以 Gas 进行计算,通过 Ether(该网络下的主代币) 支付 Gas Fee(燃油费)。一笔交易的 Gas Fee 可通过 Gas Price(油价) 和 Gas Limit(油量限制) 计算得出。
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 单位。在去中心化网络中的每一步运算都要消耗 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 = 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 的版本更新,有如下亮点:
官方更新日志:OpenZeppelin Contracts 4.1
零知识证明(Zero Knowledge Proof)是最近比较火热的领域

✈️ Telegram 频道
提问&纠错&反馈:
Email:unblocketh@gmail.com
视觉设计:Jenny
特别鸣谢:
本文非商业目的转载授权遵循 CC BY-NC 4.0 协议
版权所有 ©️un.Block 2021
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。