To protect against DDOS attacks, we use POW in The tera blockchain.
Before sending a transaction to the network, the user must do the job — calculate the hash. Users with a high level of hash complexity have a high priority in the formation of the block. This is to protect miners from garbage transactions.
But honest users may face the situation that their transaction has less priority than the attacker’s transaction. In a situation where the number of transactions is small — they all fall into the block, but when they are more than the maximum number (in Ter it is 2000), the attacker can rent expensive equipment to form a more complex hash and thereby block transactions of honest users.For these purposes, we offer additional protection in the form of priority calculation.
Each transaction that is sent is verified on behalf of which account it was sent. This is done by checking the digital signature on the public key of the account. Users have a limit on the number of transactions within a certain time (for example, 1000 blocks), its value is floating — if the network is low, they can send more transactions. Implemented this through the transaction priority mechanism, transactions are sorted in order of priority, which depends on the total number of previously sent transactions, the greater it is — the lower the chances to get into the block. Thus, the accounts from which transactions are often sent begin to compete only with each other, and the accounts that are rarely sent — go out of turn. If we assume that the attacker has created thousands of accounts and launched attacks by generating a large number of transactions in turn from each account, then from the second transaction they begin to compete with each other and the channel remains free for users who have not sent any transactions in the last 1000 seconds. At the same time, each subsequent transaction of the attacker reduces the effect of the attack, since it becomes lower and lower competitive for the right to be included in the block.
Thus, DDOS attack will not be able to prevent honest users, as their transactions will be accepted on a priority basis.