__________     __ __     __  _______    ________
  / ____/ __ \   / // /    / / / /  _/ |  / / ____/
 / / __/ / / /  / // /_   / /_/ // / | | / / __/
/ /_/ / /_/ /  /__  __/  / __  // /  | |/ / /___
\____/\____/     /_/    /_/ /_/___/  |___/_____/

 --- A GOPHER-LIKE INTERFACE FOR HIVE BLOCKCHAIN ---

EOS如何防止DDoS攻击

BY: @victorsun | CREATED: May 29, 2018, 9:30 a.m. | VOTES: 3 | PAYOUT: $0.00 | [ VOTE ]

玩过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消耗完毕。

TAGS: [ #eos ] [ #ddos ]

Replies

@lwq2018 | May 29, 2018, 9:38 a.m. | Votes: 0 | [ VOTE ]

按照占有的EOS数量来分配带宽? 计算资源呢?存储资源呢?

@victorsun | May 29, 2018, 9:40 a.m. | Votes: 0 | [ VOTE ]

这里的带宽不是我们传统意义上说的网络带宽,而是指合约执行所需的所有资源。

@lwq2018 | May 29, 2018, 12:27 p.m. | Votes: 0 | [ VOTE ]

@lwq2018 | May 29, 2018, 9:41 a.m. | Votes: 0 | [ VOTE ]

如果按照持有的EOS 来分配带宽资源的话,那就意味着会很多的带宽资源会白白浪费掉。因为会有很大比例的EOS会被用户冻结或其他因素而不能参与到智能合约资源的分配中来。

@victorsun | May 29, 2018, 9:43 a.m. | Votes: 0 | [ VOTE ]

这样的花,合约的执行是不需要消耗EOS的,但是要部署合约,首先得有EOS。

@lwq2018 | May 29, 2018, 9:45 a.m. | Votes: 0 | [ VOTE ]

EOS执行智能合约或交易不需要消耗任何EOS,这样会存在问题。使用者占有带宽并持续利用这些资源做垃圾输出,是对资源的浪费和消耗。

@bloxo | May 29, 2018, 9:52 a.m. | Votes: 1 | [ VOTE ]
[ BACK TO TRENDING ] [ BACK TO MENU ]
CMD>