Author

Topic: Questions about The White Papers (Read 944 times)

newbie
Activity: 32
Merit: 0
February 05, 2013, 04:25:15 PM
#13
So, referring to this link I reference : https://en.bitcoin.it/wiki/Transactions

I just want to know how this will look with a coinbase transaction. I understand the basis of the reward system, the miners and the solving of the block's hash through SHA-256 and all continuous transaction follow but since there is no input in coinbase transaction is there still something to be represented for the input.

Referring to the link above, will there be nothing following the previous tx, index and scriptsig?

This is given as the input for a tx:

Input:
Previous tx: f5d8ee39a430901c91a5917b9f2dc19d6d1a0e9cea205b009ca73dd04470b9a6
Index: 0
scriptSig: 304502206e21798a42fae0e854281abd38bacd1aeed3ee3738d9e1446618c4571d10
90db022100e2ac980643b0b82c0e88ffdfec6b64e3e6ba35e7ba5fdd7d5d6cc8d25c6b241501

Will the coinbase transaction look like this:

Input:
Previous tx:
Index: 0
scriptSig:

Or will something be represented in each section including previous tx, Index and scriptSig?If so, what?
 
It not, what? I just need something very explicit to know what the eventual reference will be. Basically, since BTC are are a series of signatures there must be a first reference point for the signature. Is it just some code originating from the block of the coinbase transaction? If it is, what is that reference? and when we trace a bitcoin back to its creation (or prior to the original possessors signature) what exactly will it look like?
donator
Activity: 1218
Merit: 1079
Gerald Davis
February 04, 2013, 04:23:37 PM
#12
Others have helped at a detailed level but maybe taking a step back and looking at the high level will make it easier to understand.

There are no "coins" in Bitcoin.  I know that seems highly dubious but it is true.  Bitcoin is a distributed ledger.  The blockchain is the consensus history of transactions.  Each transaction (except coinbase) is signed by the sender which is a transfer of ownership to the receiver.

Regarding coinbase transactions.  Yes "coins" are mined from absolutely nothing.  The rest of the network accepts this "minting" as long as it follows the rules of the protocol (namely the amount of the minting follows the predefined block subsidy amount).

If you think about it this is obviously necessary.  "normal" tx involve transfering coins from one entity to another.  However where do the coins come from.  Miners are "given" them by the network as a form of subsidy and initial distribution.  The network is just a collection of nodes.  It doesn't have a bitcoin wallet with all the undistributed coins and signs each miner's paychecks.  No the miner just mints new coins from absolutely nothing.   This is allowed in the coinbase transaction of each block (and only there).

legendary
Activity: 3472
Merit: 4801
February 04, 2013, 04:20:01 PM
#11
. . . Is it 1)somehow different from transferring from one address to another, 2) the same with a predetermined program to figure out any random input or 3) somehow deduced from the earning miners wallet address?

It is different in that it has no inputs and is the only transaction in a block that the protocol allows to exist without inputs.

A transaction is generally made up of the following parts:

  • Version number
  • Count of the number of inputs
  • List of transaction inputs
  • Count of the number of inputs
  • List of transaction outputs
  • lock_time

The list of transaction inputs contains a signature for each input proving ownership of the previous output being used as an input.

Inputs are simply previous transactions that are being used to accumulate the value required for the transaction. In all but the coinbase transaction the total value of all inputs must be at least as much as the total value of all outputs.  In the coinbase transaction the total of the block subsidy plus the transaction fees must be at least as much as the total value of all outputs.

Each output in the list of outputs has a value associated with it.  When these outputs are later used as inputs, these values are summed up to determine the total value on the input side of the transaction.

The coinbase transaction is a special transaction that has no inputs. The protocol only allows one of these transactions per block. Typically the coinbase transaction will be the first transaction in the block, and it will always be the only transaction in the block that has zero for the count of inputs, and no inputs in the list.  There is no signature, because there are no inputs to sign.  The fact that the block exists in the blockchain with a valid hash and that the total of the output values does not exceed the sum of the allowed block subsidy and all transaction fees is what proves the existence of the value indicated in the outputs of the the coinbase transaction.
legendary
Activity: 1708
Merit: 1010
February 04, 2013, 04:00:10 PM
#10
So, I miner mines a block. That block, ones solved, rewards say, 10 Bitcoins. How is the numerical value of the input of the coinbase transaction figured it the original transfer has no address? Where do these bitcoins come from, what is the original signature considered? This is really the basis of the last thing I'm stuck on.

There are no Bitcoins, a miner mines and a transaction occurs from the point of nothing(no Bitcoins, no address, no public or private key) and somehow this nothing makes an input value without that nothing's output value. How does this Bitcoin come from nothing? I just want to know how the original input for the first transaction from mining to "creation" is created. Is it 1)somehow different from transferring from one address to another, 2) the same with a predetermined program to figure out any random input or 3) somehow deduced from the earning miners wallet address?

It's #1.  The block's coinbase award transaction is different.  Each block must contain one, and only one, coinbase award; and that award must match the coinbase algorithem or that block is rejected as invalid.  There really isn't anything more to understand about it, other than knowing that is both how the currency is created as well as how it's distributed; and that it creates an economic incentive for people to contribute to the cryptographic security of the blockchain.  If a valid address is not provided by the miner for which the coinbase can be assigned, the block is invalid, and thus would be ignored by the network.
legendary
Activity: 1708
Merit: 1010
February 04, 2013, 03:53:35 PM
#9

Actually, one more thing. Since a Bitcoin can be divided up into 100 million parts(satoshis) if I have, say, 1 bitcoin with a specific electronic signature, what happens when I spend 1/2 of the Bitcoin? Does the the electronic signature of my retained 1/2 Bitcoin change to verify it's of lesser value? Or does each of the satoshis have a represented block? And if I have 1/2 Bitcoin in my wallet and get another 1/2 will this combine to be one signature? So far from learning about it I have the impression that this system is complete genius.

I think the part that you are having trouble understanding is that the bitcoins don't actually exist, in the sense that there is no object (digital or otherwise) that we can point to and say, "that's a bitcoin".  The bitcoins are entirely abstract concepts that are represented by the chain of custody that the blockchain records.  Said another way, there are only transaction records, like a massive ledger.  And the coins are defined by a 64 bit integer variable.  If you were to spend half of your coinbase (or any other amount from a single address and single input transaction) then you are simply creating a new transaction that first proves to the entire network that you have the right to spend these coins by cryptographicly referring back to the coinbase award (or other transaction that granted your address these coins) and then referring to more than one address to send those coins to, and for what amount to each.  So while you are sending a specific amount of bitcoins to your seller's address, your client is automaticly creating a new address for yourself, in order to send itself the balance of change.
newbie
Activity: 32
Merit: 0
February 04, 2013, 03:35:17 PM
#8
So, I miner mines a block. That block, ones solved, rewards say, 10 Bitcoins. How is the numerical value of the input of the coinbase transaction figured it the original transfer has no address? Where do these bitcoins come from, what is the original signature considered? This is really the basis of the last thing I'm stuck on.

There are no Bitcoins, a miner mines and a transaction occurs from the point of nothing(no Bitcoins, no address, no public or private key) and somehow this nothing makes an input value without that nothing's output value. How does this Bitcoin come from nothing? I just want to know how the original input for the first transaction from mining to "creation" is created. Is it 1)somehow different from transferring from one address to another, 2) the same with a predetermined program to figure out any random input or 3) somehow deduced from the earning miners wallet address?
vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
February 04, 2013, 01:44:09 AM
#7
Great replies, I'm starting to understand. That analogy above helped a lot. One of the final things I'm trying to understand is the coinbase transaction (What I referred to above as something like the new bitcoin generated from mining). The coinbase transaction, being as I interpret it is the original moment of bitcoin "accumulation" by the mining address. This doesn't have the input from the preceding electronic signature because there was no previous owner, just the "output" to the mining address that "earned" the new Bitcoin. When the first owner of the new Bitcoin transfers it to another address, how does the input value get determined(When Bitcoin goes from non-existent to new address, how is sign. defined without "nothing" and new address matching public keys)? Does maybe the origination point have a special first public key? I looked at The White Paper but Satoshi delved through everything really quickly and went over my head a bit.

