因为一个程序 bug,直接损失了 2.2 亿人民币。。。
这是近几天发生在 NFT 圈子里的一件事,某项目方因为自己的程序代码出错,导致锁定的 11539.5 个 ETH(以太坊代币)无法取出。
按照目前的价格,这些 ETH 总价值 2.2 亿人民币,妥妥肉疼。
NFT是非同质化代币,属于区块链领域的一种应用,可以理解为一种虚拟的数字资产。
比如,你购买了一张 NFT 头像,那这张图片在网络世界里就唯一属于你。即便大家可以复制拷贝,但所有权归属于你。
这次出事的是一个叫Akutar 的 NTF 项目方,他们发起了一个 NFT 产品售卖,采用的是荷兰式拍卖法。
所谓荷兰式拍卖法,就是由高到低出价的拍卖方式,这和传统的递增叫价拍卖方式有所不同。
举个例子,假设一件产品的定价是 10000 元,想买入的就直接按照这个价格下单。如果最终成交价是8000 元,那项目方会退你2000 元。
设计这种规则的目的其实也是激励用户早点下单,因为早买晚买都不亏,加上 NFT 限量,就更提升了购买者的动机。
很快,这个项目就完成了 3400 万美元的预定销售额。
接下来,就是项目方履行后续环节了,退款和提现。
按照规则,项目方需要先退回最终成交价和定价之间的差额给用户,然后才能自己提走项目售卖收益。
为了确保公平,也表态自己不会跑路的决心,项目方在智能合约里规定了需要先完成差价退款才能提现。
智能合约,可以理解成锁定在区块链中的一个事先定好的规则,任何人都无法篡改,只会被自动执行。
于是,在智能合约代码里就有这么一个判断条件。
懂点技术的读者知道,这是一段函数代码,这个函数的作用是项目方用来提现的。
其中被红框标记起来的是一个判断条件,refundProgress>=totalBids,问题也恰恰出在这里。
按照定义,变量refundProgress表示已经完成的用户退款数,而变量totalBids表示所有用户下单的 NFT 总数。
因为一个用户可以购买多个 NFT,所以totalBids 的数值一定是大于或等于refundProgress 的。
也就是说,不可能出现像智能合约代码中refundProgress>=totalBids 的情况。
因此,当代码执行到这里的时候,这个判断条件始终不会成立,后面的合约代码就无法执行。
看懂的读者应该知道了,这个 bug 的关键点就是这两个变量之间的判断符号写反了。
程序员写的是>=,而正确的应该是写成<=。
用户无法获得退款,项目方也无法提现。
对用户来说,虽然不能获得退款,但至少还是买到了 NFT。但对于项目方来说,这价值 2.2 亿人民币的收益就直接被永久锁定了,无法提走。
在区块链的世界里,这些代币就永久不会被其他人取出,和销毁没什么区别。
项目方相当于手持了一个永远不会被打开的钱包,纵使腰缠万贯,但也仅仅是一个账面数字,没有使用价值。
一个符号,价值 2.2 亿,可以说是一个惊天bug 了。
可能有人会说了,上线前难道不经过测试么,这么大的项目竟然犯这种低级错误。
那么,这是谁的锅?
首先,项目方在设计智能合约时一定会提前定义好规则,然后交给程序员去实施。上线前,也会经过测试和验收。
其次,程序员在代码中写入这个规则时,也一定是建立在理解这个规则的前提下。可能是手抖,可能是粗心,恰好就把判断符号写反了。
另外,测试在上线验收环节,可能没有进行极端情况测试,只是按照一个人买一个 NFT 的场景完成了测试。
最后,项目方验收时,以为能跑通全流程就没问题了。
项目上线后,在生产环境出现了一个人买多个 NFT 的情况,bug 被触发。
在我看来,问题的核心起点在程序员,验收不严谨的责任在测试,而最终对外背锅的一定是项目方。
这不是某一个人的锅,而是一口大锅罩在了整个项目组头上。
这样的问题在平时产品开发中其实并不少见,因为一个判断条件的失误,轻则引起功能异常,重则导致巨大的经济损失。
如果你们感兴趣,可以自己去查一下过去这些年因为程序 bug 导致产品重大损失的案例,其实有不少。
那些厉害的程序员之所以贵,也是有原因的。
如果为了省钱招了一些三流程序员填坑,或许只会给你挖出更大的坑。
这个世纪什么最贵?
人才!
关键词:
- 发力蛋制品 劲仔食品小蛋圆圆鹌鹑蛋入围iSEE全球创新品牌百强榜
- 新捷途X70S颜值与实力全面升级,将于4月29日发布预售
- 奶茶行业品牌多、竞争大 冰雪时光靠什么赢得掌声?
- 千千惠生活全国上线“随心退”功能,消费者可无条件随时退款
- 杭州临平区:创建市场疫情防控“三色”预警分类管理机制 动态防控监测预警
- 海南开展防止一次性不可降解塑料制品入岛联合执法行动 对当事人立案调查
- 河北保定市场监管局创新应用信用分级分类监管 提升监管效能助力营商环境优化
- 原料新鲜 用料扎实 冰雪时光稳扎茶饮下沉市场
- 陕西省市场监管局连续三年荣获平安陕西建设先进集体 充分发挥市场监管职能优势
- 浙江杭州:西湖食品安全风险综合治理中心挂牌成立 健全机制规范运行为
- 湖北恩施州鹤峰县市场监管局开展进口水果排查专项行动 加强宣传引导
- 宁夏青铜峡市场监管局:拧紧节日食药“安全阀” 确保节日期间市场安全稳定
- 北京东城对辖区旅游客运企业开展专项联合检 营造和谐市场环境
- 安徽开展专项执法查处滥用行政权力行为 共同营造公平竞争良好社会环境
- 安徽启动2022年春茶地理标志保护专项行动 促进茶产业高质量发展
- 吉林:开展知识产权代理行业“蓝天”专项整治行动 促进知识产权服务业健康发展
- 福建福州:宣传知识产权法律知识 全方位推进地方高质量发展超越
- 辽宁抚顺积极建设知识产权强市 建设知识产权强市为目标
- 2021年全国公共服务质量监测情况发布 南京以总体满意度排名第一
- 立案20件!安徽严查哄抬物价等价格违法行为 督促经营者守法经营
