-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Use consecutive tx.nonce, like counter #1502
Comments
You can use |
I think this is not a problem. Consecutive nonce will lead to other problems. |
It's true, and it may cause some synchronization problems. But the good thing is, we have deterministic transaction order, and the possibility to cancel /speed up transaction. |
If you want to cancel a transaction, you should use |
I mean we have the possibility of canceling transactions that have not yet expired. |
You can set |
Due to the Nonces' lack of control an attacker can request a transaction from a user to do a payment, in a webstore for example, and carry out a Sybil Attack, restricting transaction broadcast over the network. The user when seeing that the payment has not been made (not included in a block), could repeat the payment (currently, generating a new random nonce). The attacker can capture all these transactions, even if the sum of them exceeds the balance of the user's wallet, and distribute them arbitrarily when the wallet has more balance. Subtracting more funds than the user initially wanted to send. |
If But our recomendation is to follow the |
NEO network generate block every 15 seconds, so I don't think that you have a chance to send another transaction with more gas to revert the previous one.
I can't see a scenario.
You need to wait for the blocks exceeding the |
What if we're to add
What if we're to add And these are gonna be attributes, so completely optional and only used for particular problems. |
If user has Solid States NEP on its wallet, this will never happen 😂 On Neo2 this is easily doable, but for Neo3, it makes transactions stateful again... |
24h's ValidUntilBlock increment might be still too long to prevent an attack. Unless we urge every one must not resend 24 hours after a "failed" transaction, but I doubt whether this is practical. |
|
Should we enable setting this value in neo-node? |
Summary or problem description
In Neo3, we haven't used consecutive nonce, may lead to two problems:
Non-deterministic Transactions Order
When sending multiple simultaneous transactions, a user cannot order their transactions in a
deterministic way and this is important in many cases.
Replay Attack
Due to the Nonce' lack of control an attacker can request a transaction from a user to do a payment, in a webstore for example, and carry out a Sybil Attack, restricting transaction broadcast over the network.
The user when seeing that the payment has not been made (not included in a block), could repeat the payment (currently, generating a new random nonce).
The attacker can capture all these transactions, even if the sum of them exceeds the balance of the user's wallet, and distribute them arbitrarily when the wallet has more balance. Subtracting more funds than the user initially wanted to send.
Do you have any solution you want to propose?
accepted.
pool with the transaction with more gas.
Neo Version
Where in the software does this update applies to?
original posted by @Red4Sec
The text was updated successfully, but these errors were encountered: