Transacties: verschil tussen versies

Uit BitcoinWiki.nl
(Uitleggen coinbasetransactie)
kGeen bewerkingssamenvatting
(11 tussenliggende versies door 5 gebruikers niet weergegeven)
Regel 1: Regel 1:
Een '''transactie''' is een verplaatsing van [[Bitcoin]], die verstuurd wordt via het [[Bitcoin_node#Netwerk|bitcoinnetwerk]] en uiteindelijk in een [[Blockchain#Blokken|blok]] terechtkomt.
Een '''transactie''' is een verplaatsing van [[Bitcoin]], die verstuurd wordt via het [[Bitcoin_node#Netwerk|bitcoinnetwerk]] en uiteindelijk in een [[Blockchain#Blokken|blok]] terechtkomt.


= Termen =  
Er zit een verschil tussen [[On-chain en Off-chain (2e laag-betalingen)|on-chain en off-chain transacties]]. Deze pagina gaat over transacties op de [[blockchain]]: on-chain transacties.
; Coinbase
 
''Via [[OP_RETURN]] is het mogelijk om data toe te voegen aan transacties, en zo [[Timestamping]] en [[RGB smart contracts]] mogelijk te maken.''
 
== Termen ==
 
=== Coinbase ===
: Dit is de eerste transactie in een blok. (Alleen) deze transactie heeft speciale regels: er mogen in deze transactie nieuwe bitcoin worden gemaakt door de [[Mining|miner]], zo lang ze zich aan de [[Bitcoin#Consensusregels|regels houden]].
: Dit is de eerste transactie in een blok. (Alleen) deze transactie heeft speciale regels: er mogen in deze transactie nieuwe bitcoin worden gemaakt door de [[Mining|miner]], zo lang ze zich aan de [[Bitcoin#Consensusregels|regels houden]].
; Witness data
 
: Dit zijn de handtekeningen die bewijzen dat de inputs echt uitgegeven mogen worden (dat de inputs daadwerkelijk bij een persoon of [[Multisig|groep personen]] horen.
=== Witness data ===
; UTXO
: Dit zijn de handtekeningen die bewijzen dat de inputs echt uitgegeven mogen worden (dat de inputs daadwerkelijk bij een persoon of [[Multisig|groep personen]] horen).
 
=== [[UTXO]] ===
: Een Unspent Transactie-output, oftewel niet-uitgegeven bitcoin. Elke transactie heeft nieuwe outputs, die later uitgegeven kunnen worden. Als ze nog niet zijn uitgegeven (dus geen input zijn van een volgende transactie), zijn het Unspent Transactie-outputs: UTXO's. Een UTXO moet altijd volledig worden uitgegeven.
: Een Unspent Transactie-output, oftewel niet-uitgegeven bitcoin. Elke transactie heeft nieuwe outputs, die later uitgegeven kunnen worden. Als ze nog niet zijn uitgegeven (dus geen input zijn van een volgende transactie), zijn het Unspent Transactie-outputs: UTXO's. Een UTXO moet altijd volledig worden uitgegeven.
; Double spend
 
=== Double spend ===
: Als één input meerdere keren uitgegeven wordt. Dit kan niet voorkomen, en Bitcoin is de eerste die dit probleem heeft opgelost.
: Als één input meerdere keren uitgegeven wordt. Dit kan niet voorkomen, en Bitcoin is de eerste die dit probleem heeft opgelost.


= Inhoud transactie =
== Inhoud transactie ==
De transactie heeft informatie over de bitcoin die worden uitgegeven (dit zijn de inputs van een transactie), en waar de bitcoin naartoe worden gestuurd (de outputs van de transactie).
De transactie heeft informatie over de bitcoin die worden uitgegeven (dit zijn de inputs van een transactie), en waar de bitcoin naartoe worden gestuurd (de outputs van de transactie).


Technisch gezien:
Technisch gezien:
{| class="wikitable"
{| class="wikitable"
|+ Caption text
|+
|-
|-
! Veld !! Beschrijving !! Grootte
! Veld !! Beschrijving !! Grootte
Regel 22: Regel 30:
| Verson no || Momenteel altijd 1 || 4 bytes
| Verson no || Momenteel altijd 1 || 4 bytes
|-
|-
| Flag || Momenteel 0001 als er [[#Witness_data]] is || Optionele 2-byte array
| Flag || Momenteel 0001 als er Witness_data is || Optionele 2-byte array
|-
|-
| In-counter || Het aantal inputs || 1 - 9 bytes
| In-counter || Het aantal inputs || 1 - 9 bytes
|-
|-
| Lijst van inputs || Na de [[#Coinbase]] (de eerste transactie) zijn dit de inputs van de transactie (wat op zijn beurt de outputs zijn van vorige transacties) || Zoveel inputs als de In-counter
| Lijst van inputs || Na de [[#Coinbase|Coinbase]] (de eerste transactie) zijn dit de inputs van de transactie (wat op zijn beurt de outputs zijn van vorige transacties) || Zoveel inputs als de In-counter
|-
|-
| Out-counter || Het aantal outputs || 1 - 9 bytes
| Out-counter || Het aantal outputs || 1 - 9 bytes
|-
|-
| Lijst van outputs || Na de [[#Coinbase]]-transactie zijn dit de outputs waar de bitcoin naartoe worden gestuurd || Zoveel outputs als de Out-counter
| Lijst van outputs || Na de [[#Coinbase|Coinbase]]-transactie zijn dit de outputs waar de bitcoin naartoe worden gestuurd || Zoveel outputs als de Out-counter
|-
|-
| Witnesses || Een lijst Witnesses, het bewijs dat de input uitgegeven mogen worden || Verschilt
| Witnesses || Een lijst Witnesses, het bewijs dat de input uitgegeven mogen worden || Verschilt
Regel 37: Regel 45:
|}
|}


== Coinbase ==
=== Coinbase ===
De coinbasetransactie is de enige speciale transactie in een blok. Het is de eerste transactie in het blok. In de coinbasetransactie worden bitcoin uit het niks gegenereerd en naar de miner gestuurd. De miner moet zich houden aan de concensusregels en nooit meer claimen dan volgens de regels is toegestaan. Als hij dat wel doet, dat zal de rest van het netwerk het blok negeren.
De coinbasetransactie is de enige speciale transactie in een blok. Het is de eerste transactie in het blok. In de coinbasetransactie worden de bloksubsidie en transactievergoedingen vastgelegd door de miner (of miningpool) die de juiste hash heeft gevonden. De bloksubsidie en de transactievergoeding worden verstuurd naar een bitcoinadres waar deze miner (of miningpool) de geheime sleutel van heeft. Vervolgens moet de miner minimaal 100 blokken wachten voordat de bitcoin kunnen worden verplaatst. De miner moet zich bij het maken van de coinbasetransactie houden aan de concensusregels en nooit meer claimen dan volgens de regels is toegestaan. Als hij dat wel doet, dat zal de rest van het netwerk het blok negeren.


= Kosten =
=== Kosten ===
De outputs van een transactie moeten altijd kleiner zijn dan de inputs; je mag slechts de bitcoin uitgeven die je in de inputs geeft, en geen nieuwe bitcoin creëeren in een normale transactie.  
De outputs van een transactie moeten altijd kleiner zijn dan de inputs. Je mag slechts de bitcoin uitgeven die je in de inputs geeft, en geen nieuwe bitcoin creëeren in een normale transactie.  


Het verschil tussen de inputs en de outputs is zijn de transactiekosten. Je wallet regelt dit vanzelf voor jou. De transactiekosten kun je weergeven als een aantal [[Bitcoin#Eenheden|satoshi]] per byte. Zo kan je laten zien hoe veel een transactie ''relatief'' kost, ten opzichte van de grootte. We noemen dit '''sat/vB'''.
'''Het verschil tussen de inputs en de outputs is zijn de transactiekosten'''. Je wallet regelt dit vanzelf voor jou. De transactiekosten kun je weergeven als een aantal [[Bitcoin#Eenheden|satoshi]] per byte. Zo kan je laten zien hoe veel een transactie ''relatief'' kost, ten opzichte van de grootte. We noemen dit '''sat/vB'''.


[[Mining|Miners]] willen hun blokken altijd zo slim mogelijk vullen. Ze hebben maar 1 megabyte om te vullen, dus willen die megabyte zo slim mogelijk volzetten met dure transacties. Ze zullen altijd kijken naar de duurste transacties ''per byte''.
[[Mining|Miners]] willen hun blokken altijd zo slim mogelijk vullen. Ze hebben maar 1 megabyte om te vullen, dus willen die megabyte zo slim mogelijk volzetten met dure transacties. Ze zullen altijd kijken naar de duurste transacties ''per byte''.


= Alles verplicht uitgeven (Change-adressen) =
== Alles verplicht uitgeven (Change-adressen) ==
Een UTXO moet volledig worden uitgegeven, maar de UTXO die jouw wallet gaat uitgeven is mogelijk groter dan het bedrag dat je wil betalen. In dat geval wordt er een change-adres in je transactie gezet, een deel wordt teruggestuurd naar je eigen wallet.
Een [[UTXO]] moet volledig worden uitgegeven, maar de [[UTXO]] die jouw wallet gaat uitgeven is mogelijk groter dan het bedrag dat je wil betalen. In dat geval wordt er een change-adres in je transactie gezet, een deel wordt teruggestuurd naar je eigen wallet.
Zie het als betalen met 10 euro voor een brood van 2 euro. Je geeft in de transactie me de supermarkt het briefje van 10 euro aan de kassamedewerker. Deze houdt 2 euro en geeft je 8 euro terug.
Zie het als betalen met 10 euro voor een brood van 2 euro. Je geeft in de transactie me de supermarkt het briefje van 10 euro aan de kassamedewerker. Deze houdt 2 euro en geeft je 8 euro terug.


= Zie ook =
== Zie ook ==
* [https://beginnenmetbitcoin.com/#ep6 Aflevering 6] van de [[Beginnen met Bitcoin]]-podcast legt het ook uit.
* [https://beginnenmetbitcoin.com/#ep6 Aflevering 6] van de [[Beginnen met Bitcoin]]-podcast legt het ook uit.

Versie van 24 apr 2021 22:03

Een transactie is een verplaatsing van Bitcoin, die verstuurd wordt via het bitcoinnetwerk en uiteindelijk in een blok terechtkomt.

Er zit een verschil tussen on-chain en off-chain transacties. Deze pagina gaat over transacties op de blockchain: on-chain transacties.

Via OP_RETURN is het mogelijk om data toe te voegen aan transacties, en zo Timestamping en RGB smart contracts mogelijk te maken.

Termen

Coinbase

Dit is de eerste transactie in een blok. (Alleen) deze transactie heeft speciale regels: er mogen in deze transactie nieuwe bitcoin worden gemaakt door de miner, zo lang ze zich aan de regels houden.

Witness data

Dit zijn de handtekeningen die bewijzen dat de inputs echt uitgegeven mogen worden (dat de inputs daadwerkelijk bij een persoon of groep personen horen).

UTXO

Een Unspent Transactie-output, oftewel niet-uitgegeven bitcoin. Elke transactie heeft nieuwe outputs, die later uitgegeven kunnen worden. Als ze nog niet zijn uitgegeven (dus geen input zijn van een volgende transactie), zijn het Unspent Transactie-outputs: UTXO's. Een UTXO moet altijd volledig worden uitgegeven.

Double spend

Als één input meerdere keren uitgegeven wordt. Dit kan niet voorkomen, en Bitcoin is de eerste die dit probleem heeft opgelost.

Inhoud transactie

De transactie heeft informatie over de bitcoin die worden uitgegeven (dit zijn de inputs van een transactie), en waar de bitcoin naartoe worden gestuurd (de outputs van de transactie).

Technisch gezien:

Veld Beschrijving Grootte
Verson no Momenteel altijd 1 4 bytes
Flag Momenteel 0001 als er Witness_data is Optionele 2-byte array
In-counter Het aantal inputs 1 - 9 bytes
Lijst van inputs Na de Coinbase (de eerste transactie) zijn dit de inputs van de transactie (wat op zijn beurt de outputs zijn van vorige transacties) Zoveel inputs als de In-counter
Out-counter Het aantal outputs 1 - 9 bytes
Lijst van outputs Na de Coinbase-transactie zijn dit de outputs waar de bitcoin naartoe worden gestuurd Zoveel outputs als de Out-counter
Witnesses Een lijst Witnesses, het bewijs dat de input uitgegeven mogen worden Verschilt
lock_time (Optioneel) extra voorwaarden: deze transactie mag pas op een bepaalde blokhoogte worden uitgegeven 4 bytes

Coinbase

De coinbasetransactie is de enige speciale transactie in een blok. Het is de eerste transactie in het blok. In de coinbasetransactie worden de bloksubsidie en transactievergoedingen vastgelegd door de miner (of miningpool) die de juiste hash heeft gevonden. De bloksubsidie en de transactievergoeding worden verstuurd naar een bitcoinadres waar deze miner (of miningpool) de geheime sleutel van heeft. Vervolgens moet de miner minimaal 100 blokken wachten voordat de bitcoin kunnen worden verplaatst. De miner moet zich bij het maken van de coinbasetransactie houden aan de concensusregels en nooit meer claimen dan volgens de regels is toegestaan. Als hij dat wel doet, dat zal de rest van het netwerk het blok negeren.

Kosten

De outputs van een transactie moeten altijd kleiner zijn dan de inputs. Je mag slechts de bitcoin uitgeven die je in de inputs geeft, en geen nieuwe bitcoin creëeren in een normale transactie.

Het verschil tussen de inputs en de outputs is zijn de transactiekosten. Je wallet regelt dit vanzelf voor jou. De transactiekosten kun je weergeven als een aantal satoshi per byte. Zo kan je laten zien hoe veel een transactie relatief kost, ten opzichte van de grootte. We noemen dit sat/vB.

Miners willen hun blokken altijd zo slim mogelijk vullen. Ze hebben maar 1 megabyte om te vullen, dus willen die megabyte zo slim mogelijk volzetten met dure transacties. Ze zullen altijd kijken naar de duurste transacties per byte.

Alles verplicht uitgeven (Change-adressen)

Een UTXO moet volledig worden uitgegeven, maar de UTXO die jouw wallet gaat uitgeven is mogelijk groter dan het bedrag dat je wil betalen. In dat geval wordt er een change-adres in je transactie gezet, een deel wordt teruggestuurd naar je eigen wallet. Zie het als betalen met 10 euro voor een brood van 2 euro. Je geeft in de transactie me de supermarkt het briefje van 10 euro aan de kassamedewerker. Deze houdt 2 euro en geeft je 8 euro terug.

Zie ook