Pages:
Author

Topic: All of my bitcoin questions gathered. I need some help here... (Read 488 times)

legendary
Activity: 1624
Merit: 2481
What will happen if someone sends me bitcoins to my address? Will I have to make any confirmations? What if I never open the electrum wallet? The transaction will still be written to the blockchain and I will get my bitcoins right?

When someone sends you bitcoin, he assignes them to your public key.
This is being recorded on the blockchain.

Whenever you want to spend them, you can use your corresponding private key to sign a transaction.

So.. no, you don't have to actively do anything. Just keep your private key (or master seed / mnemonic code) safe, and you are good to go.
legendary
Activity: 2758
Merit: 6830
What will happen if someone sends me bitcoins to my address? Will I have to make any confirmations? What if I never open the electrum wallet? The transaction will still be written to the blockchain and I will get my bitcoins right?

I'm just asking, because of some misunderstandings with private keys.
Yes. Basically, your wallet is just a client that reads the blockchain and make the transactions + sign them + broadcast them for you, all in a user-friendly interface. If in the blockchain it says that your address X has an input of 1 BTC (received 1 BTC), you have it. Whenever you open it with any wallet you will see it. If you have the private-key, you can spend it.

You don't need to have the wallet open when receiving the transaction.
You don't need to open it to "complete the receiving transaction".

That's why cold storage wallets work. You don't have a internet connection, but can still make the transaction outside of it (by grabbing the inputs, etc...), send to the device (through USB, scanning a QR, etc...), sign with the private-key, send back to an online device and broadcast it.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
What will happen if someone sends me bitcoins to my address? Will I have to make any confirmations? What if I never open the electrum wallet? The transaction will still be written to the blockchain and I will get my bitcoins right?

I'm just asking, because of some misunderstandings with private keys.
copper member
Activity: 2856
Merit: 3071
https://bit.ly/387FXHi lightning theory
Quote
it also helps keep the network a tiny bit more decentralized as your node won't have a single fixed list to connect to, instead it will choose a random one and connects to.

Yes, but it's not fully decentralized, since there are prepared nodes written in bitcoin core. Right?

Let me get this straight. Node is a list of IPs that have installed bitcoin core too?

Decentralised is what it is. Distributed isn't....

Nothing on the Internet can really fully be distributed anyway since it'll have to pass through an isp or something at current.

Fully p2p solutions may come and turn the network into a distributed architecture but for now we're stuck with being decentralised and reliant on IPs and DNS server assignments from icann.

A node is something that propagates the network by storing both the mempool and other nodes ip addresses.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
Yes, but it's not fully decentralized, since there are prepared nodes written in bitcoin core. Right?

No.
There is a list for your node to initially find other nodes.

You could also just enter your own IP address to connect to. This doesn't change anything regarding the decentralization.



Let me get this straight. Node is a list of IPs that have installed bitcoin core too?

No.
Look at my previous answer, i explained what a node is two times already.

I searched for it a bit more in their github and now it makes sense:
https://github.com/bitcoin/bitcoin/blob/master/contrib/seeds/nodes_main.txt

So in the case that all these nodes do not work (which is something impossible) they will simply update the software and write other ips right?
legendary
Activity: 1624
Merit: 2481
Yes, but it's not fully decentralized, since there are prepared nodes written in bitcoin core. Right?

No.
There is a list for your node to initially find other nodes.

You could also just enter your own IP address to connect to. This doesn't change anything regarding the decentralization.



Let me get this straight. Node is a list of IPs that have installed bitcoin core too?

No.
Look at my previous answer, i explained what a node is two times already.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
Quote
it also helps keep the network a tiny bit more decentralized as your node won't have a single fixed list to connect to, instead it will choose a random one and connects to.

Yes, but it's not fully decentralized, since there are prepared nodes written in bitcoin core. Right?

Let me get this straight. Node is a list of IPs that have installed bitcoin core too?
legendary
Activity: 3472
Merit: 10611
Aaahh.. Now I got it! But when does this "Searching for more IPs" journey stops? I mean, it can't search for new IPs forever, right?

you don't exactly "search for IPs" constantly. two nodes that communicate with each other, share the list of IP addresses that they know of. that way they can stay up to date. for example a node that was on the network yesterday may no longer be alive today or it may have changed its IP address. so your node needs to update its list regularly.
it also helps keep the network a tiny bit more decentralized as your node won't have a single fixed list to connect to, instead it will choose a random one and connects to.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
The process i have mentioned above. It roughly follows these steps (simplified):
- Resolve DNS names in the hardcoded list to IP addresses
- Query those IP addresses (nodes)
- Get more IP addresses from nodes
- Connect to these nodes
- Save IP's of active nodes into a list so you don't have to follow these steps again the next time you start core. The next time you directly connect to the IP's in the list.

Aaahh.. Now I got it! But when does this "Searching for more IPs" journey stops? I mean, it can't search for new IPs forever, right?
legendary
Activity: 1624
Merit: 2481
A list of DNS names from nodes in the source? What source? The bitcoin software's source code?

Yes.


What is initial bootstrap exactly?

The process i have mentioned above. It roughly follows these steps (simplified):
- Resolve DNS names in the hardcoded list to IP addresses
- Query those IP addresses (nodes)
- Get more IP addresses from nodes
- Connect to these nodes
- Save IP's of active nodes into a list so you don't have to follow these steps again the next time you start core. The next time you directly connect to the IP's in the list.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
There is a list containing DNS names from nodes in the source for the initial bootstrap.

A list of DNS names from nodes in the source? What source? The bitcoin software's source code?

What is initial bootstrap exactly?
legendary
Activity: 1624
Merit: 2481
So yeah, that binary is a BIG, BIG number. Are we trying to find a binary that is below the target?

Yes.

But how does random really work? I mean when I download and install the bitcoin core what exactly will my computer search? How will it search other computers that have downloaded the blockchain? This is what I'm not understanding.

There is a list containing DNS names from nodes in the source for the initial bootstrap.
Once the node is connected to the network it will receive message from the nodes containing ip addresses of other nodes. All of these IP's will be saved into a list to connect to then the next time you start up core (without needing to use the hardcoded DNS list).
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
Quote
In computer systems, everything is a number. It all depends on the representation of binary data.
Just think about it like that: The hash is being translated into a bit string and then interpreted as a number.

Oh, I had forgot that. A hexademical sha256 of "hello, world!" is: 68e656b251e67e8358bef8483ab0d51c6619f3e7a1a9f0e75838d41ff368f728

Do we care about its binary? Which is that:
Code:
110100011100110010101101011001001010001111001100111111010000011010110001011111011111000010010000011101010110000110101010001110001100110000110011111001111100111101000011010100111110000111001110101100000111000110101000001111111110011011010001111011100101000

So yeah, that binary is a BIG, BIG number. Are we trying to find a binary that is below the target?





---------------------------------------------------------------------------------------------------

But how does random really work? I mean when I download and install the bitcoin core what exactly will my computer search? How will it search other computers that have downloaded the blockchain? This is what I'm not understanding.
legendary
Activity: 1624
Merit: 2481
Why every 2016 blocks? Does it have to do with maths?

That's just a fixed number.
2016 blocks have been chosen because it seemed to be a good number

2016 blocks with 10 minutes per block means 2 weeks. So there is an adjustment every 2 weeks (roughly).



SHA256 of the string "a" is: ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb

^That output is not a number. You're saying that hash is just a number that is the subject of a compression function. Yes, target seems to be a number since you say "they want the hash to fall below the target". But... Why do you say that hash is a number?  Undecided

In computer systems, everything is a number. It all depends on the representation of binary data.
Just think about it like that: The hash is being translated into a bit string and then interpreted as a number.



Quote
If yyour node connects to another, then that node will also send your IP address to other nodes if you allow incoming connections and once you're fully synced, you'll get connections from other nodes.
So having bitcoin core open means that I'm having a port open too? I thought that IPs are something hidden in the bitcoin world. I thought everything is anonymous.

1) Other nodes can receive block files from you only if you allow incoming connections in the settings AND have the corresponding port open.
2) IP's are NEVER hidden when you communicate via the internet. IP's are needed to communicate. This is NOT sensitive information. You are most likely sitting behind a NAT of your ISP anyways. Whenever you relay blocks (automatically) or send a transaction, your IP is visible. This can not be prevented.
You can hide your IP by communicating via the TOR network tho.



Okay so let's assume that I've downloaded the blockchain and I'm connected to the network. So, will I just share my blockchain file to others? Doesn't this mean that my internet will go slower?

Same answer as above applies here:
Other nodes can receive block files from you only if you allow incoming connections in the settings AND have the corresponding port open.

If you decide to do so, yes your internet connection will be slightly more occupied.
copper member
Activity: 2856
Merit: 3071
https://bit.ly/387FXHi lightning theory
Why every 2016 blocks? Does it have to do with maths?
Because it's meant to be an average of 144 blocks a day for 14 days... I think it's a fairly reasonable sample size.

Knowing from programming, hash functions produce a fixed-length string.

SHA256 of the string "a" is: ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb

^That output is not a number. You're saying that hash is just a number that is the subject of a compression function. Yes, target seems to be a number since you say "they want the hash to fall below the target". But... Why do you say that hash is a number?  Undecided

But it is a number? It's not denary but it's a number? Which sorts of programming have you done in the past? Have you done much with statically typed objects (c#/java/c++/c/assembly)?

Do you know binary? Is 0110 a number, can we agree it's 6?
Going back to binary, we can take the last four digits of your hex string above that forms the hash 48bb
4 = 4 (and since it's a base 16 number, we multiply it by 16^4)
8 = 8 (and since it's a base 16 number, we multiply it by 16^3)
b = 11 (1101 and since it's a base 16 number, we mulitply it by 16^2)
b = 11 (and we times it by 16^0)
I get 48bb to be 18619 (quickly input so may be wrong).

Before saying this is a stupid way to represent numbers or anything, take yourself back to any lessons you may have had discussing binary and look up what a 'nibble' is in binary... Hexadecimal is just a way to represent 4 binary digits (a nibble).

Wait... So nodes are randomly choosing other nodes? How's a node looks like? Is it a string?

Nodes are randomly selected, but if you think about the rate of computation in a machine and that you're just sending a tiny amount of data or even just pinging the node to check it has that port open (I think covering this is a bit out of scope here though).

A node, in any case on the internet is represented by it's SOCKET... In bitcoin's case, it's represented by the node's IP address plus the port.

So having bitcoin core open means that I'm having a port open too? I thought that IPs are something hidden in the bitcoin world. I thought everything is anonymous.

The anonymity is a misconception. Hosting a node can actually be anonymous if it's routed through TOR (The Onion Router), however, hosting it over the light web doesn't make it anonymous at all.

Bitcoin itself is pseudoanonymous for the time being (however this will likely be subject to change in the coming years)... You can currently see where funds have come from and are going to. You may want to look into Dash, Monero or Grin to see how they achieve transaction anonymity.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
For @jackg:

Quote
A new block ins't exactly opened it's just mined. Difficulty refreshes every 2 weeks, meaning, if for a substantial amount of time in the 2016 blocks being mined that difficulty is much lower, then after the refresh it'll become easier to mine the blocks too but the refresh will take longer since they're targeting a number harder to computationally access.

Why every 2016 blocks? Does it have to do with maths?

Quote
They want the has to fall below the target given to them. A hash is just a number that is the subject of a compression function... It takes the 1mb block and reduces it down to 256 bits and that is what is compared with the actual block.

Knowing from programming, hash functions produce a fixed-length string.

SHA256 of the string "a" is: ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb

^That output is not a number. You're saying that hash is just a number that is the subject of a compression function. Yes, target seems to be a number since you say "they want the hash to fall below the target". But... Why do you say that hash is a number?  Undecided

Quote
This is done with initial peer discovery in nodes. Generally speaking the node comes with it's own information on finding other nodes and can then find new nodes from that.

Wait... So nodes are randomly choosing other nodes? How's a node looks like? Is it a string?

Quote
If yyour node connects to another, then that node will also send your IP address to other nodes if you allow incoming connections and once you're fully synced, you'll get connections from other nodes.
So having bitcoin core open means that I'm having a port open too? I thought that IPs are something hidden in the bitcoin world. I thought everything is anonymous.

----------------
For @bob123:

Quote
Nodes are computer who have the whole blockchain stored and are connected to the bitcoin network.
If you download bitcoin core, keep the whole blockchain synced with a connection to the network, you are a full (because you have the whole blockchain stored) node.

So you are downloading all the blocks from other computer storing the whole blockchain who are connected to the bitcoin network and allow incoming connections.

Okay so let's assume that I've downloaded the blockchain and I'm connected to the network. So, will I just share my blockchain file to others? Doesn't this mean that my internet will go slower?
legendary
Activity: 1624
Merit: 2481
Quote
From others (full) nodes.

Now I'm feeling a bit redicule... But the word node... I cannot translate it on my language.
So I cannot understand your quoted message at all. Are nodes verified blockchain files?  Huh Undecided

Nodes are computer who have the whole blockchain stored and are connected to the bitcoin network.
If you download bitcoin core, keep the whole blockchain synced with a connection to the network, you are a full (because you have the whole blockchain stored) node.

So you are downloading all the blocks from other computer storing the whole blockchain who are connected to the bitcoin network and allow incoming connections.
copper member
Activity: 2856
Merit: 3071
https://bit.ly/387FXHi lightning theory
Let's start answering you. About question 2, do you mean that if the computational power dedicated to the chain is low, the difficulty of opening a new block will also be low?
A new block ins't exactly opened it's just mined. Difficulty refreshes every 2 weeks, meaning, if for a substantial amount of time in the 2016 blocks being mined that difficulty is much lower, then after the refresh it'll become easier to mine the blocks too but the refresh will take longer since they're targeting a number harder to computationally access.

About question 3, you're writing:
Quote
They're trying to get a hash of the block to fall below a certain amount

Miners are trying to get a hash (Okay until here) to fall below a certain amount? Certain amount of what? Target? Difficulty? I'm so confused...
They want the has to fall below the target given to them. A hash is just a number that is the subject of a compression function... It takes the 1mb block and reduces it down to 256 bits and that is what is compared with the actual block.

Quote
This was originally done by chainging the nonce in the coinbase (which is an up to 20 byte number that is stroable in any transaction before it's signed)
Didn't get that...

I have another question by the way. When we download and install the bitcoin core, it downloads the blockchain right? Where exactly does it download it from since there is no bitcoin authority/database?

This is done with initial peer discovery in nodes. Generally speaking the node comes with it's own information on finding other nodes and can then find new nodes from that.

If yyour node connects to another, then that node will also send your IP address to other nodes if you allow incoming connections and once you're fully synced, you'll get connections from other nodes.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
Quote
Miners build their block. Then afterwards they generate the hash.
If the hash does not meet the requirements (being below the target), they change the nonce which will result in a completely different hash.
They continue to do so until all possible nonce's have been used. Then they either change different fields in the header or chose to include other transactions and start again.

While a miner tries to build the block, new transactions happen. They are added to the block as a reward (their fee) right?

So, if I understood correctly, nonce is a number? 20-byte number? This is 120bit number (1 byte = 8 bits). A 120bit number has no end, I mean its end is an amazingly big number. Do they try to match every single intergal number of all nonces numbers?

Also question about miners:

The miner that will find the solution to open the last block, will get the 12.5 + fee bitcoins right?
The thing i don't get is that mining just about transactions gives you bitcoins, but not that much. If I want to mine to validate a transaction, I will only get the transaction's fee as a reward. Does this mean that I will "steal" some satoshis from the block reward? I hope you understood me.

This is what @jackg said:
Quote
Yes? Is this a question or just a statement? They get both of these - fees are just an additive difference between transactions so a standard block may see 100.1BTC move and 100BTC be assigned, the other 0.1BTC gets added to the block reward.

---------------------------------------------------------------------

Quote
From others (full) nodes.

Now I'm feeling a bit redicule... But the word node... I cannot translate it on my language.
So I cannot understand your quoted message at all. Are nodes verified blockchain files?  Huh Undecided
legendary
Activity: 1624
Merit: 2481
About question 3, you're writing:
Quote
They're trying to get a hash of the block to fall below a certain amount

Miners are trying to get a hash (Okay until here) to fall below a certain amount? Certain amount of what? Target? Difficulty? I'm so confused...

The hash has to be below the target (which is directly related to the difficulty).
Both mean the same thing but are represented in a different way.

The highest possible target corresponds to the lowest difficulty and vice versa.



Quote
this was originally done by chainging the nonce in the coinbase (which is an up to 20 byte number that is stroable in any transaction before it's signed)
Didn't get that...

Miners build their block. Then afterwards they generate the hash.
If the hash does not meet the requirements (being below the target), they change the nonce which will result in a completely different hash.
They continue to do so until all possible nonce's have been used. Then they either change different fields in the header or chose to include other transactions and start again.



I have another question by the way. When we download and install the bitcoin core, it downloads the blockchain right? Where exactly does it download it from since there is no bitcoin authority/database?

From others (full) nodes.
Pages:
Jump to: