Author

Topic: what does blockchain record for fiat conversions? (Read 528 times)

legendary
Activity: 2646
Merit: 1137
All paid signature campaigns should be banned.
It can be informative to just look at a transaction.  I picked this one out of the current transaction stream totally at random:

https://blockchain.info/tx/026ba26cb6871596382a72a69973426e605280fa0d454aa8c39c55aee8309874

Notice two outputs of previous transactions being used as inputs to this transaction:

0.08224623 BTC and 0.00010820 BTC = 0.08235443 BTC

And the outputs of this transaction are:

0.03074088 BTC and 0.05150535 BTC = 0.08224623 BTC

Of course the total of the outputs must be less than or equal to the total of the inputs.  In this case the difference between the total outputs and total inputs is:

0.08235443 BTC - 0.08224623 BTC = 0.00010820 BTC

This difference (fee) goes to the miner that successfully includes this transaction in a block.

Looking further down on that page you can see the actual input scripts and output scripts as described above.
newbie
Activity: 16
Merit: 0
I had the concept of "orders" and "inputs" and "outputs" -- which I now understand as data and code instructions -- mixed up with the value (bitcoin) that's being transferred from one owner to another. I was wrongly imagining output having to do with something like taking value out of something like a drawer and input having to do with something like putting it a different drawer that the receiver of the value can open.

Thanks very much for your patience with the weirdness of my questions.

newbie
Activity: 16
Merit: 0
Thank you. I will strive to increase my understanding a tad.

Clarification regarding this concept: "The inputs are a list indicating exactly which previously unspent outputs are being spent." is immensely illuminating!


legendary
Activity: 3472
Merit: 4801
Danny, et al., I'm hoping you'll be willing to respond continue this dialog...

What's the different between the private key and the signature?

A bitcoin private key is a randomly chosen number between 1 and 115792089237316195423570985008687907852837564279074904382605163141518161494336.  Using point multiplication from a base point on the elliptic curve identified as secp256k1, a public key is mathematically associated with that private key.  A signature on arbitrary data (such as a bitcoin transaction) can be mathematically generated from the private key that can be verified by anyone that possess the publick key.

What does the digital signature consist of?

https://en.bitcoin.it/wiki/Elliptic_Curve_Digital_Signature_Algorithm

Where did it come from?

From a mathematical operation with the private key and the transaction data.  The result can be verified with the public key, but does not reveal the private key (as long as the signature is properly generated).

Danny says the "private key allows you to provide a digital signature that meets the requirements of specific transaction outputs in order to be allowed to use them as transaction inputs."

Provide a digital signature... to the blockchain, right?

Provide a digital signature in the transaction input.  The signature satisfies the output script of the output that is being spent by the transaction that is being created.  The transaction is then broadcast to all connected bitcoin peers. Every peer verifies that the transaction is valid and then (if it is) relays it to all the peers that they are connected to.  All those peers then verify that the transaction is valid and then (if it is) relay it to all their connected peers, and so on until the entire connected network has heard about the transaction.

Eventually, miners (which are peers on the network) hear about it and may choose to add it to blocks that they are building for the blockchain.

Transactions technically consist of input orders, and output orders?

Transactions technically consist of a list of inputs (which are references to previously unspent outputs) and a list of new unspent outputs.  Specifically:
  • A 4 byte version number
  • 1 to 9 bytes indicating the number of inputs in the input list
  • The list of inputs
  • 1 to 9 bytes indicating the number of outputs in the output list
  • A 4 byte locktime

Why did you say "specific" in "specific transaction outputs"?

Because many people mistakenly believe that the blockchain contains a balance associated with the bitcoin address, and that the input to the transaction is an amount of bitcoins to transfer from that balance.  This is not how it works.  The inputs are a list indicating exactly which previously unspent outputs are being spent.

Do some transaction outputs not require digital signatures?

Outputs are encumbered with scripts.  In general most of those scripts encumber the output with a requirement for a valid signature.  However, it's possible to create other scripts that do not require a signature (or which require multiple signatures).

An example of a complete transaction is one successfully-executed output order plus the successfully-executed input order that the output order triggers?

An example of a complete transaction is a list of previously unspent outputs as inputs that have all had their scripts satisfied with the data in the inputs, plus a valid list of outputs that meet the requirements of the bitcoin consensus rules.

Neither order will be executed unless a full set of requirements are met? Orders for transactions, such as an output and input order, are carried out only per certain requirements?

I'm not certain what you mean by "orders".  Output scripts of previous transactions are executed by all peers that are attempting to validate them as inputs to the new transaction.

One requirement is typically valid order data (such as the currency, the amount...)?

Nope. No currency. No amount.  Just a list of previously unspent transaction outputs to be used as transaction inputs along with the necessary data to satisfy the requirements of the outputs and then a list of new outputs encumbered with new scripts.
 
Another is a valid private key?

Nope.  No need to provide a private key.  You generally need to use the private key to provide a valid signature.

Another is the digital signature associated with the private key?

Yes.  Most commonly a digital signature must be provided along with the public key.

Another is confirmation that the private key and digital signature match each other?

The public key is typically required so that all peers and nodes on the network can validate the signature. The peers and nodes then calculate a hash of the public key to make sure that the public key provided is the one that the output required.

Output requirements include (a) a valid digital signature and?? the signature must be (b) validly coupled with its private key?

Output requirements include whatever the output script indicates is required.  Most commonly this is a signature and a public key.

If output requirements are met, the requirements can then be used to try to clear a transaction input?

If output requirements are met, then the list of outputs are considered to be valid by all nodes and the value associated with those outputs can be re-assigned into new outputs and a transaction fee.
staff
Activity: 3458
Merit: 6793
Just writing some code
What's the different between the private key and the signature?
A private key is a large random number which only one party should own. By combining the private key with the hash of the data and doing some other functions on that, a signature is created. A signature can then be verified by performing some other operations on the given message and signature to return with a public key which corresponds to the private key.

What does the digital signature consist of? Where did it come from?
A signature consists of two large integers which are determined by the hash of the message and the private key. It comes from the software that generated it. Here is some info on signatures: https://en.wikipedia.org/wiki/Digital_signature

Danny says the "private key allows you to provide a digital signature that meets the requirements of specific transaction outputs in order to be allowed to use them as transaction inputs."

Provide a digital signature... to the blockchain, right?
The blockchain is not an entity. What happens is that the owner of the private key signs the unsigned transaction and the signature is then embedded into the transaction when it is sent.

Transactions technically consist of input orders, and output orders?
Kind of, they aren't really orders. Transactions consist of an input which corresponds to an outpoint, the output of another transaction before it. It then creates outputs that can be spent.

Why did you say "specific" in "specific transaction outputs"? Do some transaction outputs not require digital signatures?
Outputs are technically scripts. A script is essentially a program. In order to properly spend an output, the script of the input combined with the script of the corresponding output has to validate. After completing all of the commands in the script, the output of the program must be true (not 0) in order to validate. While there is a "normal" script used in outputs, an output can have all sorts of scripts, and the input that spends it must validate to true.

An example of a complete transaction is one successfully-executed output order plus the successfully-executed input order that the output order triggers?
See above.

Neither order will be executed unless a full set of requirements are met? Orders for transactions, such as an output and input order, are carried out only per certain requirements?
The scripts will be executed to validate a transaction. If it comes out false, the transaction is not valid. If it is true, the transaction is valid and is continued to be broadcast and can be included in blocks.

One requirement is typically valid order data (such as the currency, the amount...)?
Another is a valid private key?
Another is the digital signature associated with the private key?
Another is confirmation that the private key and digital signature match each other?

Output requirement is
Output requirements are
Output requirements include (a) a valid digital signature and?? the signature must be (b) validly coupled with its private key?

If output requirements are met, the requirements can then be used to try to clear a transaction input?
There are no specific requirements. See above.
newbie
Activity: 16
Merit: 0
Danny, et al., I'm hoping you'll be willing to respond continue this dialog...

What's the different between the private key and the signature?

What does the digital signature consist of? Where did it come from?

Danny says the "private key allows you to provide a digital signature that meets the requirements of specific transaction outputs in order to be allowed to use them as transaction inputs."

Provide a digital signature... to the blockchain, right?

Transactions technically consist of input orders, and output orders?

Why did you say "specific" in "specific transaction outputs"? Do some transaction outputs not require digital signatures?

An example of a complete transaction is one successfully-executed output order plus the successfully-executed input order that the output order triggers?

Neither order will be executed unless a full set of requirements are met? Orders for transactions, such as an output and input order, are carried out only per certain requirements?

One requirement is typically valid order data (such as the currency, the amount...)?
Another is a valid private key?
Another is the digital signature associated with the private key?
Another is confirmation that the private key and digital signature match each other?

Output requirement is
Output requirements are
Output requirements include (a) a valid digital signature and?? the signature must be (b) validly coupled with its private key?

If output requirements are met, the requirements can then be used to try to clear a transaction input?


newbie
Activity: 16
Merit: 0
Thank you!
legendary
Activity: 2646
Merit: 1137
All paid signature campaigns should be banned.
I am glad Danny answered that question so well that I have nothing to add but I will watch this thread to see if I can answer any future questions.
legendary
Activity: 3472
Merit: 4801
When you own bitcoin, what you own is a key that gives you access to a bitcoin credit on the bitcoin blockchain that’s assigned to your private key.

Nope.  When you "own bitcoin", what you own is a private key that allows you to provide a digital signature that meets the requirements of specific transaction outputs in order to be allowed to use them as transaction inputs.

The key allows you to transfer some or all of your credit directly to another key.

There is no "credit", there are just outputs with requirements.  Meet the requirements of the outputs and you can list them as inputs.  Then you can create new outputs with their own requirements.

When it's turned into fiat, what does the blockchain record?

It isn't "turned into fiat".  It is exchanged for fiat.  When gold is "turned into fiat" what does the gold record?  When you purchase a car, and the car is "turned into fiat" for the seller, what does the car record?

Not that ownership is transferred to a different private key. Does it record an ID of the exchange that converts the currency?

A new output is created that requires a signature from the bitcoin recipient if they want to use it as an input.  In exchange for creating this output, the recipient gives you fiat (or whatever else you both agree to exchange).
staff
Activity: 3458
Merit: 6793
Just writing some code
When you own bitcoin, what you own is a key that gives you access to a bitcoin credit on the bitcoin blockchain that’s assigned to your private key. The key allows you to transfer some or all of your credit directly to another key.
Technically that is not what happens. But for a high level explanation, it is okay.

When it's turned into fiat, what does the blockchain record? Not that ownership is transferred to a different private key. Does it record an ID of the exchange that converts the currency?
What happens is the exact same thing that happens when you trade Bitcoin (or any currency) for any good (e.g a fiat currency). You transact some Bitcoin to another person who transactions some fiat to you. Blockchain records nothing except that Bitcoin went from one address to another. Only those involved in that trade will know that another transaction happened in another currency to transfer some fiat from the other guy to you.
newbie
Activity: 16
Merit: 0
When you own bitcoin, what you own is a key that gives you access to a bitcoin credit on the bitcoin blockchain that’s assigned to your private key. The key allows you to transfer some or all of your credit directly to another key.

When it's turned into fiat, what does the blockchain record? Not that ownership is transferred to a different private key. Does it record an ID of the exchange that converts the currency?
Jump to: