Pages:
Author

Topic: 1 wallet 1 account (Read 1348 times)

sr. member
Activity: 241
Merit: 250
January 01, 2015, 08:16:21 PM
#23
The first reason would be when a person/entity is owed a specific amount of bitcoin (measured in bitcoin) (either because they borrowed money, because they were provided goods/services or otherwise), but cannot pay the entire amount all at once
This does fit within the model of "address as an invoice number", and it's strictly less harmful than other kinds of reuse. Though it would certainly be possible to provide multiple addresses for this purpose (the payment protocol accommodates this, IIRC). There may be reasons why the receiver cannot handle funds split up, and so the willingness to accept multiple payments really should be established up front or no payment should be made.
Absolutely. Some people explicitly say that they destroy private keys after they are used so without this confirmation it is possible that one of you will be out whatever is sent to the address. I was speaking more in the context of the practice of reusing addresses. If reusing addresses is so frowned upon that the miners will not accept transactions sent to a reused address then this application would not work.
Quote
Another reason to reuse an address would be to maintain the integrity of a charity
This application was my primary inspiration for the type-2 deterministic wallet proposal, which became BIP32: The FSF started accepting Bitcoin donations and they asked about being able to issue receipts for donation in order to comply with IRS requirements for 501(c)(3) chartable contributions over $250 in value. Doing so required they use one address per contribution but they did not want to generate private keys on an exposed web server which could be hacked.
In theory someone could send payment to a public address, then provide a signed message from a 'sending' address to get a receipt (although it is not always possible to accurately determine the sending address of a particular transaction). I would agree that a deterministic wallet would work better, as long as it can be confirmed to be associated with a 'master' key that is well known. This still has privacy draw backs because someone with enough resources could link all the addresses as being controlled by a single entity. 
Quote
If potential donors had to contact, say the American Red Cross every time they wanted to make a donation then the money would not make it to the Red Cross in the event their website gets hacked (and the hacker directs donors to send bitcoin to address that the hackers control).
Using an extended pubkey to receive funds allows the sender to verify the correct receiver statically without reusing addresses. Though this is not yet common.
I mostly responded to this above. However I do think this may be too complicated for the 'average' person to verify.
Quote
I would argue that the benefits gained by using a single address in these scenarios (especially the latter) outweigh the drawbacks.
Considering that the donor's ability to deduct donations is lost completely for donations over $250 if the recipient cannot issue receipts, and in the US an organization accepting quid-pro-quo donations without issuing receipts (which they cannot do if they're reusing addresses) is in violation of the tax code and could be subject to fines, I question your cost/benefit analysis in that context. Smiley
I would now agree when it comes to 501(c)(3) charities, however there are other "good causes" that are not tax deductible , some examples would be the forum, political parties (there is a limit as to how much a person can donate per time period today - this may change in an upcoming supreme court case), Snowden, wikileaks
hero member
Activity: 602
Merit: 501
January 01, 2015, 10:54:58 AM
#22
Whilst what you say makes some sense the point is that no-one except "nerds" will use Bitcoin Core anyway (it was never really designed for non-technical users and nor should it be if we want to actually be the backbone for other platforms).

There are still many people that don't trust internet banking (and in fact maybe they are not so stupid when you look at the way the problems that HTTPS has been facing with the NSA and others determined to weaken it for their own purposes) but until you can create a Bitcoin account using online banking (and have it insured) then you are never going to see much more widespread adoption (in the Western world) than we already have achieved IMO (although a complete collapse in confidence that people have for fiat currencies could change that).

The other main point is that you are looking at things the wrong way around - instead of trying to weaken the back-end to suit your front-end use case you need to improve your front-end to work with a more secure back-end (which is what any bank wanting to provide Bitcoin accounts for their customers would do).

Your job is to make a Bitcoin client/service work as securely as possible without the user being inconvenienced (i.e. it should be very simple for them to use but still as secure as possible).


I agree with your points whole heartedly , my modifications can be used in the cases outlined, but that was not my intent. I want to study transaction behavior of an account and make certain determinations based on it's activity and it's overall participation in the network.

in order to do that i need one account in a wallet, with no other change addresses polluting  the sample. I chose this method because basically there are no rpc calls to get the specific information i want so to make things easier i made it so that listtransactons output s the exact data set i require, combined with other answers provided by others i a now building a proof of concept for my idea.

I agree, weakening the back-end is counterproductive , but my purpose was to create a lab enviroment.

Quote
Your job is to make a Bitcoin client/service work as securely as possible without the user being inconvenienced (i.e. it should be very simple for them to use but still as secure as possible).

+1
legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
January 01, 2015, 10:38:23 AM
#21
Whilst what you say makes some sense the point is that no-one except "nerds" will use Bitcoin Core anyway (it was never really designed for non-technical users and nor should it be if we want to actually be the backbone for other platforms).

