所谓的区块链安全性这个概念, 在本质上一回事儿来说就是用来防止人的。这种防范既包括那些在外面专门写逆向脚本的外来人, 也包括你自己团队内部那个会把测试网的私钥随手扔进共享文件夹里的实习生。
像我在这个行业里干了差不多有七八年的工夫时间里, 确实碰到过各种让人非常感觉到离谱的情况存在: 好比说有五个多重签名的密钥, 结果其中的三个全都被塞在一个小小的U盘里面去了, 那这种情况跟没有任何防护措施的情况下直接裸奔出去在外头走着又有什么区别呢?

智能合约这个东西, 坑人是非常厉害的。写那个叫Solidity的代码, 本来看着有一个提现的函数是完全没有问题的, 可一旦把它放到主网里去运行, 就会受到那个重入攻击的影响, 直接把资金池给攻破了。
我有一个认识的开发团队, 他们整整做了三轮安全审计, 到了第四轮的时候, 才把那致命的整数溢出漏洞给找出来。你千万不要去相信什么“通过了审计报告就一定会很稳定”的话, 因为合约一旦上线运行, 就像是在不知道结果的盲盒里抽奖一样, 到时候是没有后悔药给你吃的。
关于节点这一块的事情,希望不要觉得厌烦。攻击百分之五十一这种事听起来很不可思议, 你去查查看有关于VeriBlock那个事件的情况, 几个挖矿池联合起来出块, 普通用户根本就没有察觉到。
你自己运行全节点来校验签名, 心里会觉得比较踏实, 但是你要相信还是不相信, 你那远程过程调用提供者会在中间给你塞入一些虚假的数据, 这其实是一个值得思考的问题。区块链的安全工作做到最后, 你会发现防范的并不是代码中的漏洞, 而是信任链本身到底有多长。
