-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Stop any smart contract on the network #38
Comments
Tried to reproduce this (on testnet) to add some logs.
Did not manage to reproduce |
attack on every smart contract should be made separate. you can attack 10 different smart contracts at the same time. other smart contracts that you do not attack at this time will work fine |
There is another way to paralyze any smart contract. Create a smart contract that will send transactions to other smart contracts. We specify in this smart contract, the smart contract that we want to attack. (preferably 400+ times). We send to the created smart contract 1 cs(or any other amount) in response, the smart contract sends 400 transactions to the address of the smart contract specified by us. after that, the same thing happens as I described in the report #38. the smart contract that we attacked stops responding to any account until those 400+ transactions are rejected. Is a smart contract application egyptslot deployed in the network testnet. we create a smart contract that will forward 400 transactions to this smart contract. Есть еще один способ парализовать любой смарт контракт. Создаем смарт контракт который будет отправлять другим смарт контрактам транзакции. Указываем в этом смарт контракте, тот смарт контракт, который мы хотим атаковать. (желательно 400+ раз). Отправляем на созданный смарт контракт 1 cs(либо любую другую сумму) в ответ смарт контракт отправляет 400 транзакций на адрес указанного нами смарт контракта. после этого происходит тоже самое, что я описывал в репорте #38. смарт контракт который мы атаковали перестает отвечать любому аккаунту до тех пор пока эти 400+ транзакций не отклонятся. |
Описание бага на русском языке: |
Describe the bug
There is a way to paralyze the work of absolutely any smart contract in the network. Smart contract stops responding to requests of any user (whether it is a smart contract of the game application or any other, it does not matter). If we take the example of gambling application, the player will bet by sending a smart contract Credits coins, but the smart contract will not respond to him, moreover, the sent coins will be in limbo. Smart contract will not be able to get these coins and get back their coins to the user will also fail (coins hang in the air)
To Reproduce
Сreate a transaction. enter the address of any smart contract, in the amount field, enter any value 0-0.000...1 cs, then enter in the commission 0.0005 cs and click send transaction. smart contract will not be able to accept these coins, because we have indicated too little сommission for the transfer. at this time, no one will be able to use the application, it simply will not respond to any user until the sending of coins with insufficient commission is canceled(this time varies depending on the speed of creating new blocks, from 1.5 minutes to 4 or more) so you can block the operation of all smart contracts in the network
this procedure can be done as many times as you want, even with all smart contracts on the network at the same time during the whole day. no one will be able to use any smart contract in the Credits network all this time. you can permanently block the operation of any smart contract. according to my calculations with this method to block 1 smart contract of the popular application in the Credits network for the whole day, the attacker will need only $0.72) why $0.72? transactions with insufficient commission are rejected within 1.5 minutes and this is the fastest option, when the speed of creating new blocks is about 2 blocks per second. (if the block creation speed is slower, the transaction will be rejected longer). take as a basis of 2 minutes. Provided that the commission in the cs network will be at $0.001, the attacker will need only $0.03 to block the operation of the smart contract for one hour and $0.72 to block for 24 hours
In the same way, you can paralyze the transaction of any token in the network. sent to the smart contract of token 0-0.000...1cs, set a commission of 0.0005 cs and then the transaction of this token, in respect of which we have committed this action will be impossible. all transactions with this token will be in the pending status until the Credits coin transaction with insufficient commission is rejected. If desired, as I said, you can permanently paralyze the transfer of all tokens and the operation of all applications in the Credits network. all you need to do is write a bot(or do it all manually), which is every 1.5-2 minutes will send credits coins to smart contracts with insufficient commission. the cost of such an attack on 1 smart contract per day will be only $0.72.
The text was updated successfully, but these errors were encountered: