Homework on Bitcoin Transactions and UTXO - Questions

  1. Total coins that are available for spending in further transactions
  2. It would be declined by network
  3. Just enter the amount you want to send, BTC wallet will figure it out for you automatically by checking what would be the correct fee or you can enter the fee you want to pay and it might take you longer to transfer fund or quicker
  4. By using couple of newly created addresses

@CryptoTradingTrucker @Madsern @JustMichael @peter.m @TeresaK @Arthimis_Vergult @GoBeeGo @cryptotad

That is how the fee is calculated after a wallet has already done the calcualtions. Before that, the wallet looks at the blockchain and the mempool, for a best satoshi per byte fee setting. It can calculate the lowest amount of fee you need to pay in order to get your transaction mined fairly quickly. In bitcoin, size is what really matters, as blocks are limited to 1mb. We want to express ourselves to the miners by telling them how much satoshi we are willing to pay for a byte of information that needs to be stored in a limited space. After we set it, we can use that formula to calculate our total fee.

3 Likes

@Madsern @cincinnato @LXSO @peter.m @TeresaK @ambous @Arthimis_Vergult @Christian_S @GoBeeGo @BKCryptoFNG @cryptotad @Conrad_Swart @Hermann @iamchaoticcoder @Jones @Valerie_Clark @LAVATOR

You could always combine multiple UTXO’s to combine a large enough output needed. Otherwise you won’t be able to do the transaction.

1 Like
  1. What do you mean by that? If you send a transaction with 1 input and 2 outputs we could in a way determine which one you still own and which you don’t. Let’s say you have an input of 1btc and you need to pay for a new computer that costs 0.1 btc. You would have a transaction with 1 input and 2 outputs. The input will be 1btc and the outputs will be 0.1btc to the shop and 0.9btc to you. Someone seeing this on the blockchain could determine you still own the most of your bitcoins. In order to be more private you could make 5 outputs in which 4 go back to you and 1 to the shop. This transaction is a bit more messy and someone looking at it will now be more confused than before. They wouldn’t be sure which outputs you now own and which ones you don’t.

How does the wallet know what fee to set? Hint: Block Size is limited.

Because of that we would want to create many inputs and outputs. It will make us more private, as a person looking at the transaction would no longer be sure which of the outputs we control and which we no longer control.

1 Like

@cincinnato @ambous

A private key usually only controls one public key. In order to have more privacy you would want to send the UTXO’s to several other addresses. Each address has its own private key. This may not seem obvious at first, but wallets usually generate a series or private keys to increase our privacy. :smiley:

Here is an interesting read: https://bitcoin.stackexchange.com/questions/18102/does-a-wallet-containing-multiple-addresses-have-a-single-private-key

  1. To set the fee you must tell the miners how much satoshi per byte you are willing to pay. Once we set a satoshi per byte setting, then we can use that formula to calculate the total fee that will be payed to a miner.

You don’t have to use all the inputs. If you have an input of 1btc, 0.5btc and 0.1btc and you need to send 0.05btc you can only use 0.1btc input to do the transaction.

It is irrelevant if an UTXO is a whole number or not. UTXO is an unspent transaction output, which you can spend if you control the private key.

What about the public blockchain? Is there a way to increase privacy in the bitcoin blockchain?

Great answers. I am glad you are starting to understand everything all together. Keep it up. :smiley:

It sets the fees according to the other fees in the mempool? Since blocksize is limited, it must Set a competitive fee?

1 Like

Addition
Depending on your bitcoin client you can specify the fees by your own or they are proposed by the client by looking at the last x blocks to identify the best fee to use (depending if you want to pay low fees or want a fast confirmation of a transaction.


Sidestory
16.05.2020 - i transfered 750.000 satoshi (about 65 EUR) and my client proposed fees of about 5 EUR (to have a confirmed transaction in about 1hour). I thought WOW and checked all possible reasons:
a) International Wire Transfer - nope
b) PayPal Fees - nope
c) Government Financial Transaction Taxes - nope.
d) intended Software bug - nope

So i came up with a good solution: I reduced the fees to 1.000 sat/B.

No, don’t blame me !
1 satoshi is 1 satoshi, that’s more than nothing, and who knows how much that will be in future. If it develops as good as the US$ in can become 0,02 satoshi in 100 years.
Anyway, guess how long the transaction took to be confirmed ?

Just take a look:

1 Like

Sorry Mauro, this is to understand better. From your reply:

A private key usually only controls one public key. In order to have more privacy you would want to send the UTXO’s to several other addresses. Each address has its own private key.

So is it possible to generate several private keys from the same seed of 12 or 24 words of each wallet? I thought the passphrase was unique. I also thought that it was possible to generate different public keys from the same private key. Where was I wrong?

1 Like

1 Utxo are unspent transaction.We receive UTXO and they sums up in our wallet.
2 In case we haven’t got any of them then we can’t spend any btc.
3 It looks and checks the blockchain and its previous recent transactions in order to calculate an appropriate fee that will help to validate our transaction in a reasonable amount of time.Some wallets allow to select this fee (a higher fee > a quicker validation)
4 new addresses are generate each time making really hard to tell exactly where are exactly going the btcs.Only the private key owner knows the real movements and tx.

Describe what Unspent Transaction Outputs (UTXO) are.

  • UTXOs are outputs from of transactions that specified the public key (wallet address) that you have control over

What would happen if you don’t have any single UTXO that is large enough to cover for your transaction?

  • Combine multiple UTXOs into the transaction and specified the recipient’s wallet address for the appropriate amount, and the rest (minus fee) should be sent back to your wallet

How would a bitcoin wallet specify the transaction fee when creating a transaction?

  • The wallet can either let you specify the fee or it assess the suitable amount of fee which should get your transaction added to the block relatively fast

How could you use the notion of transaction inputs and outputs to increase privacy in your transaction?

  • when combining multiple UTXOs then output multiple outputs to one recipient with multiple wallets or multiple recipients then the trail is obfuscated.
1 Like
  1. Describe what Unspent Transaction Outputs (UTXO) are.
    Unspent outputs from a previous transaction.
  2. What would happen if you don’t have any single UTXO that is large enough to cover for your transaction?
    Combine a couple of UTXOs, but if we don’t have large enough UTXOs to cover a transaction, then the transaction will be declined.
    3.How would a bitcoin wallet specify the transaction fee when creating a transaction?
    Fee = Inputs - Outputs
  3. How could you use the notion of transaction inputs and outputs to increase privacy in your transaction?
    I don’t know :open_mouth: ? plz somebody help !
1 Like

— My answers —

  1. UTXO are transactions that have been sent to a wallet and that have not been used for further transactions, therefore the related founds are available to spend.

  2. Multiple UTXO can be “combined” as multiple inputs of the given transaction (assuming that the total sum of available UTXOs is greater than the amount required by the transaction).

  3. Fee = tx input - tx output. The amount of fees is usually determined by checking the average transaction fees in the blockchain, but can be potentially specified arbitrarily (by keeping into account that the higher the fee, the sooner the transaction will be processed by a miner).

  4. It is possible to send a transaction to multiple outputs, only one of which is the actual recipient, while the others are other wallets owned by the sender.

1 Like
  1. Wallets detect inputs connected to my private key and remembers it as a unspent balance that can be spent by me.

  2. The transaction will not go trough.

  3. It will query the standard fee from previous transactions and find out if it is enough so the tx will go through in a reasonable time.

  4. By sending bitcoin to another adress belonging to me I can blur the direct connections lets say to a exchange which holds my data. By transferring the path will get overgrown like in the jungle!