关于 Uniswap V3 的计算
机制改变Uniswap V3 采用了集中流动性(Concentrated Liquidity)。用户可以为自己的流动性设置一个价格区间。超出这个价格区间或低于这个价格区间,所有代币将被转换成两者中不值钱的那个。这一步转化造成的损失是无常损失。一个价格区间中的最小间隔叫 Tick,为 0.01%。 符号Swap添加流动性相关阅读:Uniswap V3 白皮书编辑于昨天 14:30文章被以下专栏收录* Blockchian;unblock256.com
矿工可提取价值
日渐增多的 MEV 可能导致了高昂的 Gas Fee在*上一期*的周报中我们为大家介绍了 Gas Fee , Gas Fee 越高,交易就越可能被矿工打包。本期我们就来讨论一下这种打包机制所产生的问题,Miner-extractable Value(MEV)。 MEV 指的是矿工重新排序交易后可以获得的利润。在实际情况中, MEV 可能并不是矿工推动。有可能是我付出了一个很高的 Gas Fee ,希望矿工优先打包我的交易。 希望矿工优先打包交易的原因有以下几种:抢跑(Frontrunning)主流的 DEX 都支持滑点,也就是成交价格的区间,假设当前下单价格 100 块,滑点是 5%,这意味着成交价格会在 95 - 105 之间。 宽松的价格区间让套利者有机可乘。 假如一个套利者在内存池中(没有打包的交易都会在内存池中)看到一笔大额买单(币价即将上涨)。根据 AMM 的模型,只要有买单成交,代币价格就会上升。因此,套利者可以通过高额的 Gas Fee 或者贿赂矿工来插入一笔买单,抢在代币价格上涨之前完成买入。套利者的抢跑行为将导致后续的那一笔大额买单以以更高的价格成交。 其实在现...
流动性挖矿(Yield Farming)
⚠️ 以下为非投资建议 (No Financial Advise) 内容,流动性挖矿存在投资风险。概念流动性挖矿是 AMM 协议下的提供流动性的更进一步,它是通过锁定流动性来获取代币奖励。 如何获取收益*上期*我们讲到在 AMM 协议下,流动性提供者可以通过从交易手续费中获取一定收益。流动性挖矿与单纯的提供流动性(LP)略有不同,它是将组好的 LP,注入到资金池中(矿池),以获取额外的不同的代币支付奖励。用于奖励的代币大多为矿场的代币。以 BSC 上的 PancakeSwap 的 Farm 作为例子,这是一个 $BUSD - $BNB 矿池,在 Stake(质押、注入)前,我们需要先为 $BUSD - $BNB 交易对提供流动性以及 Approve(授权使用代币)。 LP 组好后,我们就可以将我们的 LP Stake 进矿池,开始挖矿。 一段时间后,我们可以获得 $CAKE (PancakeSwap 的平台代币)作为奖励,通过 Harvest(收成)我们就可以把 $CAKE 收入囊中。与此同时,我们的 $BUSD - $BNB 还在努力的工作,持续产出 $CAKE。 又过了一段...
关于 Uniswap V3 的计算
机制改变Uniswap V3 采用了集中流动性(Concentrated Liquidity)。用户可以为自己的流动性设置一个价格区间。超出这个价格区间或低于这个价格区间,所有代币将被转换成两者中不值钱的那个。这一步转化造成的损失是无常损失。一个价格区间中的最小间隔叫 Tick,为 0.01%。 符号Swap添加流动性相关阅读:Uniswap V3 白皮书编辑于昨天 14:30文章被以下专栏收录* Blockchian;unblock256.com
矿工可提取价值
日渐增多的 MEV 可能导致了高昂的 Gas Fee在*上一期*的周报中我们为大家介绍了 Gas Fee , Gas Fee 越高,交易就越可能被矿工打包。本期我们就来讨论一下这种打包机制所产生的问题,Miner-extractable Value(MEV)。 MEV 指的是矿工重新排序交易后可以获得的利润。在实际情况中, MEV 可能并不是矿工推动。有可能是我付出了一个很高的 Gas Fee ,希望矿工优先打包我的交易。 希望矿工优先打包交易的原因有以下几种:抢跑(Frontrunning)主流的 DEX 都支持滑点,也就是成交价格的区间,假设当前下单价格 100 块,滑点是 5%,这意味着成交价格会在 95 - 105 之间。 宽松的价格区间让套利者有机可乘。 假如一个套利者在内存池中(没有打包的交易都会在内存池中)看到一笔大额买单(币价即将上涨)。根据 AMM 的模型,只要有买单成交,代币价格就会上升。因此,套利者可以通过高额的 Gas Fee 或者贿赂矿工来插入一笔买单,抢在代币价格上涨之前完成买入。套利者的抢跑行为将导致后续的那一笔大额买单以以更高的价格成交。 其实在现...
流动性挖矿(Yield Farming)
⚠️ 以下为非投资建议 (No Financial Advise) 内容,流动性挖矿存在投资风险。概念流动性挖矿是 AMM 协议下的提供流动性的更进一步,它是通过锁定流动性来获取代币奖励。 如何获取收益*上期*我们讲到在 AMM 协议下,流动性提供者可以通过从交易手续费中获取一定收益。流动性挖矿与单纯的提供流动性(LP)略有不同,它是将组好的 LP,注入到资金池中(矿池),以获取额外的不同的代币支付奖励。用于奖励的代币大多为矿场的代币。以 BSC 上的 PancakeSwap 的 Farm 作为例子,这是一个 $BUSD - $BNB 矿池,在 Stake(质押、注入)前,我们需要先为 $BUSD - $BNB 交易对提供流动性以及 Approve(授权使用代币)。 LP 组好后,我们就可以将我们的 LP Stake 进矿池,开始挖矿。 一段时间后,我们可以获得 $CAKE (PancakeSwap 的平台代币)作为奖励,通过 Harvest(收成)我们就可以把 $CAKE 收入囊中。与此同时,我们的 $BUSD - $BNB 还在努力的工作,持续产出 $CAKE。 又过了一段...
Share Dialog
Share Dialog

Subscribe to un.Block

Subscribe to un.Block
在第一次 Workshop 中,我们为大家介绍了如何使用 Remix,实现一个标准的 ERC20 智能合约,并将其发布到 Rinkeby 测试网上。错过这次 Workshop 的读者可以阅读我们*详细的实验手册*。

Remix 兼具开发,测试,调试,部署等功能。由于它支持在 GUI 中调用智能合约,一键切换账户等功能,Remix 非常适合用来调试智能合约。
当你写的合约越来越复杂后,Truffle 是你最好的伙伴。
Truffle 是一个合约开发工具,在不干涉实际智能合约代码编写的情况下,Truffle 提供部署,测试等命令行工具。你也可以在 Truffle 的配置文件中,定义具体要使用的编译器版本,各种网络设置等。有了配置好的网络,你就可以将合约部署或者在这些预先配置好的网络上进行测试。
执行 truffle console,便可以在本地启动一条区块链,并在命令行中进行交互。命令行中部署,测试常用的代码片段可以参考*这个笔记*。
我个人其实并不喜欢 Truffle,因为它给我带来过一些修也修不好的奇怪 bug。但相比以下的几个工具,Truffle 的优点在于大而全,部署功能比其他的工具做的好。
Hardhat 和 Truffle 做着类似的事情但是理念不一样。Hardhat 的感觉更是小而精简,大多数功能考插件完成,这就导致整体使用体验没有 Truffle 那么一致。
对我来说,我最喜欢 Hardhat 的地方在于它的易用性,想用多少功能就用多少功能。Hardhat 还有一个杀手锏功能,console.log()。写过较大的智能合约的读者或许可以理解这样一个在 Node.js 中司空见惯的调试工具,在区块链开发中是多么珍贵。在 Hardhat 下,我们终于可以随你所欲的打印变量。
Hardhat 的部署并没有 Truffle 那么简单。具体部署,测试常用的代码片段可以参考*这个笔记*。
开发复杂的智能合约绝对离不开 Openzeppelin 的各种库。在 Solidity v0.8 之前,几乎所有的智能合约都会使用 Openzeppelin 的 "https://docs.openzeppelin.com/contracts/4.x/api/utils#SafeMath">Safemath 库来保证计算不会出现溢出的情况。常见的实现代币,权限控制,数组的一些操作等,都可以在 Openzeppelin 中找到你需要的。
Slither 是目前智能合约开发中最为流行的静态检查工具,它可以帮助开发者写出更加安全的代码。
但是你看看互联网安全使用的静态检查工具,就会感到 Slither 的简陋的了。Slither 使用 AST,而互联网安全已经出现了经历了 IR/CFG 和 QL。这至少比 Slither 快了两个世代。关于静态代码审计的技术方向可以参考*这篇文章*。
如果想要和钱包,以太坊,链上合约交互,Etheres.js 是一种选择。虽然官网有较为详细的文档,但我总是为找不到我想要的例子发愁。调试这个是一个痛苦的过程。等我整理好了常用的代码片段,会贴在这里。
懒得一个个安装以上工具的读者,可以使用我开发的 create-smart-contract。类似 create-react-app,帮助各位读者一键安装各种库,初始化配置文件等。
最后我们希望各位有兴趣的读者都可以动手试一试,在未来我们会为各位带来一些智能合约开发上的小技巧。
在第一次 Workshop 中,我们为大家介绍了如何使用 Remix,实现一个标准的 ERC20 智能合约,并将其发布到 Rinkeby 测试网上。错过这次 Workshop 的读者可以阅读我们*详细的实验手册*。

Remix 兼具开发,测试,调试,部署等功能。由于它支持在 GUI 中调用智能合约,一键切换账户等功能,Remix 非常适合用来调试智能合约。
当你写的合约越来越复杂后,Truffle 是你最好的伙伴。
Truffle 是一个合约开发工具,在不干涉实际智能合约代码编写的情况下,Truffle 提供部署,测试等命令行工具。你也可以在 Truffle 的配置文件中,定义具体要使用的编译器版本,各种网络设置等。有了配置好的网络,你就可以将合约部署或者在这些预先配置好的网络上进行测试。
执行 truffle console,便可以在本地启动一条区块链,并在命令行中进行交互。命令行中部署,测试常用的代码片段可以参考*这个笔记*。
我个人其实并不喜欢 Truffle,因为它给我带来过一些修也修不好的奇怪 bug。但相比以下的几个工具,Truffle 的优点在于大而全,部署功能比其他的工具做的好。
Hardhat 和 Truffle 做着类似的事情但是理念不一样。Hardhat 的感觉更是小而精简,大多数功能考插件完成,这就导致整体使用体验没有 Truffle 那么一致。
对我来说,我最喜欢 Hardhat 的地方在于它的易用性,想用多少功能就用多少功能。Hardhat 还有一个杀手锏功能,console.log()。写过较大的智能合约的读者或许可以理解这样一个在 Node.js 中司空见惯的调试工具,在区块链开发中是多么珍贵。在 Hardhat 下,我们终于可以随你所欲的打印变量。
Hardhat 的部署并没有 Truffle 那么简单。具体部署,测试常用的代码片段可以参考*这个笔记*。
开发复杂的智能合约绝对离不开 Openzeppelin 的各种库。在 Solidity v0.8 之前,几乎所有的智能合约都会使用 Openzeppelin 的 "https://docs.openzeppelin.com/contracts/4.x/api/utils#SafeMath">Safemath 库来保证计算不会出现溢出的情况。常见的实现代币,权限控制,数组的一些操作等,都可以在 Openzeppelin 中找到你需要的。
Slither 是目前智能合约开发中最为流行的静态检查工具,它可以帮助开发者写出更加安全的代码。
但是你看看互联网安全使用的静态检查工具,就会感到 Slither 的简陋的了。Slither 使用 AST,而互联网安全已经出现了经历了 IR/CFG 和 QL。这至少比 Slither 快了两个世代。关于静态代码审计的技术方向可以参考*这篇文章*。
如果想要和钱包,以太坊,链上合约交互,Etheres.js 是一种选择。虽然官网有较为详细的文档,但我总是为找不到我想要的例子发愁。调试这个是一个痛苦的过程。等我整理好了常用的代码片段,会贴在这里。
懒得一个个安装以上工具的读者,可以使用我开发的 create-smart-contract。类似 create-react-app,帮助各位读者一键安装各种库,初始化配置文件等。
最后我们希望各位有兴趣的读者都可以动手试一试,在未来我们会为各位带来一些智能合约开发上的小技巧。
<100 subscribers
<100 subscribers
No activity yet