The block chain keeps track of "transactions" rather than "coins".  Transactions have "outputs", and outputs have definite amounts.

When a miner creates a coinbase transaction, his coinbase has one or more outputs and amounts.  Anything is acceptable as long as the total amounts don't exceed the reward amount (plus any fees earned).  So, his coinbase could give the entire 25BTC reward to a single address, or could split it among ten addresses in ten different amounts as long as the total doesn't exceed 25BTC.

A transaction output can only be spent in its entirety.  When an output is spent, if it's "too much", the new spend must contain another output that returns the change back to the sender.  If it's "not enough", the transaction can spend multiple outputs, effectively joining them together.


Actually, one more thing. Since a Bitcoin can be divided up into 100 million parts(satoshis) if I have, say, 1 bitcoin with a specific electronic signature, what happens when I spend 1/2 of the Bitcoin? Does the the electronic signature of my retained 1/2 Bitcoin change to verify it's of lesser value? Or does each of the satoshis have a represented block? And if I have 1/2 Bitcoin in my wallet and get another 1/2 will this combine to be one signature? So far from learning about it I have the impression that this system is complete genius.

The amount itself doesn't matter, a transaction output for 0.00000001 bitcoin looks much identical for one for 10000 bitcoins, the only difference being the amount field.

If you have 0.5 BTC in your wallet (assuming that's one transaction output) and you receive another 0.5 BTC, you will have (at least) two transaction outputs available for spending.

If you spend any amount up to 0.5 BTC, your wallet will consume one of those, sending you back any change.

If you spend any amount above 0.5 BTC and up to 1 BTC, your wallet will consume both of those, sending you back any change.
newbie
Activity: 32
Merit: 0
February 04, 2013, 01:34:12 AM
#6
Great replies, I'm starting to understand. That analogy above helped a lot. One of the final things I'm trying to understand is the coinbase transaction (What I referred to above as something like the new bitcoin generated from mining). The coinbase transaction, being as I interpret it is the original moment of bitcoin "accumulation" by the mining address. This doesn't have the input from the preceding electronic signature because there was no previous owner, just the "output" to the mining address that "earned" the new Bitcoin. When the first owner of the new Bitcoin transfers it to another address, how does the input value get determined(When Bitcoin goes from non-existent to new address, how is sign. defined without "nothing" and new address matching public keys)? Does maybe the origination point have a special first public key? I looked at The White Paper but Satoshi delved through everything really quickly and went over my head a bit.

Actually, one more thing. Since a Bitcoin can be divided up into 100 million parts(satoshis) if I have, say, 1 bitcoin with a specific electronic signature, what happens when I spend 1/2 of the Bitcoin? Does the the electronic signature of my retained 1/2 Bitcoin change to verify it's of lesser value? Or does each of the satoshis have a represented block? And if I have 1/2 Bitcoin in my wallet and get another 1/2 will this combine to be one signature? So far from learning about it I have the impression that this system is complete genius.
legendary
Activity: 4542
Merit: 3393
Vile Vixen and Miss Bitcointalk 2021-2023
February 03, 2013, 11:45:11 PM
#5
I don't understand what digital code represents a Bitcoin. I do no understand this statement from The White Papers

"Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner
and adding these to the end of the coin."

Does that mean an infinite amount of numbers are added to the end of the coin? I doubt this to be true but why isn't it? Again, what is then the original number that the "hash" is added onto?
"We define an electronic coin as a chain of digital signatures." There is a helpful diagram in the paper explaining the concept. If Alice has a coin and wants to give it to Bob, she takes the transaction in which she received the coin, adds Bob's public key to it, and digitally signs it to create a new transaction. Then if Bob wants to give it to Charlie, he takes this new transaction and adds Charlie's public key to it and signs it. And so on. That's what it means to create a chain of digital signatures. Anyone can prove that Charlie is now the legitimate owner of the coin because they can verify (with Bob's public key) that Bob signed it over to Charlie. And we know that Bob was the legitimate owner before Charlie because Alice signed it over to Bob. (How the very first owner got the coin is addressed later in the paper.)

