• Forum has been upgraded, all links, images, etc are as they were. Please see Official Announcements for more information

v0.10.12.x RC4 Testing

Status
Not open for further replies.
Quick suggestion.
Why don't you using "anonymize" instead of "denominate"? I think this is less technical and more approchable and intuitive.
 
Quick suggestion.
Why don't you using "anonymize" instead of "denominate"? I think this is less technical and more approchable and intuitive.
Because they aren't the same thing - though many people are conflating the two.

Denominating is simply the process of taking a given block of coins sent to you and breaking and down into standard denominations so they match up with other inputs automatically.

Darksend is what provides the anonymity. Where things get confusing is technically when you darksend, the outputs you get back may be further denominated, but that is not always the case.

I do agree with your general issue though - before a public release we need to make sure that the terminology we use is consistent and easy for anyone to not just use but actually, at least at a basic level, understand.
 
Thanks Evan & nj47 - the darkdsendrounds=8 worked like a charm!
1 hour later and this :)
Loving this version - very stable! - also have not seen the 0.025 collateral bug yet so hopefully its now fixed!
eRs7zva.png
 
And the auto denomination is going into all sorts of random addresses now. No collateral bug here also.
Wonder, how this was done, as I have not even updated my client?
Edit: The transaction fee is tiny but due to frequency will worry some people. They might think it will keep draining funds.
 
Last edited by a moderator:
And the auto denomination is going into all sorts of random addresses now. No collateral bug here also.
Wonder, how this was done, as I have not even updated my client?
Edit: The transaction fee is tiny but due to frequency will worry some people. They might think it will keep draining funds.
I sent 1000 DRK through 9 rounds. My total fee? 0.022 DRK @ $5/DRK = $0.11.

Two things. First, that was $5000 (if real DRK) = 0.0022% fee. Second, I used 9 rounds - probably more than is necessary.

From a UI perspective, sure, I see what you mean, 1 single fee displayed would be less concerning, but the fact is, it would be a lie - there really is not a way for on a per transaction/round level for there not to be a fee, or else it opens the network up to a free DDOS attack. For a regular user it is a very small price to pay for anonymity, however to DDOS the network with any effect would cost you thousands of DRK per hour.

tl;dr: The fee in reality is tiny. Communication with the user will be critical, but the way the fee per transaction works really cannot be altered.

The wallet should probably come with AutoDenominate turned off, but with a real big button to turn it on - making it very clear a fee will be charged, but it is a tiny fee.
 
I agree with the above, I think communication with the end-user is going to be CRITICAL, otherwise some people might panic seeing funds being taken without their consent, and also:
  • If they quit during a darksend round they could be hit with 0.025 collateral. A confirmation/warning box can fix this.
  • Whats happening during the denomination process and the 0.001 fee's.
  • A clear understanding of the darksend status box and its values. ("Waiting for more entries" 1/2 etc)
  • People need to know if the inputs they are sending have been through 3 or 8 rounds, as of right now the drop down box only says "Use DS+ inputs only", unless coin control is used and not all people know how to use this properly. A box saying the maximum rounds and the value of inputs available would be good, or a red, yellow or green status box to give the user comfort of when they can make the transaction.
Another question, is the 0.001 denomination fee fixed in the network or can we change it in the future. If 1DRK ever becomes say $500+ a coin, having 50cents per denomination could start to add up :)
 
Let's assume a DDOS attack is being launched. The person would need to run many, many wallets and to manually force darksend denom. If wallets are being auto denominated, perhaps fee should be waived.
Edit: To run lots and lots of wallets with auto denom, will take so many Drks that the cost is prohibitive anyway. Plus by definition, the entire mainnet is being auto denominated.
Edit2: It might be possible to insert code to ban wallets that manually denom too many times?
 
Let's assume a DDOS attack is being launched. The person would need to run many, many wallets and to manually force darksend denom. If wallets are being auto denominated, perhaps fee should be waived.
Edit: To run lots and lots of wallets with auto denom, will take so many Drks that the cost is prohibitive anyway. Plus by definition, the entire mainnet is being auto denominated.
Edit2: It might be possible to insert code to ban wallets that manually denom too many times?
You don't get it, there is no way on a protocol level to differentiate between an autodenomination and a manual one. Not even a little bit. [0]

If someone was going to DDOS a masternode they would not be running a single wallet. They would have written a program that connects directly to the darkcoin protocol - and I know that sounds intimidating, but I can assure you, anyone even remotely skilled at computer programming could do it.

This theoretical program then would try and send masternodes bogus transactions - they could emulate as many wallets as they wanted, banning by that wouldn't do anything.

Then ban by IP? Well that is the very point of a Ddos attack - the first D stands for distributed. They would be using a botnet coming from thousands of connections.

So now if a fee is required, each one of the connections in order to not be flat out rejected by the masternode costs 0.001 DRK. Without the fee? It costs them whatever renting the botnet would be. Renting a 10,000 computer botnet for an hour would be a couple dollars. If someone wanted to attack the network, they could do it indefinitely for $100 / day.

