24. ETH 反思
1. Is smart contract really smart?
smart contract is anything but smart.
智能合约就是一段写死的自动执行的合约代码,并不智能,而且写好之后就不能修改。
2. Irrevocability is a double edged sword.
一方面不可篡改性增加了合约的公信力,所有人都只能按照合约中的规则来,没有人能够篡改这个规则;
另一方面不可篡改性意味着如果规则有漏洞,想要修补漏洞或者软件升级都是很困难的,硬分叉是非常麻烦的,和传统的中心化系统相比,没有办法及时发布补丁修复,必须征得绝大多数矿工的同意才行。硬分叉的时候又需要说明理由,一旦说明理由又会泄露系统的安全漏洞,有恶意的攻击者会在还没来得及升级前抢先发动攻击。
另外,即使我们已经发现了系统漏洞,已经有人进行恶意攻击了,想要冻结账户终止交易都是很困难的,比如个人的私钥泄露,没有办法进行软分叉,因为没有办法发行一个软件的更新并设置凡是跟这个账户相关的交易都是不合法的,这才能够冻结,但是对于个人账户来说明显是不可能的,只能把账户剩下的钱尽快转到安全的账户。智能合约一旦发布到区块链上,没有办法阻止对它的调用。比如The DAO事件,1/3的钱被黑客盗走了,剩下的2/3的钱也非常危险,没有办法阻止别人调用智能合约,唯一的办法是用黑客的方法把钱转到另一个安全的合约。
3. Nothing is irrevocable.
篡改是很难的,但是遇到特殊情况也是可以篡改的。
分叉攻击可以篡改区块链的交易,The DAO攻击之后以太坊团队也是强行修改数据使得交易恢复被攻击之