《从FERC到FTO》- 关于FERC20 V3的几个问题回复
August 1st, 2023

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

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

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

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

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

  • 1- 发币模块

  • 2- 铸造模块

  • 3- 白名单模块

  • 4- 分期释放模块

  • 5- Launchpad投票模块

  • 6- 社交分享模块

  • 7- 流动池管理模块 (稍后会有文章对上述模块做详细介绍)

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

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

合约数量的增加不仅增加了工作量,而且产生了更为复杂的问题,即:各合约之间的协作复杂度成倍上升(这句话对于开发过复杂合约的程序猿来说肯定有同感)。复杂度导致了包括并不限于以下几个重要的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://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- 尾声

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

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

Subscribe to jackygu's blog
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.
More from jackygu's blog

Skeleton

Skeleton

Skeleton