# 《从FERC到FTO》- 关于FERC20 V3的几个问题回复

By [fercgo](https://paragraph.com/@fercgo) · 2023-08-13

---

Written by Jacky Gu at Aug.1, 2023

[https://mirror.xyz/jackygu.eth/05P7XNyBhWx1OCXoE7Y7GrmumrwsQ40AEfrpMfp\_xtI](https://mirror.xyz/jackygu.eth/05P7XNyBhWx1OCXoE7Y7GrmumrwsQ40AEfrpMfp_xtI)

昨天，**FERC20 V3版**（[https://v3.erc20.cash](https://v3.erc20.cash/)）第9天全功能内测完成，这是近两周来第一天没有发现任何新的bug，这回，真的离上线主网不远了。

原计划七月初上线的V3版，一直未能上线。今天写此文，回复社区关心的问题，并对一些前段日子无法确定的问题做确定性的回复：

### 1- 为什么V3版花了这么长时间？

在回答这个问题前，先发一张V3版的架构图：

![](https://storage.googleapis.com/papyrus_images/b59c11f76666ea17b2acb1029d28b0f64a31b2a6887109c6bb605fc84833a243.png)

V3版的FERC20已经从V1/V2版的免费铸币与发行工具发展成为一个较为复杂的系统。包括：

*   1- 发币模块
    
*   2- 铸造模块
    
*   3- 白名单模块
    
*   4- 分期释放模块
    
*   5- Launchpad投票模块
    
*   6- 社交分享模块
    
*   7- 流动池管理模块 （稍后会有文章对上述模块做详细介绍）
    

上图中浅灰色部分是V1/V2中实现的，其他是V3版新增的。

在技术上，为降低各模块间的耦合度，V3优化了整体架构，合约目录结构见下图：

![](https://storage.googleapis.com/papyrus_images/5b5bef3b5a2d055b94f9cec636a88edfd56a0a06ff3b8ba072db9e925c6cabf0.png)

合约数量的增加不仅增加了工作量，而且产生了更为复杂的问题，即：**各合约之间的协作复杂度成倍上升**（这句话对于开发过复杂合约的程序猿来说肯定有同感）。复杂度导致了包括并不限于以下几个重要的Bug（目前都已修复）：

*   数据溢出风险
    
*   流动池抽干风险
    
*   Refund流程堵死
    
*   流动池添加流程堵死
    
*   分期释放流程堵死
    

我是一个有很强的偏执执念的开发者，为追求系统的高鲁棒性，我喜欢把模块间的耦合度尽量降低。甚至为此宁可调整架构，也不太愿意采取修修补补的方式实现某项功能。

事实上，在过去一个月里，框架级别的推翻重来已经发生过两次。前一周，在各项测试近乎完美，只剩一个问题的情况下，为解决这唯一一个问题，不得已调整框架（之后github开源合约后，大家可以从commit记录中看到这次调整）。这相当于大楼已经封顶，却要炸掉重来。

不得不承认，这与一开始的架构设计欠考虑有关。开发过程中，有些来自于社区的建议发生在框架设计之后，并且这些建议（比如分期释放，Launchpad投票等）对平台的完整性是非常重要的。所以，我认为，花这些精力和时间做调整是值得的。

很多朋友会想，既然无法面面俱到的考虑周全，为什么不能先上线，再慢慢迭代呢？因为区块链的最大特点是不可篡改，链上智能合约一旦部署，除了极个别参数之外，程序逻辑是无法更改的。如果在上线后，发现bug，只能推翻重来，与开发web2产品不同，智能合约没有渐进式迭代的机会的。另外，某些可以迭代升级的web3项目，也许用了proxy可升级合约技术，但从代码信任和安全角度考虑，我拒绝使用这种可升级合约。

所以，要实现上述事项，必须要在架构设计上尽可能的缜密，除此之外，测试非常重要。7月份，有近一半时间在测试。也许社区很多小伙伴会质疑我到底在搞啥，整天说测试，有屁用，是不是在织“皇帝的新装”？我这里用大多数人都听得懂的一句话作为回复：测试是为了防止币价归零的最重要的工作。

7月中旬，很多热心的`$ferc`持有人参与了V3版的第三轮测试，非常感谢社区。但大多数参与测试的非技术小伙伴更多关心的是UI和体验方面的前端问题（这些问题在上线后可以优化），并没有发现合约上的重要Bug。所以，三测过后，我找了几个技术人员参与了过去两周的内部测试。两周以来，我们几乎每天都会发现一两个合约bug，我连夜改后第二天继续测，直到昨天第一次没有发现新bug。

以上是为什么V3版花了这么长时间开发与测试的原因。尽管如此，我仍旧担心有些问题尚未被测出，所以，**本周会安排两天做有奖社区测试活动**，奖励给那些发现业务逻辑bug或合约bug的朋友，奖金从之前社区捐赠给我的$ferc中支出。与之前的社区三测不同，这轮公测会有组织的进行，由参与前期测试的技术人员带领大家系统的测试。

如无大的bug被发现，8月4-5日将会上线以太坊及部分L2链。

除了上述原因之外，还有些个人的因素也对进度产生了一定影响。如：在经历了三个月的靶向和化疗后，7月中旬，医院对我做了一次较为全面的中期评估，耗时近一周，评估过后，立即又进行了第四次治疗。治疗结束后，家里小女患上了新冠二阳，作为极易感染人群，我有几天不得已住到亲戚家，这些都对进度产生了影响。

尽管如此，过去一个月里，正常情况下，我始终保持早上五点起床开工的习惯，并保持每天10+小时以上的工作时间，尽全力赶工。我真的已经用了洪荒之力。

### 2- V3版解决什么问题？通过什么方式实现？

`FERC20 V3版`是在社区推动下开发的，很多功能在一开始并没有想到，而是在之后的社区交流中逐渐成熟的。六月份，我曾经说过“V3版已经在我手上，暂缓不发”，但至今却迟迟未推出，原因在于一个多月前我脑子里的V3版和社区需要的V3版（即目前的版本）早已大相径庭。

我一直在想，用什么语言来描述V3版，直到昨天夜里，脑子里跳出一句话，不知当否：

#### V3是优秀项目的摇篮

#### “老三防”

为了理解V3版，我们先来看看V1/V2版的特点。我把这些特点归纳为三个字：老三防。即：

*   防不公平筹码价格
    
*   防脚本“撸毛”
    
*   防不公平筹码分布
    

#### “新三防”

V3版本因为具备了融资功能，相应的，增加了“新三防”，即：

*   防洗钱
    
*   防证券化
    
*   防虚假宣传
    

关于“新三防”，也许有些朋友不理解：“这三点和我炒币有毛关系啊？”。事实上，我咨询了多位香港，新加坡和美国等普通法国家和地区的专业律师，得到较为统一的建议是：作为web3项目方，在主观上无作恶企图的情况下，往往会遇到上述几个可能涉刑事犯罪的风险。所以，V3版采取了一系列措施，在发币环节帮助项目方尽量规避这些日后可能带来的麻烦。

#### “三保障”

除了新三防之外，还有三个保障：

*   保障基础流动性
    
*   保障项目质量
    
*   保障去中心化
    
    这“三保障”的目的是防止主观上有作恶企图的项目方来平台发币。
    

#### 为什么是“摇篮”？

为什么是摇篮呢？因为我个人希望未来使用这个平台的项目方估值低一点，社区化味道浓一点。说得通俗点，对那些吃百家饭长大，并服务于百家的项目方，FERC V3是最好的舞台之一。而那些有强大的包装能力，背景优秀且资金雄厚的项目，并不适合在这个摇篮里生长。

#### 解决方案

我用下图来说明实现上述特点的具体方案：

![](https://storage.googleapis.com/papyrus_images/772a235882f70cb72923019821b97ba6d56269033121b881ac7faca489f1e0f7.png)

以上方案都已经实现，欢迎打开 [https://v3.erc20.cash](https://v3.erc20.cash/) 测试体验。

### 3- V3版上线后你有什么计划？

对于我个人而言，在V3上线后，如果运行了几天没什么大问题的话，会将某些合约的治理权交给ferc社区，并将某些合约的治理权彻底放弃。我一直认为，一个无控制的Dapp，才是最安全，最公平，最具生命力的。这个观点在上周美国众议员通过的#1747号法案中得到了验证，这也许会成为一个趋势。

之后，我在这件事情上的重点将转到发币的合规上，资助、培训与孵化优秀项目，让更多有想法的朋友通过这个平台实现梦想。

当然，我会花更多时间去完成计划中的很多事情，比如：旅游+养病，做一个公平发射NFT的平台，以及Chatpuppy的技术与运营工作。

### 4- 为什么将IFO调整为FTO？

V3版的核心是发币融资，可以说其他模块都是围绕着这个核心，让发币融资这件事更公平，更透明。所以之前我将它命名为：`Initial Fair Offering`，即`IFO`。

但前几天在某群讨论RWA，STO时，一位颇有认知的朋友针对`STO`问题提出了他的看法，他认为未来币圈应该尽量去掉Security这个绊脚石，以求更通畅的发展通道，即`XTO`。受其启发，遂将名字改为：`Fair Token Offering`，即`FTO，中文：公平代币发行`。

### 5- 感谢

感谢这一个多月以来很多提供帮助的朋友。包括`ferc社区`，`cash社区`，`mferc社区`的小伙伴们，以及`Chatpuppy`团队成员，还有很多智能合约技术方面的老朋友们。没有他们，光靠我一个人单打独斗，是完不成上述工作的。

感谢大家！！！

### 6- 尾声

我在写这篇文章的时候，有朋友转给我看了孙宇晨今天发的推特：

![](https://storage.googleapis.com/papyrus_images/9b8b85f9c1c763243f6a7346134ce87110752b1235b0b4a76c6b0170ee053ecb.png)

如果说我上面写的文字太过于啰嗦的话，那孙哥所说的“**绝对安全的，不会rug，锁池子锁LP，开源，公平**”这些词汇，正是对ferc V3的最精简的描述。

---

*Originally published on [fercgo](https://paragraph.com/@fercgo/ferc-fto-ferc20-v3)*
