黑客的黑暗森林
文:蔡垒磊
聊聊“产品设计如何保证安全”的事儿。
话说要当一名优秀的黑客,也不是那么简单的。很多人以为黑客就是动动手指,就能在网络上随便拿钱,其实也不是。黑客首先要找到漏洞,然后才能利用漏洞来偷钱,以前的系统都是漏洞百出的,所以才会有那么多的人在网上随便点个什么就丢了钱,现在你有多久没听过这种新闻了?尤其是你用苹果全家桶的,随便怎么操作也几乎没听过有人被偷,杀毒软件也没什么人装了,因为现在的系统早就不一样了——“偷”这个行为,只有在漏洞百出的地方,在未经时间检验的东西很多的时候,才有大量发生的土壤。
现在被盗都集中在币圈了,因为币圈很新,有很多未经时间验证的系统,所以才有这样的土壤。但这个事情也不是无解,我设计了一套逻辑系统,以tokenguard为例,我用三点就够了:
1.足够简单
2.开源
3.先往里面放足够的钱
因为开源,所以所有人都可以来玩“大家来找茬”;因为足够简单,所以不用绕来绕去找漏洞,就算不是黑客,只要懂智能合约代码,有问题就都能发现;而里面只要先有足够的钱,那么只要有问题就一定会被拿走,只要没被拿走的,就是没问题。
这就是从逻辑上解决这个问题的策略。
那有人说,有没有可能有个黑客发现了漏洞,但它就是养着,不拿,等钱再多一些再拿呢?
不可能。
只有足够隐蔽的漏洞,才有可能做这样的布局。而如果代码足够简单,简单到大家只要去看了就都能发现,那么黑客其实也是身处一个黑暗森林里的,比如我在里面先放上100万作为钓鱼的赏金,你不拿,下一个人就拿走了,那你就一分都没有。
在囚徒困境之下,第一个发现的人的唯一选择,就是直接拿走。而现在存在tokenguard里面的钱已经远不止这个数,所以基本已经可以确认它的安全性了。
每个人都在说“我看不懂智能合约,所以不敢交互任何的智能合约”,但其实我用几个简单的逻辑设计,就可以解决这样的“不可知”问题。而如果合约逻辑过于复杂,一个简单的动作,又要映射,又要自动多链路换币,又要跨链,又要依赖流动性池的tvl,还可能涉及清算,那么不管有多少审计机构的盖章,有多少人的背书,运行了多久,达摩克利斯之剑依然存在,即你的钱依然不会安全。
这就是逻辑的魅力。
(完)
.........................................
我是蔡垒磊,感谢你的阅读。