[0] If the wallet sent a flag distinguishing itself as an automatic denomination to the masternode - the attack simply would emulate it, making it effectively worthless.
 
You don't get it, there is no way on a protocol level to differentiate between an autodenomination and a manual one. Not even a little bit. [0]

If someone was going to DDOS a masternode they would not be running a single wallet. They would have written a program that connects directly to the darkcoin protocol - and I know that sounds intimidating, but I can assure you, anyone even remotely skilled at computer programming could do it.

This theoretical program then would try and send masternodes bogus transactions - they could emulate as many wallets as they wanted, banning by that wouldn't do anything.

Then ban by IP? Well that is the very point of a Ddos attack - the first D stands for distributed. They would be using a botnet coming from thousands of connections.

So now if a fee is required, each one of the connections in order to not be flat out rejected by the masternode costs 0.001 DRK. Without the fee? It costs them whatever renting the botnet would be. Renting a 10,000 computer botnet for an hour would be a couple dollars. If someone wanted to attack the network, they could do it indefinitely for $100 / day.

[0] If the wallet sent a flag distinguishing itself as an automatic denomination to the masternode - the attack simply would emulate it, making it effectively worthless.
I think the fact that multiple wallets will be used for attack is obvious. IP banning is useless, that is also obvious.
No one knows how the signing process occurs (other than Evan) but collateral is required, which is deterrent in itself.
Also, presumably the amount to be denominated must be provided. If someone is trying to break small amounts into many smaller amount of 0.1 Drks, that situation can perhaps be caught.
Edit: Much of this is conjecture as the code is closed source.
Edit2: Something like this: if original amount to be denominated is larger than 10 or 100 Drks, fee is waived. Or, if person is willling to post a collateral of 0.1 Drk or 1 Drk, fee is waived.
Edit3: Words like "you don't get it" is a negative for open discussions.
 
Last edited by a moderator:
You don't get it, there is no way on a protocol level to differentiate between an autodenomination and a manual one. Not even a little bit. [0]

If someone was going to DDOS a masternode they would not be running a single wallet. They would have written a program that connects directly to the darkcoin protocol - and I know that sounds intimidating, but I can assure you, anyone even remotely skilled at computer programming could do it.

This theoretical program then would try and send masternodes bogus transactions - they could emulate as many wallets as they wanted, banning by that wouldn't do anything.

Then ban by IP? Well that is the very point of a Ddos attack - the first D stands for distributed. They would be using a botnet coming from thousands of connections.

So now if a fee is required, each one of the connections in order to not be flat out rejected by the masternode costs 0.001 DRK. Without the fee? It costs them whatever renting the botnet would be. Renting a 10,000 computer botnet for an hour would be a couple dollars. If someone wanted to attack the network, they could do it indefinitely for $100 / day.

[0] If the wallet sent a flag distinguishing itself as an automatic denomination to the masternode - the attack simply would emulate it, making it effectively worthless.

I think there would be many type of DDOS.

1) tcp/udp traffic saturation : no connection to MN
- take down MN one by one.
- Some VPS provider has weak point in here.
- Some VPS provider will null route the ip of MN.
- If target is selected MN(getblocktemplate), each block has different selected MN.. more info needed..
- not practical.

2) tcp connection saturation : connection to MN : protocol level
- null connection is not practical, so protocol level.
- 250 incoming connection.
- If target is selected MN(getblocktemplate), each block has different selected MN.. more info needed..
- ip of bots will be identified.
- ban on multiple connection attempts with not sending darksend tx.
- acting like normal client(to avoid getting banned).. hmm what for..

3) darksend tx : connection to MN : protocol level
- If target is selected MN(getblocktemplate), each block has different selected MN.. more info needed..
- ip of bots will be identified.
- collateral fee

EDIT:
in 1) VPS is more resistant than dedicated server which has no protection
- changing ip is more easier at VPS

in 2) if a MN is linux and connlimit of iptables is used, attacker needs at least 120 uniq ip address.
(max 2 conn per ip, max 8 conn per c class)

in 2) and 3) I think wallet can handle.
 
Last edited by a moderator:
You don't get it, there is no way on a protocol level to differentiate between an autodenomination and a manual one. Not even a little bit. [0]

If someone was going to DDOS a masternode they would not be running a single wallet. They would have written a program that connects directly to the darkcoin protocol - and I know that sounds intimidating, but I can assure you, anyone even remotely skilled at computer programming could do it.

This theoretical program then would try and send masternodes bogus transactions - they could emulate as many wallets as they wanted, banning by that wouldn't do anything.

Then ban by IP? Well that is the very point of a Ddos attack - the first D stands for distributed. They would be using a botnet coming from thousands of connections.

So now if a fee is required, each one of the connections in order to not be flat out rejected by the masternode costs 0.001 DRK. Without the fee? It costs them whatever renting the botnet would be. Renting a 10,000 computer botnet for an hour would be a couple dollars. If someone wanted to attack the network, they could do it indefinitely for $100 / day.

[0] If the wallet sent a flag distinguishing itself as an automatic denomination to the masternode - the attack simply would emulate it, making it effectively worthless.
Ok, now I remember/understand. Thank you.
 
What is to prevent an attack where user's foil a dark-send by refusing to sign?

Obviously the collateral payment would be broadcast, costing the user .25 drk.

But an organized attack on the network would likely include the user broadcasting a double-spend transaction invalidating the .25 drk input used as collateral.

In this case, the dark-send is foiled and the collateral payment isn't collected from the user.
 
Ok, now I remember/understand. Thank you.

+1 ... thanks nj47!! Now I perfectly understand the need for the fee.

But yeah, the majority of DRK end users will freak out with so many -0.001 outputs. To be quite honest, I think its absolutely fundamental to be able to choose how much to D+ one wants. Hope this is possible.

By the way, jsut thought of this... does signing/verify message work with D+ ?

Also... No more -0.025 Collateral. Seems it was a case of bad internet connection going down right after sending D+.

nMGhZJu.png
 
Trying to denominate 300k tDRK with 9 rounds takes some days xD

Status: 0/unconfirmed, broadcast through 20 nodes
Date: 8/3/14 13:32
To: vertoe n1r5ibhWq8FcnhNELB9pzLvU8yEuUNMvgE
Debit: -10000.00
DRKTransaction fee: -0.034
DRKNet amount: -10000.034
DRKTransaction ID: f17bcf770899bd92beb856f886020291d370d5a8722ebaa6084c37cce9a11cc7
 
****** Please Update To 10.12.11 or 9.12.11 *******

More progress! I'm moving on to testing the voting system, then I think we're ready to launch. Let me know if there's anything else that needs to be addressed with Darksend.

- Darksend Denominate Outputs are now in a random order:

http://test.explorer.darkcoin.fr/tx/072ca56cbf705b87749513a2d2ee02080d506adcf8fe178f6dc2967f0711788e
http://test.explorer.darkcoin.fr/tx/32daa8ca46462e7e99f3532251d68a8c3835a080c937bd83b11db74e47b770ff

- Darksend now uses 3 participants instead of two.
- SplitUpMoney can now make collateral inputs when needed
- Transactions now shows darksend transaction types for easier understanding of what's going on:
DarkCoin - Wallet [testnet]_022.png


- Fixed a couple more cases where collateral was charged when it shouldn't have happened (let me know if it happens after this version)
- Fixed the money destruction bug, it was caused by "darksend denominate 8000". I missed a reference and the client passed an empty address to SendMoneyToDestination. rcp darksend source: http://pastebin.com/r14piKuq
- Unlocking/Locking wallet fixes (was spamming the logs)
- Unencrypted wallet fixes (was trying to lock every 10 seconds)
- Flare found and fixed an issue with DGW3 for win32
--------------

Stable Binaries
http://www.darkcoin.io/downloads/master-rc4/darkcoin-qt
http://www.darkcoin.io/downloads/master-rc4/darkcoind

RC4 Binaries ( masternodes / auto-denom )
http://www.darkcoin.io/downloads/rc4/darkcoin-qt
http://www.darkcoin.io/downloads/rc4/darkcoind
 
Last edited by a moderator:
****** Please Update To 10.12.11 or 9.12.11 *******

More progress! I'm moving on to testing the voting system, then I think we're ready to launch. Let me know if there's anything else that needs to be addressed with Darksend.

- Darksend Denominate Outputs are now in a random order:

http://test.explorer.darkcoin.fr/tx/072ca56cbf705b87749513a2d2ee02080d506adcf8fe178f6dc2967f0711788e
http://test.explorer.darkcoin.fr/tx/32daa8ca46462e7e99f3532251d68a8c3835a080c937bd83b11db74e47b770ff

- Darksend now uses 3 participants instead of two.
- SplitUpMoney can now make collateral inputs when needed
- Transactions now shows darksend transaction types for easier understanding of what's going on:
View attachment 276

- Fixed a couple more cases where collateral was charged when it shouldn't have happened (let me know if it happens after this version)
- Fixed the money destruction bug, it was caused by "darksend denominate 8000". I missed a reference and the client passed an empty address to SendMoneyToDestination. rcp darksend source: http://pastebin.com/r14piKuq
- Unlocking/Locking wallet fixes (was spamming the logs)
- Unencrypted wallet fixes (was trying to lock every 10 seconds)
- Flare found and fixed an issue with DGW3 for win32
--------------

Stable Binaries
http://www.darkcoin.io/downloads/master-rc4/darkcoin-qt
http://www.darkcoin.io/downloads/master-rc4/darkcoind

RC4 Binaries ( masternodes / auto-denom )
http://www.darkcoin.io/downloads/rc4/darkcoin-qt
http://www.darkcoin.io/downloads/rc4/darkcoind

OOOhhh... I like the intro statement. Bumping
 
Status
Not open for further replies.
Back
Top