Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: Rothgar on March 31, 2013, 04:56:54 AM



Title: Advantage of coin control, response to Mike Hearn
Post by: Rothgar on March 31, 2013, 04:56:54 AM

For something like coin control, parts were merged already, but the GUI wasn't. Well, honestly, if I was maintaining a wallet (I'm not) I wouldn't merge it either. We should be trying to make Bitcoin easier to use and less nerdy, not exposing the guts of the protocol in the UI. Rather I'd want to figure out a list of what people are using the coin control gui for - find a list of use cases then encourage people to implement them in a more direct way. Is this a privacy thing? Is it an accounting thing? Both? Neither? There's probably a better way to solve those problems.




This post is intended to be factual, and answer for what people use coin control for.  Yes it can help a privacy.  But it can make micro-payments (dust) more profitable for the user.

Say a user has 1.02 BTC at one address and .00012381 at another.  When the user wants to pay .2 BTC to another a transaction can be made that draws both inputs and yields the .2 payment output and a .82012381 change output.  This allows a user to merge micro-payments into spendable outputs.  Do this several times and much BTC in fees could be saved making the .00012381 payment worthwhile. 


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: etotheipi on March 31, 2013, 06:51:04 AM

For something like coin control, parts were merged already, but the GUI wasn't. Well, honestly, if I was maintaining a wallet (I'm not) I wouldn't merge it either. We should be trying to make Bitcoin easier to use and less nerdy, not exposing the guts of the protocol in the UI. Rather I'd want to figure out a list of what people are using the coin control gui for - find a list of use cases then encourage people to implement them in a more direct way. Is this a privacy thing? Is it an accounting thing? Both? Neither? There's probably a better way to solve those problems.




This post is intended to be factual, and answer for what people use coin control for.  Yes it can help a privacy.  But it can make micro-payments (dust) more profitable for the user.

Say a user has 1.02 BTC at one address and .00012381 at another.  When the user wants to pay .2 BTC to another a transaction can be made that draws both inputs and yields the .2 payment output and a .82012381 change output.  This allows a user to merge micro-payments into spendable outputs.  Do this several times and much BTC in fees could be saved making the .00012381 payment worthwhile. 

As far as I'm concerned, the answer is splitting the interface into usermodes.  That's why Armory has a "Standard", "Advanced" and "Expert" usermode.  Custom change addresses and coin-control only appear if the user explicitly changes the mode to "Expert."  It's a very elegant solution to making these "manual-transmission" features available while still giving most users the automatic transmission.

Although it's easiest if the windows are laid out in code.   Then in the code you say: 

Code:
layout = QVBoxLayout
layout.addWidget(button1)
layout.addWidget(button2) 
if usermode=="Expert":
   layout.addWidget(button3)


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: wumpus on March 31, 2013, 08:28:07 AM
As far as I'm concerned, the answer is splitting the interface into usermodes.  
Isn't this already the case with the current coin control pull? I haven't tested it myself yet, but I was told that it's disabled by default:

https://github.com/bitcoin/bitcoin/pull/2343


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: Mike Hearn on March 31, 2013, 12:25:26 PM
That is indeed a useful thing, but coin control is the wrong way to do it (which is what I've been getting at all along).

Automatically defragmenting wallets are something that has been discussed, at least on IRC, quite a few times.  As long as miners are willing to bias their priority calculations towards transactions that reduce the size of the UTXO set it can make sense. Not only when you create new payments, but for example at night time if your wallet is open (or on an always-on device like an android).

My point about coin control is that whatever problem you're solving with it, you can usually see a better solution that works for more people.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: etotheipi on March 31, 2013, 02:29:18 PM
That is indeed a useful thing, but coin control is the wrong way to do it (which is what I've been getting at all along).

Automatically defragmenting wallets are something that has been discussed, at least on IRC, quite a few times.  As long as miners are willing to bias their priority calculations towards transactions that reduce the size of the UTXO set it can make sense. Not only when you create new payments, but for example at night time if your wallet is open (or on an always-on device like an android).

My point about coin control is that whatever problem you're solving with it, you can usually see a better solution that works for more people.

And my point, based on experience, taking feature requests from hundreds of users and trying to negotiate things in designing Armory... some users just want control.  I agree with you that the fee logic could be updated to favor cleaning up dust.  But that's not the only reason people use it (though, it might be the base for the OP, here).  The advanced folks who understand how it works under the hood *want control".  It's the same reason I will always drive a manual-transmission even though automatic technically does the same thing for me.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: etotheipi on March 31, 2013, 03:15:24 PM
Maybe I am missing something.  Does Armory have this already?  Why do you want a change to the Bitcoin software if this be done by a wallet or plugin that sits on top of the main software? 

Armory lets you control the source addresses, not the individual coins (but still called "Coin Control").  People requested "Coin control", I gave them that, and I haven't really heard any complaints.  So I left it alone.



Title: Re: Advantage of coin control, response to Mike Hearn
Post by: 2112 on March 31, 2013, 03:35:15 PM
That is indeed a useful thing, but coin control is the wrong way to do it (which is what I've been getting at all along).

Automatically defragmenting wallets are something that has been discussed, at least on IRC, quite a few times.  As long as miners are willing to bias their priority calculations towards transactions that reduce the size of the UTXO set it can make sense. Not only when you create new payments, but for example at night time if your wallet is open (or on an always-on device like an android).

My point about coin control is that whatever problem you're solving with it, you can usually see a better solution that works for more people.
You aren't going to get anywhere on this line of thinking, except simply digging a deeper foxhole for yourself.

The benefit of the so called "coin control" for nearly every user is in allowing him/her to see the how the protocol operates "under the hood". This is a great learning tool both for the beginning users and for the developers that begin to work with Bitcoin.

Even if the significant portion of the "coin control" users wont use it for the "control" but just as a magnifying glass to see whats inside their wallet, it will be a great upgrade to the reference client.

Maybe just rename it from "coin control" to "coin loupe & tweezers"?


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: coqui33 on March 31, 2013, 03:41:03 PM
Some of you guys are missing the point. If you make and sell ice cream, it is pointless to argue that nobody really needs pistachio flavor, that other flavors are just as tasty. You may be absolutely right. But the public (the buyers) could care less what you think, even if you are right. They want pistachio flavor.

The public wants to be able to import privkeys in order to send money out of them, to choose the privkey from which the money will be spent, and to delete privkeys when done.

Etotheipi "gets" this. He provides what customers want, rather than what he thinks they should have. He will succeed and, when btc softare is sold for money, he will become rich. Those who try to dictate what the customer needs, not so much.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: ShadowOfHarbringer on March 31, 2013, 03:41:30 PM
That is indeed a useful thing, but coin control is the wrong way to do it (which is what I've been getting at all along).

Automatically defragmenting wallets are something that has been discussed, at least on IRC, quite a few times.  As long as miners are willing to bias their priority calculations towards transactions that reduce the size of the UTXO set it can make sense. Not only when you create new payments, but for example at night time if your wallet is open (or on an always-on device like an android).

My point about coin control is that whatever problem you're solving with it, you can usually see a better solution that works for more people.
You aren't going to get anywhere on this line of thinking, except simply digging a deeper foxhole for yourself.

The benefit of the so called "coin control" for nearly every user is in allowing him/her to see the how the protocol operates "under the hood". This is a great learning tool both for the beginning users and for the developers that begin to work with Bitcoin.

Even if the significant portion of the "coin control" users wont use it for the "control" but just as a magnifying glass to see whats inside their wallet, it will be a great upgrade to the reference client.

This x 100.

There should always be an EXPERT mode, perhaps even unlockable using INI FILE SETTING to satisfy Mike Hearn as he is so afraid of complicating things for "dumb end users" (stupid people are usually afraid to touch configuration files).

Actually this is the reason i created my fork, because Gavin didn't want to give me control over if i want more risk or not. Why not just make a stupid configuration setting in *.ini file ? This is very little work.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: ShadowOfHarbringer on March 31, 2013, 03:50:18 PM
@Mike

Look how mozilla solved your "dumb user" problem. Show a big warning, and if the user proceeds, that is his responsibility if he breaks something or loses money.

http://thegeekin.com/wp-content/uploads/2012/06/disable-speeddail-permenantly-in-firefox-step1.png

*Learn from the best*


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: etotheipi on March 31, 2013, 04:10:12 PM
@Mike

Look how mozilla solved your "dumb user" problem. Show a big warning, and if the user proceeds, that is his responsibility if he breaks something or loses money.

(img)

*Learn from the best*

Let's not bash on Mike too much.  I sympathize with his position -- also coming from the development side, I know how hard/frustrating it is to meet the demands of users for features that may be transient requests, for functionality that seems like it can provided in other ways (spend a week implementing it, then a month later it's obsolete by the other features you put in that serve the same purpose, or the original users don't find it that exciting after all).  It's part of the reason I didn't do coin control for so long -- I didn't even know how to design it because I didn't understand what users wanted or why they wanted it.  How is it supposed to be on my priority list when it has such little value to myself?

In this case, the OP made a specific argument, and I agree with Mike that the specific request by OP is "addressed" by other solutions.  But I think OP, like so many other users, just want the level of control they understand is possible, and he tried to justify it with that particular example that Mike disagrees with.  Everyone is "right" here:  the fee logic should be updated to favor reducing UTXO set size, clients will adapt to the new rules by favoring reducing UTXOs, and users should have control over the source addresses/coins anyway, because some of them prefer to use their knowledge to optimize coin selection for their specific needs on a per-transaction basis, better than the default logic included in the app, and such advanced features should be hidden in the default installation of the app.



Title: Re: Advantage of coin control, response to Mike Hearn
Post by: CIYAM on March 31, 2013, 04:19:11 PM
Having an *expert* mode is the right approach - there are many reasons why expert users might want/need "Coin Control" - to stop them having it to "protect the newbies" doesn't make any sense at all.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: Mike Hearn on March 31, 2013, 05:37:30 PM
It'll ultimately be up to Gavin. Having specialist wallets like Armory that cater to people who have a deep knowledge of the protocol and tolerance for screwing with fiddly details isn't inherently a bad thing, but should Bitcoin-Qt be that wallet? Well, if we're going to start pushing users towards MultiBit then maybe it doesn't matter if the UI of Bitcoin-Qt is intimidating and full of features only useful for a small number of people. Because not many people will use Bitcoin-Qt any more.

Whatever wallets end up being in the recommended default set, I don't think they should be targeted at the sort of people who want coin control. Sorry. If Bitcoin is going to scale up and become widely used, it has to be drop dead simple, and not have any sharp edges. There's a reason Satoshi released Bitcoin 0.1 with a friendly Windows GUI and not as a command line tool, even though the latter would have been less work.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: wumpus on March 31, 2013, 05:52:09 PM
He will succeed and, when btc softare is sold for money, he will become rich.
You're joking right? Hmm maybe we should sell the "expert mode" powerup for money :-)


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: coqui33 on March 31, 2013, 06:08:38 PM
You're joking right? Hmm maybe we should sell the "expert mode" powerup for money :-)
Great idea! I would definitely pay good money for a simple, single-purpose bc spender that enables:

(1) import a privkey
(2) spend from it
(3) delete the privkey

Nothing more. Everything else is superfluous complication that stops my granny from using bc. It need not even show the balances in my privkeys, since I can easily get this information on the web.

Three functions: import, spend, delete.

The only reason you call this utter simplicity "expert mode" is because you cannot resist throwing in many other functions that few uninterested-in-bitcoins end-users care about. Again, import, spend, delete. Do that--and nothing but that--and you can charge $30 a copy (especially if you make Android, Mac, and Windows versions.)


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: justusranvier on March 31, 2013, 06:34:25 PM
You're joking right? Hmm maybe we should sell the "expert mode" powerup for money :-)
Great idea! I would definitely pay good money for a simple, single-purpose bc spender that enables:

(1) import a privkey
(2) spend from it
(3) delete the privkey

Nothing more. Everything else is superfluous complication that stops my granny from using bc. It need not even show the balances in my privkeys, since I can easily get this information on the web.

Three functions: import, spend, delete.

The only reason you call this utter simplicity "expert mode" is because you cannot resist throwing in many other functions that few uninterested-in-bitcoins end-users care about. Again, import, spend, delete. Do that--and nothing but that--and you can charge $30 a copy (especially if you make Android, Mac, and Windows versions.)
I understand (1) and (2), and I can understand hiding private keys with empty balances, but deleting them seems like a disaster waiting to happen.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: etotheipi on March 31, 2013, 06:46:50 PM
You're joking right? Hmm maybe we should sell the "expert mode" powerup for money :-)
Great idea! I would definitely pay good money for a simple, single-purpose bc spender that enables:

(1) import a privkey
(2) spend from it
(3) delete the privkey

Nothing more. Everything else is superfluous complication that stops my granny from using bc. It need not even show the balances in my privkeys, since I can easily get this information on the web.

Three functions: import, spend, delete.

The only reason you call this utter simplicity "expert mode" is because you cannot resist throwing in many other functions that few uninterested-in-bitcoins end-users care about. Again, import, spend, delete. Do that--and nothing but that--and you can charge $30 a copy (especially if you make Android, Mac, and Windows versions.)

I'm not sure this embodies simplicity.  It embodies simplicity once you understand private keys, but I'd like to hide user-handling-private-key-data entirely (because they're likely to not realize it's different the addresses which are okay to send to your friends).  They should make a backup of their wallet and told to keep it secure, but that's it.  Beyond that, the way forward is "Wallets" and "Balances".  I'd almost be in favor of referring to addresses as "one-time payment codes", to even hide the "addresses" concept to users that only care about how many BTC they have.  A user has a wallet, and balances on each of those wallets.  Combined with "wait 2+ conf for small payments, 6+ confirmations for huge payments", this is enough for users new to Bitcoin to actually be functional.  This is what I want to see in the Satoshi client.  And eventually in the "Standard" usermode in Armory.  

For now, it sounds like Bitcoin-Qt and Multibit and Electrum are going to work on that user-frieindliness aspect.  Armory, bitcoind, and electrum-CLI are going to work on that advanced user aspect.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: wumpus on March 31, 2013, 06:54:37 PM
 I'd almost be in favor of referring to addresses as "one-time payment codes", to even hide the "addresses" concept to users that only care about how many BTC they have.  
Agreed. By calling the public keys an address an storing it in an 'address book' encourages re-use, which should be prevented. The aim is that the payment protocol is going to make it possible to move the whole 'address' thing to a background role.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: coqui33 on March 31, 2013, 07:01:50 PM
I understand (1) and (2), and I can understand hiding private keys with empty balances, but deleting them seems like a disaster waiting to happen.
Then let me explain. You are coming at it from the bitcoind or bitcoin-qt direction: What added features are needed? I am coming at it from the opposite direction: What is the minimum functionality needed for my granny to spend her money?

You are assuming that all of granny's privkeys reside in the software "wallet". I am assuming that the software is stateless, non-persistent, and contains no privkeys at all. It is empty. No addy/privkey pairs. None. When granny wants to spend some money, she chooses one of her privkeys from her secret hiding place, imports the privkey into the software, spends whatever money she wants to spend, and quits. Again, the software retains no persistent memory of her privkey. None. If she wants to track confirmations and/or balances, she can do it on the web.

You ask: "Well then, where is her secret hiding place where she keeps her privkeys?"

Granny answers: "Hah! You are the last person whom I would tell, young feller! They are hidden the same place where my other secret stuff is hidden. (Cackle!)"

In short, you assume that granny (who jealously guards the numbers to her offshore bank accounts) is too naive to guard her privkeys. Granny is not stupid. She is very smart indeed. She may be ignorant (uninformed) regarding bc, but she automatically relates her privkeys to her offshore account numbers or her safe-deposit vaults. You envision the user as an irresponsible teenager. I envision the user as someone living off a million-dollar nest egg that is being devoured by inflation.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: etotheipi on March 31, 2013, 07:04:22 PM
I understand (1) and (2), and I can understand hiding private keys with empty balances, but deleting them seems like a disaster waiting to happen.
Then let me explain. You are coming at it from the bitcoind or bitcoin-qt direction: What added features are needed? I am coming at it from the opposite direction: What is the minimum functionality needed for my granny to spend her money?

You are assuming that all of granny's privkeys reside in the software "wallet". I am assuming that the software is stateless, non-persistent, and contains no privkeys at all. It is empty. No addy/privkey pairs. None. When granny wants to spend some money, she chooses one of her privkeys from her secret hiding place, imports the privkey into the software, spends whatever money she wants to spend, and quits. Again, the software retains no persistent memory of her privkey. None. If she wants to track confirmations and/or balances, she can do it on the web.

You ask: "Well then, where is her secret hiding place where she keeps her privkeys?"

Granny answers: "Hah! You are the last person whom I would tell, young feller! They are hidden the same place where my other secret stuff is hidden. (Cackle!)"

Have fun explaining change addresses to granny.  And reminding her to take note of how much change was created, so she can manually update her documentation to make sure she knows how much each key has.

Also, at least until something like Ultimate Blockchain Compression (https://bitcointalk.org/index.php?topic=88208.0) is implemented, "importing" a private key is a disaster.  You either trust someone to tell you how much each address has, or wait 30 minutes for a blockchain scan to complete.  (right now, there is no way other than to do a blockchain scan).


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: Rothgar on March 31, 2013, 07:52:39 PM
That is indeed a useful thing, but coin control is the wrong way to do it (which is what I've been getting at all along).

Automatically defragmenting wallets are something that has been discussed, at least on IRC, quite a few times.  As long as miners are willing to bias their priority calculations towards transactions that reduce the size of the UTXO set it can make sense. Not only when you create new payments, but for example at night time if your wallet is open (or on an always-on device like an android).

My point about coin control is that whatever problem you're solving with it, you can usually see a better solution that works for more people.

I agree with you Mike that having a smart algorithm that consolidates dust while making payments would be the way to go for the average user.  I personally have no complaint about the current situation as Armory does what I like.  Heck, even blockchain.info has coin control, they just call it custom transactions.  So the current situation is more than sufficient for my purpose.  I wouldn't want to use a wallet that does consolidating transactions with out asking me and requiring a password.  I think the defragmenting could be incorporated into the payments that are sent by normal use by the user.  Such defragmenting may make the advantage of coin control not as great.  Either way I still would want coin control and I have it. 

I really appreciate the hard work of all the developers. 


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: christop on March 31, 2013, 08:36:16 PM
Have fun explaining change addresses to granny.  And reminding her to take note of how much change was created, so she can manually update her documentation to make sure she knows how much each key has.
Does change *have* to be sent to a different address from any of the inputs? I see nothing in the protocol that prohibits this. The reference client just happens to send change to a different address for some reason.

In a minimal client that was proposed above, Granny could send money from address A, which she controls, to address B, which she does not control, and then sends change back to address A.

Also, remember that Granny can keep track of her balance(s) with a "watch only" wallet client. She doesn't have to trust anyone but her own full client for that information.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: Rothgar on March 31, 2013, 09:00:08 PM

Does change *have* to be sent to a different address from any of the inputs? I see nothing in the protocol that prohibits this. The reference client just happens to send change to a different address for some reason.


No change is not required to go to a different address.  The client does this to preserve privacy of the user.  Bitcoinspinner is an example of a one address wallet.  I think users should remove coins and then get a new address every once and a while to preserve privacy.  I would still keep a backup for fun.

Imagine years from now inspecting all the old wallets and finding 0.01 BTC of a tip or mistake that was sent to you.  That would be fun!


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: coqui33 on March 31, 2013, 10:06:37 PM
In a minimal client that was proposed above, Granny could send money from address A, which she controls, to address B, which she does not control, and then sends change back to address A.

Precisely so.

Also, remember that Granny can keep track of her balance(s) with a "watch only" wallet client. She doesn't have to trust anyone but her own full client for that information.

Precisely so.

The client does this to preserve privacy of the user.

If granny prefers the elegant simplicity (of looped-back change) to "privacy" at the cost of complexity (figuring out where her change is going), she will buy the former and the latter will rot on the shelf.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: Rothgar on March 31, 2013, 10:31:39 PM
The client does this to preserve privacy of the user.

If granny prefers the elegant simplicity (of looped-back change) to "privacy" at the cost of complexity (figuring out where her change is going), she will buy the former and the latter will rot on the shelf.

Woah,  quite an extreme there.  How about Granny gets the former and I get the latter. 


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: coqui33 on April 01, 2013, 01:18:05 AM
Woah,  quite an extreme there.  How about Granny gets the former and I get the latter. 
LOL! NP. :)


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: thezerg on April 01, 2013, 02:04:55 AM
Clearly a user might not want UTXOs to be consolidated b/c that could break privacy.  And personally I think that private keys are a great way to make paper wallets so I don't see them disappearing any time soon.  Many articles have been written abt how paper may actually be a more robust long-term storage then electronic formats (try to read that 8" floppy... do you even know that they existed?) so whether you agree w/ this or not it is clear that many people will.

So, how about the wallet by default does UTXO consolidation, etc, and generally allows you to access it exactly as you do today,  but there is an option that allows you to create a new "wallet section" (this sort of gets you into an "expert" mode without forcing the explicit request onto you).  If you create a new section (and name it something else), then private keys, UTXOs, etc do not cross the section.  Also, you can select which wallet section to pay out of.  You might ask why not just pop up 2 copies of the client... but there is the issue then of 2 blockchains on fully validating clients, and also why does firefox give you tabs, why do all doc programs let you open multiples at the same time.  There is clear value.



Title: Re: Advantage of coin control, response to Mike Hearn
Post by: justusranvier on April 01, 2013, 02:36:12 AM
Clearly a user might not want UTXOs to be consolidated b/c that could break privacy. 
The best of both worlds would be to invent a protocol for trustless P2P mixing that would allow a user to consolidate UTXOs as part of the mixing process.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: nimda on April 01, 2013, 02:55:46 AM
Coin control is pretty much the only way to spend dust transactions. E.g. SatoshiDICE dust can be pruned if it is added to a large input and then spent.
Coin control is pretty much the best way to avoid associating addresses that should stay separate.

As for the first one, finding the optimal transaction is (I think) NP-complete. Assuming it can be brute-forced (throw every input-combination together, select best one), I think these would be my priorities, in order:

  • Lowest fee
  • Use most dust inputs (dust is hard to spend, pruning is good)
  • Use youngest coins (aged coins are a resource)
  • Smallest size

Currently I just use createrawtransaction and pick a good-looking set of inputs.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: gmaxwell on April 01, 2013, 03:40:55 AM
As for the first one, finding the optimal transaction is (I think) NP-complete.
There are efficient integer linear programming solutions for most problem cases, at least for some sensible objectives (like "minimize priority subject to meeting the free relay criteria").

Actually deciding what you want to be your objective is AI-complete though. :P


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: Bitsky on April 01, 2013, 08:43:43 AM
I second the expert mode. Pop up a big scary warning message when a user enables it, but let the user decide.

For me, coin control is mostly a privacy thing. You're always told not to reuse addresses, but if you then make a payment a bunch of different addresses are combined for the input. Everybody can see that those belong to the same wallet then. Parse the blockchain and one can group those addresses by the wallets. If one address of those can be mapped to a user, all others are automatically mapped too.

It's like having accounts with three or four different banks and while you can define which account receives funds you're unable to say which bank(s) will pay a bill.

As for change, there could be some default/expert options:
1. directly back to the source
2. if several source addresses are used, offer a drop-down list
3. offer a list with all your addresses
4. generate a random new address


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: phelix on April 01, 2013, 02:39:17 PM
[...]
Great idea! I would definitely pay good money for a simple, single-purpose bc spender that enables:

(1) import a privkey
(2) spend from it
(3) delete the privkey

Nothing more. Everything else is superfluous complication that stops my granny from using bc. It need not even show the balances in my privkeys, since I can easily get this information on the web.

Three functions: import, spend, delete.

The only reason you call this utter simplicity "expert mode" is because you cannot resist throwing in many other functions that few uninterested-in-bitcoins end-users care about. Again, import, spend, delete. Do that--and nothing but that--and you can charge $30 a copy (especially if you make Android, Mac, and Windows versions.)
ever tried http://brainwallet.org? Thanks for the $30.  ;)
(not sure if it is safe, though)

I second the expert mode. Pop up a big scary warning message when a user enables it, but let the user decide.

For me, coin control is mostly a privacy thing. You're always told not to reuse addresses, but if you then make a payment a bunch of different addresses are combined for the input. Everybody can see that those belong to the same wallet then. Parse the blockchain and one can group those addresses by the wallets. If one address of those can be mapped to a user, all others are automatically mapped too.

It's like having accounts with three or four different banks and while you can define which account receives funds you're unable to say which bank(s) will pay a bill.

As for change, there could be some default/expert options:
1. directly back to the source
2. if several source addresses are used, offer a drop-down list
3. offer a list with all your addresses
4. generate a random new address
quoted you here: https://bitcointalk.org/index.php?topic=163757     
"Addresses Linked by Default - Potential Privacy Risk in Standard Client & Others"


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: kjj on April 01, 2013, 05:33:31 PM
Bitcoin already has an expert mode, and has had it for a while now.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: ShadowOfHarbringer on April 01, 2013, 08:47:25 PM
Bitcoin already has an expert mode, and has had it for a while now.

It does ?

I dont't see an "EXPERT MODE" button with a big, red, scary warning (YOU MIGHT LOSE UR MONIES !!!!!!!!!) anywhere.

How do I enable it ?


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: nimda on April 01, 2013, 09:32:11 PM
Bitcoin already has an expert mode, and has had it for a while now.

It does ?

I dont't see an "EXPERT MODE" button with a big, red, scary warning (YOU MIGHT LOSE UR MONIES !!!!!!!!!) anywhere.

How do I enable it ?

Debug console. The warning is replaced by the fact that using it is hard.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: kjj on April 01, 2013, 10:00:31 PM
Bitcoin already has an expert mode, and has had it for a while now.

It does ?

I dont't see an "EXPERT MODE" button with a big, red, scary warning (YOU MIGHT LOSE UR MONIES !!!!!!!!!) anywhere.

How do I enable it ?

Debug console. The warning is replaced by the fact that using it is hard.

This indeed.  Documentation can be found here (https://en.bitcoin.it/wiki/Raw_Transactions).


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: ShadowOfHarbringer on April 01, 2013, 11:40:09 PM
Bitcoin already has an expert mode, and has had it for a while now.

It does ?

I dont't see an "EXPERT MODE" button with a big, red, scary warning (YOU MIGHT LOSE UR MONIES !!!!!!!!!) anywhere.

How do I enable it ?

Debug console. The warning is replaced by the fact that using it is hard.

This isn't exactly what i was suggesting.

Expert mode can still have a reasonably nice GUI, like CoinControl.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: kjj on April 02, 2013, 03:20:18 AM
http://www.youtube.com/watch?v=U74s8nFE7No


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: Dabs on April 02, 2013, 07:43:18 AM
I actually like Coin Control, so I can play SatoshiDice using only one address, and using only the inputs from that address, to make the bet, to set the change address to the same, to win or to lose (and collect dust), to bet again (consolidates dust) ... Of course, if you play that way, unless you wait long enough for the required blocks to achieve high priority and have a large number of coins for that purpose, you might end up always paying the transaction fee.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: phelix on April 02, 2013, 08:30:18 AM

  • Use youngest coins (aged coins are a resource)


Why would you care if the coins are old or young?  Why are aged coins a resource?

free to send

no taint  ::)


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: nimda on April 02, 2013, 02:10:39 PM

  • Use youngest coins (aged coins are a resource)


Why would you care if the coins are old or young?  Why are aged coins a resource?


The age of inputs is a factor in calculating transaction priority. With a 1 week old 1 BTC coin, you can spend 5+ SatoshiDICE dust inputs for free.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: etotheipi on April 02, 2013, 05:45:55 PM
Maybe I am missing something.  Does Armory have this already?  Why do you want a change to the Bitcoin software if this be done by a wallet or plugin that sits on top of the main software? 

Armory lets you control the source addresses, not the individual coins (but still called "Coin Control").  People requested "Coin control", I gave them that, and I haven't really heard any complaints.  So I left it alone.



I think I understand, maybe:  Some people say that one Bitcoin is just like another (just like atoms in quantum mechanics where you can't distinguish one from another) but that is not really true.  Each satoshi has a history which can be traced back to the point it was mined.  With the Armory "coin control" it allows you to control the balances in the individual addresses but not each satoshi within each address.  What coin control would do is allow control over each individual Satoshi.  It seems to me that a wallet could do coin control without changing the main Bitcoin client but it would be a complicated programming task (but not impossible).  However, it may be easier to implement coin control if the main client was changed to make it easier to have coin control.  Is this the issue?

If you never reuse addresses, it is identical.  I wouldn't think of it as controling each satoshi... every time you receive X BTC, that's like an $X-bill (if $1/BTC) now sitting in your wallet.  When you want to give someone 10 BTC (assuming X is more than 10), you sign a transaction that uses that $X-bill as input, and has two outputs:  assigning 10 BTC to their address, and assigning X-10 to a change address you own.  Now they have a 10-BTC bill in their wallet, and you have an (X-10)-BTC bill in your wallet.  The original bill is "spent" (never to be used again).

Really, your signature allows you to destroy X-BTC bills, and create new bills with new owners equal in size to the original (anything left over is claimed by the miner that mines the transaction as a fee).  Armory coin control basically says "I only want to use bills from these N addresses, no others".  The intent was to give users control over what addresses are linked when you create transactions.  Some people want more than that, and want to control individual bills... Armory doesn't have that.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: Dabs on April 03, 2013, 01:43:23 AM

  • Use youngest coins (aged coins are a resource)


Why would you care if the coins are old or young?  Why are aged coins a resource?


The age of inputs is a factor in calculating transaction priority. With a 1 week old 1 BTC coin, you can spend 5+ SatoshiDICE dust inputs for free.

Would you have an easy chart on how this works? Say, for every day (or 144 block) equivalent of 1 BTC, how many SatoshiDICE dust inputs can be spent for free. Will this also convert to, for example, a 1 block old 144 BTC? And a 6 block old (1 hour) 24 BTC. 2 block old 72 BTC. 3 block old 48. 12 block old 12 BTC. etc?


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: nimda on April 03, 2013, 03:35:00 AM

  • Use youngest coins (aged coins are a resource)


Why would you care if the coins are old or young?  Why are aged coins a resource?


The age of inputs is a factor in calculating transaction priority. With a 1 week old 1 BTC coin, you can spend 5+ SatoshiDICE dust inputs for free.

Would you have an easy chart on how this works? Say, for every day (or 144 block) equivalent of 1 BTC, how many SatoshiDICE dust inputs can be spent for free. Will this also convert to, for example, a 1 block old 144 BTC? And a 6 block old (1 hour) 24 BTC. 2 block old 72 BTC. 3 block old 48. 12 block old 12 BTC. etc?
The Wiki has a technical explanation, but I'll try to simplify it. You must multiply number of satoshi's (10^-8 BTC) by number of confirmations and divide that by the total number of bytes to get priority. If the priority is greater than a 1 day 1 BTC coin (144 confs * 10^8 / 250 bytes), it can be free.

Now in reality, since compressed keys can be used, a transaction can be less than 250 bytes (min 225 for a standard one-input two-output tx).
Also, the number of bytes added by one more input varies greatly. Compare
http://blockchain.info/tx/8be6d23b774c9a5934c3a1927754e3fca4c98d6d95de7666a7f12df1d06f9b31
with
http://blockchain.info/tx/27bf16c3febd2c668ac867e378ca3fd9880a16cb969d4d54015553ed64416e95
to see what I mean. Both have 2 inputs and 2 outputs, yet there's a 64-byte difference between them.

If you give yourself a good cushion, though, you'll be fine. The easiest way is to use one bitcoin-day per input. If you're spending a dust tx, make sure you have 2 bitcoin-days. If you're spending 10 dust tx's, use 11 bitcoin-days. All bitcoin-days are created equal (except some days have more blocks than others; this is near-negligible). A 20-day 0.05 BTC has the same priority as a 1 day 1 BTC input.

Caveat: never create a sub-0.01 BTC output, no matter the priority.

I hope that was clear enough. If not, ask away!


P.S. The fee rules are not set in stone. Some miners have custom fee rules, and the rules in the reference client may soon change.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: Dabs on April 03, 2013, 04:13:33 AM
100 day old 0.01 BTC is the smallest then, and 10 minute old 144 BTC is largest. If I have 19 dust, I should use 20 bitcoin days. Going to the extremes, I'd need 2000 day old 0.01 BTC, or 2880 BTC if I want it next block.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: mp420 on April 03, 2013, 08:47:52 AM
Why I want coin control:

I understand keypairs.

I understand (on a basic level) how the blockchain and transactions work.

I do not understand the abstractions such as "accounts" built on bitcoin that the client imposes on me. They are neither something from the financial world nor something from the cryptography world. I can't see how they are useful and frankly I don't WANT TO learn how to use them.

I think a more sophisticated "accounting" system on top of the raw protocol could be useful if you are building a payment processing system on top of Bitcoin. I, as an end user, expect to do transactions very rarely and to spend a lot of time preparing whenever I have to make a transaction. Such as installing the newest client and downloading the blockchain.

So, what I want is:

1. The ability to import privkeys, preferably in many formats.
2. The ability to make raw transactions.

What I would like on top of those:

3. All kinds of "are you really really sure" warnings for anything that would be broadcast over to the network. Maybe even a configurable delay so that I could back out if I notice I made a mistake.

I do not want to keep any kind of a hot wallet, thank you very much. And I think the addressess (pubkeys) are a very useful thing to know, so I can check my balances from any third party service.

I do not want to run a node continuously.


Title: Re: Advantage of coin control, response to Mike Hearn
Post by: Dabs on April 17, 2013, 10:37:23 AM
Coin Control is more fun!

http://i354.photobucket.com/albums/r424/Dabs1911/Bitcoin/coin-control-no-fee.png:original

Keep the output to less than 10k (or about 62 unspent) and you have no fee too.