Bitcoin Forum
October 18, 2018, 02:09:43 AM *
News: Make sure you are not using versions of Bitcoin Core other than 0.17.0 [Torrent], 0.16.3, 0.15.2, or 0.14.3. More info.
 
   Home   Help Search Donate Login Register  
Pages: « 1 [2]  All
  Print  
Author Topic: How to generate Bitcoin Address?  (Read 70204 times)
Stevets
Member
**
Offline Offline

Activity: 70
Merit: 10


View Profile
March 09, 2014, 03:37:57 PM
 #21

I'm new to this topic. Can anybody explane me why we need both private and public keys?

Imagine a whole bunch of uniquely numbered vaults with a slot that anybody can drop money in. The vaults are clear so you can see how much money is in them but the only way to get the money out is by knowing the combination to it's lock. The public key is the number of the vault and the private key is the combination for it's lock.

That is a stupid oversimplification but it is the way I think about it.
1539828583
Hero Member
*
Offline Offline

Posts: 1539828583

View Profile Personal Message (Offline)

Ignore
1539828583
Reply with quote  #2

1539828583
Report to moderator
1539828583
Hero Member
*
Offline Offline

Posts: 1539828583

View Profile Personal Message (Offline)

Ignore
1539828583
Reply with quote  #2

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

Posts: 1539828583

View Profile Personal Message (Offline)

Ignore
1539828583
Reply with quote  #2

1539828583
Report to moderator
1539828583
Hero Member
*
Offline Offline

Posts: 1539828583

View Profile Personal Message (Offline)

Ignore
1539828583
Reply with quote  #2

1539828583
Report to moderator
DannyHamilton
Legendary
*
Offline Offline

Activity: 2198
Merit: 1381



View Profile
March 09, 2014, 03:44:24 PM
 #22

The public key is the number of the vault

public key =/= bitcoin address

TookDk
Legendary
*
Offline Offline

Activity: 1456
Merit: 1002


One coin to rule them all


View Profile WWW
March 09, 2014, 04:07:25 PM
 #23

Code:
importprivkey yourPrivateKey

Code:
walletpassphrase \"yourPassPhrase\" ###


I tried out the commands, it works great.
It is true that QT acts a little weird (lock up) while it is scanning the block train, but once it is done, is everything fine and dandy.
Thanks again Danny.

Cryptography is one of the few things you can truly trust.
Stevets
Member
**
Offline Offline

Activity: 70
Merit: 10


View Profile
March 09, 2014, 04:39:11 PM
 #24

The public key is the number of the vault

public key =/= bitcoin address

Right. And the private key is not the combination to the lock on a vault. As I said it is a stupid oversimplification. Since the address is based on the public key, I stand by my "Bitcoin For Dummies in 100 Words Or Less"  Grin
DannyHamilton
Legendary
*
Offline Offline

Activity: 2198
Merit: 1381



View Profile
March 09, 2014, 05:22:28 PM
 #25

The public key is the number of the vault

public key =/= bitcoin address

Right. And the private key is not the combination to the lock on a vault. As I said it is a stupid oversimplification. Since the address is based on the public key, I stand by my "Bitcoin For Dummies in 100 Words Or Less"  Grin

Certainly,

And your analogy is a good one.

I was just suggesting that the number on the vault (the place where you "put the money") is the bitcoin address in your analogy, not the public key.

Of course, I suppose that would make it difficult to indicate where in the analogy the public key actually fits (since it is directly related to both the private key and the bitcoin address).  Perhaps it's an index that allows you to identify which vault number is yours if you know a particular combination.

Stevets
Member
**
Offline Offline

Activity: 70
Merit: 10


View Profile
March 09, 2014, 06:01:24 PM
 #26

Thanks. I am glad though that you pointed out an address is not a public key. I think it is a common confusion and I should have mentioned it.

The main thing I can see wrong with my analogy is that the "vault" does not actually contain money since nobody actually "has" Bitcoins. They just have the secret code needed to send from an entry in the public ledger. The analogy falsely implies that your "vault", or wallet as it might be interpreted, contains coins, when in reality it just contains the private key necessary to update the ledger.

I know you know that because I read a lot of your posts and have learned much from you! I only write this for the benefit of others who might know these things.
DannyHamilton
Legendary
*
Offline Offline

Activity: 2198
Merit: 1381



View Profile
March 09, 2014, 06:34:00 PM
 #27

The main thing I can see wrong with my analogy is that the "vault" does not actually contain money since nobody actually "has" Bitcoins. They just have the secret code needed to send from an entry in the public ledger. The analogy falsely implies that your "vault", or wallet as it might be interpreted, contains coins, when in reality it just contains the private key necessary to update the ledger.

The analogy works a bit better if we put all the vaults in a huge super-secure building.  We can call that building "The blockchain".  Nobody is allowed to remove any money from the building, they can only take money out of vaults for which they have the combination, and put that money into the slots on whichever vaults they'd like.

Now, in this analogy, your vault is not your "wallet". It's just a bitcoin address (see why we need to use the address to number the vault). Your wallet is that leather billfold in your pocket (that's why its called a "wallet").  Notice that all the money is in the vaults (addresses) in the building (blockchain).  All you have in your billfold (wallet) is a list of combinations (private keys) since it's difficult to remember them all.  As long as you have the combinations (private keys) either in your billfold (wallet) or elsewhere, you can use the index in the lobby (public key) to find the vaults (addresses) that you control.  If you only have the index entry (public key) or address (vault) it does you no good, because you can't access the money in the vault (address).

The analogy starts to fall apart a bit when you try to account for the purpose of mining and how the new bitcoins enter the system. And the analogy becomes a mess when you try to use it to explain confirmations, orphaned blocks, and double-spend attempts.

edmund_Melia
Newbie
*
Offline Offline

Activity: 1
Merit: 0


View Profile
May 25, 2014, 02:28:29 PM
 #28

This all seriously doing my head in. I am trying to get active here, figuring it all out...

I have read a lot. Many days now... this whole spending a portion of a wallet and then the balance being moved to a 3rd wallet that is not recoverable with your random word list is rather disconcerting and a serious barrier for use as far as i can see (I am an engineer, and if it is taking me this long to figure out how not to lose my wallet, I have trouble seeing how the general population is going to be able to get up to speed).

Anyway, aside from that point, I am trying to get up to speed on some of the bitcoin uses.

What I would like to to do is:

1. Buy some coin for long term investment, who knows, it just might take off in a big way.
2. Buy some coin and get into high frequency trading.
3. Transfer money between my Irish and Canadian bank accounts without having to pay the middleman (one of it's advertised features).

Now before I put some serious money into to this I need to have a firm grasp of architecture.

I think it would be most useful if someone knowledgeable laid out the bitcoin system in a comprehensive block diagram instead of trying to describe it with analogies.
With associated use case block diagrams.


Some examples of usecase and block diagram components that i think would be important are:

components:

1. bank accounts
2. exchanges
3. online wallets
4. offline wallets
5. bit coin client software (with associated credentials [password/username])
6. private keys, public keys, bitcoin addresses, seeds etc... anything and everything that is possible in terms data that must be retained by a user.

use cases:

1. Transferring BTC between an offline wallet and an exchange.

2. Can one transfer BTC between exchanges? I have had to set up so many account in the last couple days that I have no idea if my account on an exchange (for example kraken) has an associated address or not.

3. Transferring BTC between private wallets (my PC to some guy in China without the use of an exchange as an intermediary).

4. Transferring real money between an exchange and my bank account.

5. Transferring real money between my bank account and my private offline wallet. I don't think that is possible directly, how would I do it indirectly?


I think such visual information would help a lot of people.

Other questions that need to be included:

1. Speed of transfer. In a block diagram include expected potential time delays.
2. Approximate charges for a transfer between blocks (no charge, fixed value, % etc)

For example, I understand that if I remove $$ from an exchange, it could take days to process. Are there other possible delays with other transactions?




For me personally at the moment, I'd like to implement some test cases to get started.
I have Electrum installed and I am trying to learn how to use it. I'm not ready ready to go to my bank and set up a connection yet, that is a whole different can of worms that I haven't figured out yet. All I know so far is I can do it with my bank. I don't know if i physically have to go to the bank? I don't understand this 2 or 3 step verification stuff yet. I don't use paypal, i never will. Am i supposed to use my credit card here what's the deal?? Anyway I'll figure that out on my own.

Until then (that is going to take some time), I'd seriously be GRATEFUL if someone could help me out with test cases.

I have Electrum showing me some address i am supposed to use.
I'd be so happy if someone could kick me a penny or two:

14erp8z6z6hQQQ43T27Tbd9vYjTnWUDpXz
or
1Lf8GGBn8WEh6ijv5sTAJvK1epZGCM88Jy

That would at least get me going and I can test moving BTC around a bit.
(I have gone to those sites that offering free 'microRupees' if I spend a couple days clicking many ads and waiting for many timers, it's a bit ridiculous)


P.S> sorry for the long please do x,y,z post, just trying to add some constructive views here as I have already passed the point here myself that I am sure would be a barrier to entry for the layman. I will keep plugging away at it myself only because this is what I am used to doing all day long anyway. Hopefully I don't have to long to go as I'd rather be spending this time trying my hand at writing a trading algorithm.

Thank you
Ed
DannyHamilton
Legendary
*
Offline Offline

Activity: 2198
Merit: 1381



View Profile
May 27, 2014, 11:37:54 PM
 #29

This all seriously doing my head in. I am trying to get active here, figuring it all out...

It's not complicated or difficult if you use the software the way it is intended.  It's when you start trying to play around with importing and exporting your private keys, that you need to be extra careful.  Otherwise a proper backup strategy, a good passphrase, and some care to keep malware off your computer will go a long way towards allowing you to use bitcoin safely.  If you are especially concerned about malware on your computer then an offline solution such as Electrum offline or Armory offline should give you all the protection you need.

I have read a lot. Many days now...

I'm not sure what you're reading, but the average person can drive a vehicle without understanding the chemistry of gasoline oxidation, or the mechanics of a planetary gear set.  If you want to understand the technical details of how and why Bitcoin works, that's great, but don't get caught up in those details if you're just trying to figure out how to use it.

this whole spending a portion of a wallet and then the balance being moved to a 3rd wallet that is not recoverable with your random word list is rather disconcerting and a serious barrier for use as far as i can see

Huh

I'm not sure what you're talking about.  Recovery from a proper backup should be fine unless you are messing around with exporting and importing private keys.

(I am an engineer, and if it is taking me this long to figure out how not to lose my wallet, I have trouble seeing how the general population is going to be able to get up to speed).

You don't seem to be talking about figuring out how to not lose your wallet.  You seem to be talking about manipulating private keys, and forcing a wallet to use a private key that it didn't generate.

What I would like to to do is:

1. Buy some coin for long term investment, who knows, it just might take off in a big way.
2. Buy some coin and get into high frequency trading.

That's simple enough.  Get a bitcoin wallet.  It will provide you with one or more bitcoin receiving addresses.  Find someone with bitcoins.  Give that someone something they want in exchange for their bitcoins.  Give that someone your bitcoin address so they cen send the bitcoins to your wallet.

(In most cases that "someone" will be an online bitcoin currency exchange such as BitStamp, BTC-E, Coinbase, etc. and the "something they want" will be your local currency)

3. Transfer money between my Irish and Canadian bank accounts without having to pay the middleman (one of it's advertised features).

First, bitcoin is money.  So by sending bitcoin to someone, you are sending them money.

Second, there aren't any banks that I know of yet that accept bitcoin deposits, or provide a way for you to send bitcoins.  As such, there will be many middlemen if you are trying to use bitcoins to transfer Euros from your Irish bank to dollars at your Canadian bank.

Now before I put some serious money into to this I need to have a firm grasp of architecture.

Then you should take some time to read the original whitepaper written by Satoshi Nakamoto.  While bitcoin has advanced a bit since it was written, it is still a very good starting place for understanding the basic architecture.

I think it would be most useful if someone knowledgeable laid out the bitcoin system in a comprehensive block diagram instead of trying to describe it with analogies.
With associated use case block diagrams.


Not the sort of effort I feel like putting in.  How about, you create the block diagram and use cases, and I'll answer any questions you have as you put it together.

Some examples of usecase and block diagram components that i think would be important are:

components:

1. bank accounts
2. exchanges

Please explain how to differentiate between a bank account and an exchange.

3. online wallets
4. offline wallets

There are a variety of each of these, and they are each distinct in their behavior.  You'll probably end up having to diagram out each of them separately since it will be difficult to create a single diagram that handles all the differences between all the variations.

5. bit coin client software (with associated credentials [password/username])

At the moment, in most cases, there isn't really a distinction between a wallet or client software.  Please describe what you mean by "client software" and how that differs from what you mean by "wallet".

6. private keys, public keys, bitcoin addresses, seeds etc... anything and everything that is possible in terms data that must be retained by a user.

The most important thing to retain is the private keys.  Deterministic wallets make this a bit easier by calculating all the private keys from a single seed.  This means that if you use a deterministic wallet, you just need to retain the seed, and the private keys can all be re-generated on demand from that.

use cases:

1. Transferring BTC between an offline wallet and an exchange.

Please explain what you mean by "offline wallet".  Many people use the phrase "offline wallet" to mean any wallet that isn't "web based".  Other's use that phrase specifically to refer to wallets that store your private keys on a computer that is never connected to the internet.  How exactly you transfer the BTC between the wallet and the exchange will depend largely on which wallet you choose to use.

2. Can one transfer BTC between exchanges?

Yes.

I have had to set up so many account in the last couple days that I have no idea if my account on an exchange (for example kraken) has an associated address or not.

I've never used Kraken, but it almost certainly has at least one associated bitcoin address.  Try looking in the "funding" section?

3. Transferring BTC between private wallets (my PC to some guy in China without the use of an exchange as an intermediary).

Again, the specifics of how you will do this will depend on the wallet you choose to use.  In general, you'll choose the "Sending" option in your wallet.  You'll enter the bitcoin address provided by your receiver (typically a "copy&paste" or scanning a QR-Code). Then you'll enter the amount of bitcoins you wish to send.  Finally you'll click the "send" button.  This process is the same regardless of whether you are sending to an exchange, an individual, or another wallet that you own.

4. Transferring real money between an exchange and my bank account.

Bitcoin is real money.  I assume you mean transferring your local currency between an exchange and your bank account?  Each exchange will have their own rules on you you fund your account at the exchange, and how you receive payments from the exchange.  This has absolutely nothing to do with the technical details of bitcoin.  It is entirely a business decision by the company operating the exchange.

5. Transferring real money between my bank account and my private offline wallet. I don't think that is possible directly, how would I do it indirectly?

Bitcoin is real money.  Unfortunately, there aren't any banks that I'm aware of that except deposits in both local currency and bitcoin.  As such, the process would be to exchange bitcoins for local currency and then transfer the local currency to the bank.  The reverse is also true.  You would transfer your local currency from your bank to somewhere that you could exchange it for bitcoins.

I think such visual information would help a lot of people.

As I said, if you want to make an attempt at creating the visual information, I'd be happy to answer questions and help you understand how the processes work.

Other questions that need to be included:

1. Speed of transfer. In a block diagram include expected potential time delays.

The bitcoin transaction itself is generally received within a second or two as long as both you sender and receiver are connected to peers on the internet.  Confirmations can take longer.  Some businesses choose not to update your balance at their business until after some number of confirmations.  The number of confirmations necessary are entirely up to the business to decide for themselves.

Bank transfer transactions of local currency will likely have their own delays, but this is entirely outside the scope of bitcoin.

2. Approximate charges for a transfer between blocks (no charge, fixed value, % etc)

Transfer between blocks?  I'm guessing you're trying to ask the "approximate charges for getting a transaction confirmed in a reasonable amount of time?"  If so, then 0.0001 BTC per kilobyte is a good approximation.  How many kilobytes it takes to create your transaction will depend on how you received your bitcoins in the first place.

For example, I understand that if I remove $$ from an exchange, it could take days to process. Are there other possible delays with other transactions?

You're talking about $$, not BTC.  You'll have to ask your bank about the delays that occur when moving $$.  Also individual businesses will have their own rules about how quickly they choose to process any $$ transfers to or from them.

For me personally at the moment, I'd like to implement some test cases to get started.
I have Electrum installed and I am trying to learn how to use it.

Sounds like a good idea.  Perhaps check localbitcoins.com and see if you can find someone near you that would be willing to send you some in exchange for some local currency?

I'm not ready ready to go to my bank and set up a connection yet, that is a whole different can of worms that I haven't figured out yet. All I know so far is I can do it with my bank. I don't know if i physically have to go to the bank?

That will depend on the bank, and on the funding method that is required.

I don't use paypal, i never will.

Good choice.  PayPal is nothing but trouble.

Am i supposed to use my credit card here what's the deal??

There aren't many bitcoin exchanges that will accept credit cards, and those that do will have significant delays and very high fees to offset the huge risk they are taking by accepting a reversible form of payment for an irreversible transaction.

Anyway I'll figure that out on my own.

Ok.

Until then (that is going to take some time), I'd seriously be GRATEFUL if someone could help me out with test cases.

What sort of "test cases"?

I have Electrum showing me some address i am supposed to use.
I'd be so happy if someone could kick me a penny or two:
14erp8z6z6hQQQ43T27Tbd9vYjTnWUDpXz
or
1Lf8GGBn8WEh6ijv5sTAJvK1epZGCM88Jy

Sure.  Mail me a penny, and I'll send you a penny's worth of bitcoins.  (Begging isn't allowed on this forum, so I assume you are offering to pay for the bitcoins?)

That would at least get me going and I can test moving BTC around a bit.

You'll want more than a penny to test moving BTC around a bit, since the typical transaction fee will be approximately 0.005 USD.

(I have gone to those sites that offering free 'microRupees' if I spend a couple days clicking many ads and waiting for many timers, it's a bit ridiculous)

Don't do it.  It will create a situation where you wallet has a huge number of unspendable outputs.  It will result in huge fees when you try to send a transaction.  Stay away from those sites, they are just taking advantage of your lack of knowledge to profit off of you.

P.S> sorry for the long please do x,y,z post, just trying to add some constructive views here as I have already passed the point here myself that I am sure would be a barrier to entry for the layman. I will keep plugging away at it myself only because this is what I am used to doing all day long anyway. Hopefully I don't have to long to go as I'd rather be spending this time trying my hand at writing a trading algorithm.

I don't mind, but it does result in quite a long response, and makes general conversation more difficult.  You might find it easier to keep notes to yourself about things you want to understand, and then just ask about them one at a time.  That way you may find that as you learn a bit, some of your other questions become meaningless or obvious.  It will save you some typing, some reading, and will probably reduce confusion.

Pages: « 1 [2]  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!