Bitcoin Forum
May 04, 2024, 06:06:42 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 »  All
  Print  
Author Topic: [Nxt] Instant transactions with guaranteed confirmation  (Read 7922 times)
BCNext (OP)
Jr. Member
*
Offline Offline

Activity: 56
Merit: 60


View Profile
October 22, 2013, 11:27:41 AM
 #1

This thread is dedicated to discussion of Nxt features (https://bitcointalk.org/index.php?topic=303898.0), don't confuse it with Bitcoin or other altcoins.


In Bitcoin a payment is made by transferring all coins from input to output addresses with difference between input and output paid as transaction fee.  If someone wants to send only part of the coins they must send the rest back to one of their own addresses.  An attempt to use the same input twice is a double-spending, only one of the transactions will be confirmed even if enough money is sent back.

Unlike Bitcoin and its forks, Nxt uses a single account instead of multiple addresses for each user.  It is possible to send multiple transactions from the same source address (called "account"), all these transactions will be confirmed if the account holds enough coins.  Someone still can attempt a double-spending by paying for something with low fee and then sending all their coins to other account with higher fee, making it impossible to confirm the first payment.

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.

Does anybody see flaws or disadvantages in such design?

P.S.  Payment privacy in Nxt will be provided via mixing.
1714846002
Hero Member
*
Offline Offline

Posts: 1714846002

View Profile Personal Message (Offline)

Ignore
1714846002
Reply with quote  #2

1714846002
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714846002
Hero Member
*
Offline Offline

Posts: 1714846002

View Profile Personal Message (Offline)

Ignore
1714846002
Reply with quote  #2

1714846002
Report to moderator
1714846002
Hero Member
*
Offline Offline

Posts: 1714846002

View Profile Personal Message (Offline)

Ignore
1714846002
Reply with quote  #2

1714846002
Report to moderator
bybitcoin
Hero Member
*****
Offline Offline

Activity: 672
Merit: 500



View Profile
October 22, 2013, 12:01:40 PM
 #2

Not only that (I still need to think more, because I am not very attached to POS model yet), but what about a new hard coded rule too:
Any account can not hold more than 1% of the total coins (which is 1 Billion). If we could have more users, even 0.1% is wiser. Besides security concerns, another factor that advises us to force a more normal distribution of coins is having a more liquid transparent ecosystem.
Unlike POW that uses a demand/supply model of coin generation to some points, coin hoarding would be worse for a POS coin and rules like that may help a bit. I know one hoarder can easily set several accounts to bypass this rule, but like rules and stops that manage a city traffic, such 1% (or 0.1%) holding rules may slow down the hoarding rally a bit Smiley
Hazard
Legendary
*
Offline Offline

Activity: 980
Merit: 1000



View Profile WWW
October 22, 2013, 01:25:19 PM
 #3

Any account can not hold more than 1% of the total coins (which is 1 Billion).
Because that's enforceable Roll Eyes

Come-from-Beyond
Legendary
*
Offline Offline

Activity: 2142
Merit: 1009

Newbie


View Profile
October 22, 2013, 01:27:55 PM
 #4

Does anybody see flaws or disadvantages in such design?

Sounds like a magic.  Is there any other currency that promises instant transactions?
cunicula
Legendary
*
Offline Offline

Activity: 1050
Merit: 1003


View Profile
October 23, 2013, 08:43:46 AM
 #5

https://bitcointalk.org/index.php?topic=286536.msg3070839#msg3070839

http://www.netcoin.io/wiki/Secure_and_Instantaneous_Zero-Conf_Transactions_for_Point-of-Sale_Purchase

Check out the above links.

You need to have a mechanism for punishing people who spam zero conf txns in order to doublespend.
Snail2
Legendary
*
Offline Offline

Activity: 1512
Merit: 1000



View Profile
October 23, 2013, 08:49:49 AM
 #6

Does anybody see flaws or disadvantages in such design?

Sounds like a magic.  Is there any other currency that promises instant transactions?

Yes. Ripple XRP.
gatra
Hero Member
*****
Offline Offline

Activity: 583
Merit: 505


CTO @ Flixxo, Riecoin dev


View Profile WWW
October 23, 2013, 09:04:40 AM
 #7

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?


           ▄▄▄██████████▄▄▄
       ▄▄██
██████████████████▄▄
     ▄█
█████▀████████████▀██████▄
   ▄█
█████████████████████████████▄
  ▄█
█████████▄█▀▀██████████████████▄
 ▄█
███████████▀██████▄▄█████▄███████▄
▄█
██████████▀██▄▄▄▄██▀▀▀▀▀███████████▄
█████████████▀▀██▀████████▀▀████████
█████████████▄█▀████████████████████
████████▀▀▀▀██▀▀▀▀██████████████████
▀█
██████▀▀▀▀██▀▀▀▀███████████████████▀
 ▀█
███████▄████▄▄███████████████████▀
  ▀█
███████████████████████████████▀
   ▀█
█████████████████████████████▀
     ▀█
█████▄████████████▄██████▀
       ▀▀██
██████████████████▀▀
           ▀▀▀██████████▀▀▀
riecoin       ▄▄█████████▄▄
    ▄██▀▀         ▀▀██▄
  ▄██▀              ▀██▄
 ▄██     ██▄▄          ██▄
▄██      █████▄▄        ██▄
██       ████████▄▄      ██
██       ███████████▄    ██
██       ██████████▀     ██
▀██      ███████▀       ██▀
 ▀██     ████▀         ██▀
  ▀██▄   █▀          ▄██▀
    ▀██▄▄         ▄▄██▀
       ▀▀█████████▀▀
.flixxo   
BCNext (OP)
Jr. Member
*
Offline Offline

Activity: 56
Merit: 60


View Profile
October 23, 2013, 09:23:55 AM
 #8

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.
BCNext (OP)
Jr. Member
*
Offline Offline

Activity: 56
Merit: 60


View Profile
October 23, 2013, 09:26:21 AM
 #9


I can't open this link, HTTP Error 403.
stdset
Hero Member
*****
Offline Offline

Activity: 572
Merit: 506



View Profile
October 23, 2013, 11:04:32 AM
 #10

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.

Come-from-Beyond
Legendary
*
Offline Offline

Activity: 2142
Merit: 1009

Newbie


View Profile
October 23, 2013, 11:15:04 AM
 #11

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.
stdset
Hero Member
*****
Offline Offline

Activity: 572
Merit: 506



View Profile
October 23, 2013, 11:36:06 AM
 #12

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.

Come-from-Beyond
Legendary
*
Offline Offline

Activity: 2142
Merit: 1009

Newbie


View Profile
October 23, 2013, 11:43:36 AM
 #13

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.
stdset
Hero Member
*****
Offline Offline

Activity: 572
Merit: 506



View Profile
October 23, 2013, 11:58:39 AM
 #14

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.

BCNext (OP)
Jr. Member
*
Offline Offline

Activity: 56
Merit: 60


View Profile
October 23, 2013, 12:03:10 PM
 #15

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.
murraypaul
Sr. Member
****
Offline Offline

Activity: 476
Merit: 250


View Profile
October 23, 2013, 12:26:52 PM
 #16

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.

BTC: 16TgAGdiTSsTWSsBDphebNJCFr1NT78xFW
SRC: scefi1XMhq91n3oF5FrE3HqddVvvCZP9KB
murraypaul
Sr. Member
****
Offline Offline

Activity: 476
Merit: 250


View Profile
October 23, 2013, 12:28:30 PM
 #17

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?

BTC: 16TgAGdiTSsTWSsBDphebNJCFr1NT78xFW
SRC: scefi1XMhq91n3oF5FrE3HqddVvvCZP9KB
stdset
Hero Member
*****
Offline Offline

Activity: 572
Merit: 506



View Profile
October 23, 2013, 12:31:52 PM
Last edit: October 23, 2013, 12:50:39 PM by stdset
 #18

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 )

BCNext (OP)
Jr. Member
*
Offline Offline

Activity: 56
Merit: 60


View Profile
October 23, 2013, 01:21:08 PM
 #19

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.
BCNext (OP)
Jr. Member
*
Offline Offline

Activity: 56
Merit: 60


View Profile
October 23, 2013, 01:22:44 PM
 #20

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.
Pages: [1] 2 3 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!