漫步链上定价模型与 ERC7527

概述 纯链上资产定价是一项相当有趣的工作,常见的方案都是基于函数报价。具体来说,包含以下三类: 各类用于代币互换的 AMM 曲线,以 Uniswap 推出的 x * y = k 最为著名 直接根据供应量等因子给出报价的 Bonding Curve 方案,近期的 FriendTech 和 pump.fun 都属于此类 基于拍卖的方案,链上拍卖方案往往使用荷兰式拍卖以提高效率,较少见到因英式拍卖,且由于技术问题,也较难见到基于密封报价的盲拍。较为著名的是 paradigm 推出的 GDA 和 VRGDA 方案,以及 UniswapX 内的荷兰式拍卖方案 上述不同的函数定价方案都存在一定的优点和缺陷,本文将首先介绍这些目前已经被广泛使用的链上资产定价方案,然后本文将介绍基于 ERC7527 及连续函数报价的新一代链上资产定价方案。 ...

May 11, 2024 · 13 min · 6243 words · WongSSH

以太坊节点快速部署指南

概述 作为以太坊开发者,拥有自己的以太坊节点是一个常规操作。而且大量的以太坊项目也依赖于以太坊节点,本文将向读者介绍如何最快的部署以太坊的完整节点,包括执行层节点与共识层节点。我选择使用 Reth 作为执行层节点,选择使用 Lighthouse 作为共识层节点。 ...

March 17, 2024 · 4 min · 1581 words · WongSSH

链上随机数生成:理论与实现

概述 对于伪随机数的生成,特别是正态分布随机数的生成在智能合约内拥有较为广阔的使用场景。本文主要讨论链上的伪随机数生成。链上没有真随机数的观点是正确的,但是此观点不应该阻碍智能合约工程师探索链上高质量伪随机数生成,链上也有具有较难操纵的随机数来源,比如 EIP-4399 引入的 PREVRANDAO 操作码,但是将此随机数作为种子计算如正态分布的随机数的有关讨论则较少在智能合约领域提及,本文主要对此问题进行讨论。 ...

January 29, 2024 · 10 min · 4968 words · WongSSH

深入探索 GDA 与 VRGDA

概述 VRGDA(Variable Rate GDAs) 是一种渐进式荷兰式拍卖(Gradual Dutch Auctions, GDAs)的扩展,其作用是在超长代币发行期间保持一个合理价格的且定期的流动性释放。而普通的 GDAs 则是只可以保证代币出售的价格合理,但不能保证代币在合适的时间释放。 ...

December 25, 2023 · 7 min · 3114 words · WongSSH

多项式逼近及其应用:Huff实现

概述 在 上一篇文章 中,我们介绍了常见的几种有理多项式插值方法,但我们并没有给出具体的 Huff 语言实现及其测试。本文仍考虑在智能合约内实现以下公式: $$ f(x) = e^x $$ 与上一篇文章不同,本文不会进一步讨论具体的插值原理,而是主要介绍插值的实现及其误差测试。 ...

December 15, 2023 · 9 min · 4145 words · WongSSH

Cairo 实战入门:Starknet Foundry 与组件语法

概述 随着 Starknet Foundry 的进一步更新,使用 Starknet Foundry 进行 Cairo 智能合约开发可能会逐渐成为未来主流。 本文的主要内容实际上是介绍 cairo v2.3 引入的 Components 重大更新,但考虑 Starknet Foundry 的活跃开发,所以本文使用了 Starknet Foundry 作为开发框架,而不是与之前的文章一样使用 Cairo 自带的框架。 ...

November 16, 2023 · 15 min · 7471 words · WongSSH

多项式逼近及其应用:理论与计算

概述 在 solidity 的 gas 优化过程中,我们常会遇到一些复杂的数学计算,这些复杂的数学计算在 solidity 中实现往往是困难的且极其消耗 gas 的,本文将给出一系列通用的数学方法以实现使用多项式逼近复杂数学公式,并给出对应的相关代码。 ...

November 15, 2023 · 11 min · 5247 words · WongSSH

深入探索 Cairo: Sierra IR 与 Cairo 底层

概述 总所周知,在 StarkNet Cairo 中,合约需要经过以下步骤进行编译和部署: 在此流程中,我们发现合约首先被编译为 Sierra 这一中间表示层。Sierra 的全称为 Safe Intermediate Representation ,直译为安全中间表示层。在本文中,我们将探讨 Sierra 为什么具有 “安全” 和 “中间表示” 两个特性。 ...

September 17, 2023 · 21 min · 10143 words · WongSSH

Cairo 实战入门:可升级合约与跨链信息发送

概述 如果读者阅读过笔者之前的文章就会发现,我在 solidity 中使用了 ERC20 代币 -> 可实升级合约的学习路径。为了保持文章的统一性,我准备在此文中介绍 cairo 的可升级合约编程。 ...

July 29, 2023 · 18 min · 8888 words · WongSSH

Cairo 实战入门:编写测试部署ERC-20代币智能合约

概述 Cairo 是 ZK Rollup 的领域专用语言,目前仅用于 StarkNet 项目。随着 Rollup 叙事的发展,我们认为 cairo 在未来一定会成为智能合约开发的核心语言。 本文类似我之前编写的 Foundry教程:编写测试部署ERC-20代币智能合约 ,介绍了使用 cairo 1 v2 版本(该版本也可称为 Cairo 2) 进行编程、测试和部署的全流程。由于缺乏易用工具,本文放弃了本地测试网部署。 ...

July 6, 2023 · 22 min · 10994 words · WongSSH