玩过Ethereum的小伙伴们都知道,以太坊上合约的每一步执行都是需要消耗一定量的gas,这个gas的量精细到EVM虚拟机的每一步执行(具体地可以看Ethereum的代码)。gas有一定的价格,通过这个价格转化成一定量的ETH,将合约的ETH转到胜出矿工的帐下。这个过程说白了就是没执行一步都是要花费ETH的,通过这种方式来防治智能合约的泛滥执行,进而来防治DDoS攻击节点。
在EOS中,完全是另外的哲学了。EOS是根据合约所占据的EOS的数量来分配带宽资源的,包括CPU,网络带宽,存储资源等。假设EOS总量100,我发了一个智能合约C,给他分配了30个EOS,那么这个合约C在被哥哥节点执行的时候就只能占据这个节点30/100的带宽资源,剩下的70%,留给其他智能合约。这个时候即使节点们有多余空闲的资源,理论上也不会拿来给这个合约C使用的。只有某个合约X占据了100%的EOS,那么它才会占据所有带宽资源。所以EOS的哲学是,权益 = EOS = 带宽资源。
反观Ethereum,假设其上的某个合约Y的执行逻辑需要消耗大量的带宽,几乎需要占据节点的所有带宽,但是合约Y却没有几乎全网的所有ETH,但是足够支付执行费用。这个交易一旦被挖矿节点接受并加载到EVM里执行,那么节点是有可能拒绝其他的交易的执行一段时间的,直到gas或者说ETH消耗完毕。