There are still many people that don't trust internet banking (and in fact maybe they are not so stupid when you look at the way the problems that HTTPS has been facing with the NSA and others determined to weaken it for their own purposes) but until you can create a Bitcoin account using online banking (and have it insured) then you are never going to see much more widespread adoption (in the Western world) than we already have achieved IMO (although a complete collapse in confidence that people have for fiat currencies could change that).

The other main point is that you are looking at things the wrong way around - instead of trying to weaken the back-end to suit your front-end use case you need to improve your front-end to work with a more secure back-end (which is what any bank wanting to provide Bitcoin accounts for their customers would do).

Your job is to make a Bitcoin client/service work as securely as possible without the user being inconvenienced (i.e. it should be very simple for them to use but still as secure as possible).
hero member
Activity: 602
Merit: 501
January 01, 2015, 10:18:47 AM
#20

1) Your core wallet has no real help section
2) I just want to receive in this weird address i have and send from it.
3) I am not particularly worried about privacy since i only send to/from my account to maybe 8 other entities.
4) i have no wish to enhance my technical skills just so i can use money.

Money is meant to be easy and fast. the moment we start talking about change addresses and key pools, we loose half the world.

1 wallet 1 address does not affect the blockchain in anyway, so instead of going against it, we can simply say it's easier but it looses the pseudo-anonimty the standard wallet comes with.

simply, it works and it's simple to explain. That alone beats anything that you want to say. Simplified ideas always win, want proof? look at how the average user quickly adopts the easy solution thats explained very easily.
full member
Activity: 238
Merit: 100
www.secondstrade.com - 190% return Binary option
January 01, 2015, 06:14:18 AM
#19
Not sure with Core Client, But I use MultiBit for this.

How do you import private keys without getting one more address added to the wallet in Multibit?
Its always a problem for me.
staff
Activity: 4284
Merit: 8808
January 01, 2015, 01:31:38 AM
#18
The first reason would be when a person/entity is owed a specific amount of bitcoin (measured in bitcoin) (either because they borrowed money, because they were provided goods/services or otherwise), but cannot pay the entire amount all at once
This does fit within the model of "address as an invoice number", and it's strictly less harmful than other kinds of reuse. Though it would certainly be possible to provide multiple addresses for this purpose (the payment protocol accommodates this, IIRC). There may be reasons why the receiver cannot handle funds split up, and so the willingness to accept multiple payments really should be established up front or no payment should be made.

Quote
Another reason to reuse an address would be to maintain the integrity of a charity
This application was my primary inspiration for the type-2 deterministic wallet proposal, which became BIP32: The FSF started accepting Bitcoin donations and they asked about being able to issue receipts for donation in order to comply with IRS requirements for 501(c)(3) chartable contributions over $250 in value. Doing so required they use one address per contribution but they did not want to generate private keys on an exposed web server which could be hacked.

Quote
If potential donors had to contact, say the American Red Cross every time they wanted to make a donation then the money would not make it to the Red Cross in the event their website gets hacked (and the hacker directs donors to send bitcoin to address that the hackers control).
Using an extended pubkey to receive funds allows the sender to verify the correct receiver statically without reusing addresses. Though this is not yet common.

Quote
I would argue that the benefits gained by using a single address in these scenarios (especially the latter) outweigh the drawbacks.
Considering that the donor's ability to deduct donations is lost completely for donations over $250 if the recipient cannot issue receipts, and in the US an organization accepting quid-pro-quo donations without issuing receipts (which they cannot do if they're reusing addresses) is in violation of the tax code and could be subject to fines, I question your cost/benefit analysis in that context. Smiley
sr. member
Activity: 241
Merit: 250
December 31, 2014, 11:39:43 PM
#17
This is not good for security and it's also bad for not just your privacy but the privacy of everyone you transact with (and, ultimately) for all of Bitcoin. It also creates increased systemic risk for the system as parties that reuse addresses are trivially blockable and if many users are behaving in ways that can be blocked miners may be pressured to utilize their position in ordering transaction to block particular participants in the system, the same also applies to other services such as exchanges: if you behave in a identifiable way otherwise honest participants may be forced to block or seize your funds when they can.

Forcing a single address also generally incompatible with normal business practises. A Bitcoin address is emphatically not an "account"-- it's more like a serial number of a bill, alternatively it would be more accurate to think of it as an invoice number. Normal bitcoin usage requires you to use addresses to distinguish which of multiple payers has paid you.

For these reasons this behaviour is not generally supported by Bitcoin core and I question the level of understanding of the system of anyone who produces software which works in this manner.
While I do agree with the general principle of your statement, I would say that there are legitimate reasons why reusing an address does make sense (at least from a business standpoint). f

The first reason would be when a person/entity is owed a specific amount of bitcoin (measured in bitcoin) (either because they borrowed money, because they were provided goods/services or otherwise), but cannot pay the entire amount all at once (either because of financial difficulties - eg they do not have the money, because of the terms of the arrangements or otherwise *this applies mostly to the former). Since it is not always possible to accurately determine the "sending" address of a transaction (although most of the time it is), it may not be feasible for the person who owes money to get a new address to send to via an automated fashion for each payment and later proving they sent payment via signing a message from the 'sending' address. It may not be economically efficient for an entity to manually provide a new address every time a debtor is able to make a payment. The solution would be to give the debtor a single address to send payment to and the debt would be considered "paid" once 10 BTC worth of inputs are sent to such address (assuming a total amount owed of 10 BTC.

Another reason to reuse an address would be to maintain the integrity of a charity (this is the primary use, but other uses may be applicable as well). As I am sure you are well aware of, websites get hacked and domains get transferred without the consent of the owner of such domain more often then they should be (this may actually be somewhat of a threat to bitcoin). If potential donors had to contact, say the American Red Cross every time they wanted to make a donation then the money would not make it to the Red Cross in the event their website gets hacked (and the hacker directs donors to send bitcoin to address that the hackers control). Using a different address for each transaction in this case would result in donors sending money to the wrong entity. While traditionally, an honest trading partner would send the promised goods/services in the event they direct someone to send funds to an address they do not control, this does not apply with charities because they will use the specific funds received by the donor for the charitable cause. If there is a specific donation address for a charity that is well known then having a charity's website getting hacked would not cause this kind of problem.

While I agree that both of these scenarios would cause a lesser amount of privacy, I would argue that the benefits gained by using a single address in these scenarios (especially the latter) outweigh the drawbacks.
legendary
Activity: 3472
Merit: 4801
December 31, 2014, 10:45:36 PM
#16
- snip -
how about giving me the directions i want.
- snip -

What directions do you want that haven't been given to you yet?  I haven't seen any unanswered questions yet.
hero member
Activity: 602
Merit: 501
December 31, 2014, 10:00:48 PM
#15
Is this in response to my question? And did you read my reasons for wanting it that way?
I did, but it doesn't follow. One does not need to use a constant address to have transparency. (As an aside, your goal has extreme scaling problems if implemented directly; part of the reason to have exchanges in the first place is to support high volume instantaneous transactions.)

it doesnt follow because you do not know what i am trying to do. I (!wont) have scaling issues because the BTC blockchain has already shown it is capable of handling the expected number of transactions per hour. before going after what i am trying to do, maybe help out , and if i shoot myself in the foot, then so be it. But for now, please , since i am trying to get somewhere  how about giving me the directions i want.

staff
Activity: 4284
Merit: 8808
December 31, 2014, 09:42:50 PM
#14
Is this in response to my question? And did you read my reasons for wanting it that way?
I did, but it doesn't follow. One does not need to use a constant address to have transparency. (As an aside, your goal has extreme scaling problems if implemented directly; part of the reason to have exchanges in the first place is to support high volume instantaneous transactions.)
hero member
Activity: 602
Merit: 501
December 31, 2014, 09:36:49 PM
#13
This is not good for security and it's also bad for not just your privacy but the privacy of everyone you transact with (and, ultimately) for all of Bitcoin. It also creates increased systemic risk for the system as parties that reuse addresses are trivially blockable and if many users are behaving in ways that can be blocked miners may be pressured to utilize their position in ordering transaction to block particular participants in the system, the same also applies to other services such as exchanges: if you behave in a identifiable way otherwise honest participants may be forced to block or seize your funds when they can.

Forcing a single address also generally incompatible with normal business practises. A Bitcoin address is emphatically not an "account"-- it's more like a serial number of a bill, alternatively it would be more accurate to think of it as an invoice number. Normal bitcoin usage requires you to use addresses to distinguish which of multiple payers has paid you.

For these reasons this behaviour is not generally supported by Bitcoin core and I question the level of understanding of the system of anyone who produces software which works in this manner.

Is this in response to my question? And did you read my reasons for wanting it that way?


Happy New Year everyone
staff
Activity: 4284
Merit: 8808
December 31, 2014, 09:34:06 PM
#12
This is not good for security and it's also bad for not just your privacy but the privacy of everyone you transact with (and, ultimately) for all of Bitcoin. It also creates increased systemic risk for the system as parties that reuse addresses are trivially blockable and if many users are behaving in ways that can be blocked miners may be pressured to utilize their position in ordering transaction to block particular participants in the system, the same also applies to other services such as exchanges: if you behave in a identifiable way otherwise honest participants may be forced to block or seize your funds when they can.

Forcing a single address also generally incompatible with normal business practises. A Bitcoin address is emphatically not an "account"-- it's more like a serial number of a bill, alternatively it would be more accurate to think of it as an invoice number. Normal bitcoin usage requires you to use addresses to distinguish which of multiple payers has paid you.

For these reasons this behaviour is not generally supported by Bitcoin core and I question the level of understanding of the system of anyone who produces software which works in this manner.
hero member
Activity: 584
Merit: 500
December 31, 2014, 07:59:23 PM
#11
Why would you want to do that?

That seems like a bad idea.

If you really want to do it, then take a look at the code for "coin control" and you can see there where it allows you to choose where the "change" from the transaction goes.  Force that to always use the same address, and force your wallet to always use coin control, and you should have pretty much what you're trying to do.

great idea thanks

simply put i am working on a project that requires a wallet to only have one address, i know this throws pseudo anonimty out the window, but i'll look at that later once i get it working with just one address.

What kind of project would that be...? I can't imagine an instance where I'd want that to be the case

Exchange or online wallets which may try to maintain the balance of the customer on chain. It may also allow customers to get their private key.
sr. member
Activity: 1456
Merit: 326
Eloncoin.org - Mars, here we come!
December 31, 2014, 07:25:48 PM
#10
Why would you want to do that?

That seems like a bad idea.

If you really want to do it, then take a look at the code for "coin control" and you can see there where it allows you to choose where the "change" from the transaction goes.  Force that to always use the same address, and force your wallet to always use coin control, and you should have pretty much what you're trying to do.

great idea thanks

simply put i am working on a project that requires a wallet to only have one address, i know this throws pseudo anonimty out the window, but i'll look at that later once i get it working with just one address.

What kind of project would that be...? I can't imagine an instance where I'd want that to be the case
hero member
Activity: 602
Merit: 501
December 31, 2014, 05:34:04 PM
#9
- snip -
i know this throws pseudo anonimty out the window
- snip -

It throws individual pseudonymity out the window.
It throws the fungibility of the entire system out the window.
It reduces individual security a bit.
It increases misunderstanding of how bitcoin works.
It encourages poor design in the services that others provide to the wallet users.

Overall, its just a bad idea.  Bitcoin wasn't designed to be used that way, it wasn't meant to be used that way, and attempting to use it that way implies a misunderstanding of what a bitcoin address is supposed to be.

considering the sensitive nature of what this will eventually lead to, i am actually on the right track.

first i have to create a test environment for my ideas, and at least get it to work with a single address per wallet, before i try scaling it to multiple addresses in a single wallet

this is far from a production wallet, i have the idea, i have the math, now to get a working ALPHA  

eventually, it will have all that stuff returned to normal, but why try solve 2^5+e before i can get 1+1 right?
legendary
Activity: 3472
Merit: 4801
December 31, 2014, 05:22:01 PM
#8
- snip -
i know this throws pseudo anonimty out the window
- snip -

It throws individual pseudonymity out the window.
It throws the fungibility of the entire system out the window.
It reduces individual security a bit.
It increases misunderstanding of how bitcoin works.
It encourages poor design in the services that others provide to the wallet users.

Overall, its just a bad idea.  Bitcoin wasn't designed to be used that way, it wasn't meant to be used that way, and attempting to use it that way implies a misunderstanding of what a bitcoin address is supposed to be.
hero member
Activity: 602
Merit: 501
December 31, 2014, 05:18:09 PM
#7
found it

Code:
max(GetArg("-keypool", 100), (int64_t) 0);

just in case someone else asks
hero member
Activity: 602
Merit: 501
December 31, 2014, 05:09:27 PM
#6
why you need this feature, if you need just 1 address in 1 wallet then don't create many of them, and whenever you need create a new wallet with new address,you don't need to go through codes for this

at first run, the wallet creates 100 addresses
legendary
Activity: 1008
Merit: 1000
December 31, 2014, 04:56:31 PM
#5
why you need this feature, if you need just 1 address in 1 wallet then don't create many of them, and whenever you need create a new wallet with new address,you don't need to go through codes for this
hero member
Activity: 602
Merit: 501
December 31, 2014, 04:46:34 PM
#4
Why would you want to do that?

That seems like a bad idea.

If you really want to do it, then take a look at the code for "coin control" and you can see there where it allows you to choose where the "change" from the transaction goes.  Force that to always use the same address, and force your wallet to always use coin control, and you should have pretty much what you're trying to do.

great idea thanks

simply put i am working on a project that requires a wallet to only have one address, i know this throws pseudo anonimty out the window, but i'll look at that later once i get it working with just one address.
Pages:
Jump to: