Pages:
Author

Topic: [Nxt] Instant transactions with guaranteed confirmation - page 2. (Read 7998 times)

jr. member
Activity: 56
Merit: 60
So, you don't really mean to limit special accounts with transactions summing up to 0.1 of it's balance / 24h? Or do you mean that 1 transaction gets confirmed, and the rest will wait in mempool, getting confirmed one by one every 24 hours?

Awaiting transactions will be confirmed one by one.
hero member
Activity: 583
Merit: 505
CTO @ Flixxo, Riecoin dev
This is not applied to Nxt because it uses accounts, not inputs.  A well-connected merchant will see most of the transactions, for a double-spending attack to succeed at least 10 of 11 transactions must be lost.
Ok, which step won't work?
1) I have that special account
2) I send 0.1 of my balance to a merchant, to buy something digital.
3) the merchant can't wait for a confirmation, because this is the point - not to wait.
4) for better safety the merchant resends the transaction to as many peers as possible (btw, he would do that anyway) and delivers me the purchase.
5) i know, that there are many miners on the network, which will gladly accept a doublespend if it includes greater fee. They are not malicious, just a bit greedy.
6) state of my account is still unchanged, because it can only change when a block is found. My client is modified and it allows me to send doublespends. Only one 1/10 transaction can be included in a block by the network. So I send another 1/10 transaction, this time with higher fee, to my another account.
7) one of greedy miners accepts the second transaction and includes it in a block.
Doublespend is successfull )
,
Not really Smiley

2 * 1/10th will be deducted from your balance (2 NXT if you had 10 NXT).  1 NXT will go to your other account and 1 NXT to the merchant.


it's not clear why...

if 2 * 1/10th are deducted then he violated the 1/10th per day rule... so one of the tx should have been ignored

also, if instead of buying one thing, he buys 19 things, and the merchants are not connected between them, 20 * 1/10th would be deducted. Except he only has 10/10ths. That's a double spend.
hero member
Activity: 572
Merit: 506
A special account has certain limits that don't let to create transactions for more than (for example) 1/10th of the balance in total within a 24 hour timeframe.  The network will simply ignore transactions and blocks that violate this rule.
So, you don't really mean to limit special accounts with transactions summing up to 0.1 of it's balance / 24h? Or do you mean that 1 transaction gets confirmed, and the rest will wait in mempool, getting confirmed one by one every 24 hours?
jr. member
Activity: 56
Merit: 60
And what if the first transaction isn't confirmed prior to that message?

It will be listed in the unconfirmed transactions.  Merchants will see it and refuse to sell you anything more expensive than 1/10th minus that transaction.
jr. member
Activity: 56
Merit: 60
This is not applied to Nxt because it uses accounts, not inputs.  A well-connected merchant will see most of the transactions, for a double-spending attack to succeed at least 10 of 11 transactions must be lost.
Ok, which step won't work?
1) I have that special account
2) I send 0.1 of my balance to a merchant, to buy something digital.
3) the merchant can't wait for a confirmation, because this is the point - not to wait.
4) for better safety the merchant resends the transaction to as many peers as possible (btw, he would do that anyway) and delivers me the purchase.
5) i know, that there are many miners on the network, which will gladly accept a doublespend if it includes greater fee. They are not malicious, just a bit greedy.
6) state of my account is still unchanged, because it can only change when a block is found. My client is modified and it allows me to send doublespends. Only one 1/10 transaction can be included in a block by the network. So I send another 1/10 transaction, this time with higher fee, to my another account.
7) one of greedy miners accepts the second transaction and includes it in a block.
Doublespend is successfull )

Not really Smiley

2 * 1/10th will be deducted from your balance (2 NXT if you had 10 NXT).  1 NXT will go to your other account and 1 NXT to the merchant.
sr. member
Activity: 476
Merit: 250
What prevents:
1] Initiate first part of double-spend attack
2] Become special account
3] Use the account for instant transaction

The merchant will accept the second transaction, because I am a 'special' account, but the first transaction is also out there waiting to be confirmed.

If the first transactions is confirmed prior to the message of becoming a special account (or in the same block), then amount you can play with will be lowered.

If your account becomes "special" in the first place, then your transaction won't be included into a block until it fits 1/10th rule.  Merchants will see it and act accordingly.

And what if the first transaction isn't confirmed prior to that message?
jr. member
Activity: 56
Merit: 60
Surely all you are doing is reducing the risk of double spends to 1/10th of the account value, you aren't actually removing the risk of one happening, just the benefit if it does?

Reducing risk to 1/zillionth is the same as removing it.
jr. member
Activity: 56
Merit: 60
What prevents:
1] Initiate first part of double-spend attack
2] Become special account
3] Use the account for instant transaction

The merchant will accept the second transaction, because I am a 'special' account, but the first transaction is also out there waiting to be confirmed.

If the first transactions is confirmed prior to the message of becoming a special account (or in the same block), then amount you can play with will be lowered.

If your account becomes "special" in the first place, then your transaction won't be included into a block until it fits 1/10th rule.  Merchants will see it and act accordingly.
hero member
Activity: 572
Merit: 506
This is not applied to Nxt because it uses accounts, not inputs.  A well-connected merchant will see most of the transactions, for a double-spending attack to succeed at least 10 of 11 transactions must be lost.
Ok, which step won't work?
1) I have that special account
2) I send 0.1 of my balance to a merchant, to buy something digital.
3) the merchant can't wait for a confirmation, because this is the point - not to wait.
4) for better safety the merchant resends the transaction to as many peers as possible (btw, he would do that anyway) and delivers me the purchase.
5) i know, that there are many miners on the network, which will gladly accept a doublespend if it includes greater fee. They are not malicious, just a bit greedy.
6) state of my account is still unchanged, because it can only change when a block is found. My client is modified and it allows me to send doublespends. Only one 1/10 transaction can be included in a block by the network. So I send another 1/10 transaction, this time with higher fee, to my another account.
7) one of greedy miners accepts the second transaction and includes it in a block.
Doublespend is successfull )
sr. member
Activity: 476
Merit: 250
We can counteract a double-spending attack in Nxt by using special accounts.  A special account has certain limits that don't let to create transactions for more than (for example) 1/10th of the balance in total within a 24 hour timeframe.  The network will simply ignore transactions and blocks that violate this rule.

A merchant (or a vending machine) can accept payments from special accounts without waiting for confirmations.  The only thing should be done is checking that a received transaction doesn't violate the rule.

Surely all you are doing is reducing the risk of double spends to 1/10th of the account value, you aren't actually removing the risk of one happening, just the benefit if it does?
sr. member
Activity: 476
Merit: 250
Instant means not waiting at all.

Instant transactions will be implemented after the Messaging feature.  That is how it will work:
1]  You publish on the blockchain a message saying that your account becomes a special account.
2]  You use the account for instant transactions.
3]  At some point you decide to empty the account, so you publish a message saying that the account becomes an ordinary one.
4]  Now you can't use instant transactions and have to wait for 1440 blocks (~24 hours) to withdraw all the coins.

You can send 1/10th of the balance a zillion times, but all the transactions except one of them won't be included into a block.  The odds that a peer will see only 1 transaction are negligibly small, if a merchant notices other transactions that exceed the daily limit they will not sell you anything.

What prevents:
1] Initiate first part of double-spend attack
2] Become special account
3] Use the account for instant transaction

The merchant will accept the second transaction, because I am a 'special' account, but the first transaction is also out there waiting to be confirmed.
jr. member
Activity: 56
Merit: 60
This is not applied to Nxt because it uses accounts, not inputs.  A well-connected merchant will see most of the transactions, for a double-spending attack to succeed at least 10 of 11 transactions must be lost.
hero member
Activity: 572
Merit: 506
Don't wait until block is found. Spam with doublespends once you received your purchase. If you need to wait a block, transactions are not instant, you just have a coin with short blocktimes.

1. He verifies ur tx doesn't violate the 1/10th rule.
2. Then he broadcasts ur tx to a lot of peers.
3. Then he checks ur tx against the rule again.
4. And finally he deliveries the goods.

Unbreakable IMO.
The same applies to common bitcoin transactions. In both cases doublespend can occur due to a modified/malicious miner, or a network accident, when a miner misses the first transaction, and accepts a doublespend.
legendary
Activity: 2142
Merit: 1010
Newbie
Don't wait until block is found. Spam with doublespends once you received your purchase. If you need to wait a block, transactions are not instant, you just have a coin with short blocktimes.

1. He verifies ur tx doesn't violate the 1/10th rule.
2. Then he broadcasts ur tx to a lot of peers.
3. Then he checks ur tx against the rule again.
4. And finally he deliveries the goods.

Unbreakable IMO.
hero member
Activity: 572
Merit: 506
3) Spam the network with doublespends, hope one of them gets confirmed.

U'd better buy a lottery ticket and hope to win 100 million dollars, hehe.  Obviously if one peer includes ur other txs into a block the network will reject it as invalid, coz...
You can send 1/10th of the balance a zillion times, but all the transactions except one of them won't be included into a block.
Don't wait until block is found. Spam with doublespends once you received your purchase. If you need to wait a block, transactions are not instant, you just have a coin with short blocktimes.
legendary
Activity: 2142
Merit: 1010
Newbie
3) Spam the network with doublespends, hope one of them gets confirmed.

U'd better buy a lottery ticket and hope to win 100 million dollars, hehe.  Obviously if one peer includes ur other txs into a block the network will reject it as invalid, coz...
You can send 1/10th of the balance a zillion times, but all the transactions except one of them won't be included into a block.
hero member
Activity: 572
Merit: 506
You can send 1/10th of the balance a zillion times, but all the transactions except one of them won't be included into a block.  The odds that a peer will see only 1 transaction are negligibly small, if a merchant notices other transactions that exceed the daily limit they will not sell you anything.
1) Send a transaction to a merchant from a special account.
2) Wait for delivery, let's imagine you buy something digital, then delivery can happen in seconds.
3) Spam the network with doublespends, hope one of them gets confirmed.
jr. member
Activity: 56
Merit: 60
Instant means not waiting at all.

Instant transactions will be implemented after the Messaging feature.  That is how it will work:
1]  You publish on the blockchain a message saying that your account becomes a special account.
2]  You use the account for instant transactions.
3]  At some point you decide to empty the account, so you publish a message saying that the account becomes an ordinary one.
4]  Now you can't use instant transactions and have to wait for 1440 blocks (~24 hours) to withdraw all the coins.

You can send 1/10th of the balance a zillion times, but all the transactions except one of them won't be included into a block.  The odds that a peer will see only 1 transaction are negligibly small, if a merchant notices other transactions that exceed the daily limit they will not sell you anything.
hero member
Activity: 583
Merit: 505
CTO @ Flixxo, Riecoin dev
please explain in more detail: instant means waiting for only one block, or not waiting at all?
2 problems:

1) if I can only spend 1/10 of my balance, then I could never empty my account! it could reach 0 asymptotically, but never be emptied in practice! Besides that, I'd like to be able to spend all my money in the same day...

2) so I can't send more than 1/10th of my balance, now let's say I send 1/10th many times. Like 1000 times. Only one of them will be confirmed, the other ones will be successfull double spends?
Pages:
Jump to: