可升级的以太坊智能合约设计模式
目录
智能合约的现状
以太坊在区块链上实现了智能合约的概念,用于:同质化通证发行(ERC-20)、众筹、投票、存证取证等等,共同点是:合约逻辑简单,只是业务流程中的关键节点,而非整个业务流程。而智能合约想解决的信任传递,是环环相扣的,如果在传统系统环节被恶意侵入和篡改数据,那么传入智能合约的数据就是不受到信任的。因此,整体业务流程上链是智能合约发展的趋势。
智能合约的局限
智能合约在早期被设计的时候,并不打算支撑复杂的业务体系,这和它设计的初衷相违背:漏洞往往出现在程序员编写的代码和他想实现的逻辑之间存在着差距,越是简单的代码越是安全。简单和受限访问成了智能合约安全可靠的保障。
因此,智能合约引入了隔离网络和文件系统的沙箱环境、基于栈的编译器(有限高度的栈深以及仅可访问栈顶16个元素的限制)、静态语言、gasLimit(限定了合约的大小,每个合约能处理的逻辑有限;限定每个函数逻辑的复杂度,每一步操作都会消耗gas,以至于连使用循环都成了奢侈)、严格的内存访问限制(每个合约仅可以访问自己的