What's the algorithm the hash uses and how was this determined?
SHA-256. All hashing in Bitcoin is SHA-256 (except for addresses, which use RIPEMD-160 as well).

What about the timestamp server? The timestamp server takes a hash of a block(or group of transactions) and publishes it but how can it be deduced from the hash what block it refers to?
Because the chances of two valid blocks having the same hash are so astronomical that anyone who suggests it's anything less than impossible will be laughed at. If you have a hash, and you have a block with the same hash, you can bet your life that that is the block the hash refers to.

Finally, does a block contain only one transaction?
No. You were right the first time:
The timestamp server takes a hash of a block(or group of transactions)
newbie
Activity: 20
Merit: 0
February 03, 2013, 11:29:46 PM
#4
Does that mean an infinite amount of numbers are added to the end of the coin? I doubt this to be true but why isn't it?

Coins are not directly represented in the system - instead what is stored is the chain of transactions beginning from newly mined coins up until the present, so yes in a sense this transaction record (blockchain) goes on indefinitely, and from this your wallet balance is determined. Currently the blockchain is about 4.5 GB and growing. You can see a lot of statistics at blockchain.info.

legendary
Activity: 2506
Merit: 1010
February 03, 2013, 11:09:13 PM
#3
What's the algorithm the hash uses and how was this determined?

A bitcoin address is a derivative of a hash of a private key.

Quote
A Bitcoin address is a 160-bit hash of the public portion of a public/private ECDSA keypair.
- http://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses

 - http://en.bitcoin.it/wiki/Private_key
 - http://en.bitcoin.it/wiki/Address

A transaction requires cryptographic signature(s) made using the private key(s) of the input addresses:

 - http://en.bitcoin.it/wiki/Transaction#Principle_example_of_a_Bitcoin_transaction_with_1_input_and_1_output_only

A block includes a reference to a prior block and includes zero or more transactions that have occurred since that prior block:
 - http://en.bitcoin.it/wiki/Blocks

vip
Activity: 756
Merit: 503
February 03, 2013, 10:59:48 PM
#2
There's a wealth of information about Bitcoin in the Wiki: https://en.bitcoin.it/wiki/Main_Page

You want to read about the Bitcoin protocol specification: https://en.bitcoin.it/wiki/Protocol_specification
newbie
Activity: 32
Merit: 0
February 03, 2013, 10:36:48 PM
#1
Alright, I'm prepared to be called a total dumb a-- and to be ridiculed. This is a given so I'll just ask my questions anyone with a predisposition to be thick-skinned. I don't understand what digital code represents a Bitcoin. I do no understand this statement from The White Papers

"Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner
and adding these to the end of the coin."

Does that mean an infinite amount of numbers are added to the end of the coin? I doubt this to be true but why isn't it? Again, what is then the original number that the "hash" is added onto? What's the algorithm the hash uses and how was this determined?

What about the timestamp server? The timestamp server takes a hash of a block(or group of transactions) and publishes it but how can it be deduced from the hash what block it refers to? Finally, does a block contain only one transaction? Any links or explanations would be well appreciated. Know that the only reason I want to learn about Bitcoins is because I despise the corruption of central banks as much as many here do, I'm sure.
Jump to: