Transacties: verschil tussen versies
kGeen bewerkingssamenvatting |
(Transactiekostenkopje en termen in tabel) |
||
Regel 3: | Regel 3: | ||
Binnen het Bitcoin netwerk vinden continu transacties plaats. De transacties worden verzameld en komen in een blok terecht die grofweg elke 10 minuten in de bitcoin blockchain worden opgeslagen. | Binnen het Bitcoin netwerk vinden continu transacties plaats. De transacties worden verzameld en komen in een blok terecht die grofweg elke 10 minuten in de bitcoin blockchain worden opgeslagen. | ||
=== Hoe werkt het === | |||
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. | ||
Regel 10: | Regel 10: | ||
''Via [[OP_RETURN]] is het mogelijk om data toe te voegen aan transacties, en zo [[Timestamping]] en [[RGB smart contracts]] mogelijk te maken.'' | ''Via [[OP_RETURN]] is het mogelijk om data toe te voegen aan transacties, en zo [[Timestamping]] en [[RGB smart contracts]] mogelijk te maken.'' | ||
== | === Transactiekosten === | ||
[[Bestand:Screenshot Mempool.png|miniatuur|Transactiekosten op [[mempool.space]]]] | |||
Bitcoin-transacties vereisen transactiekosten als vergoeding voor het verwerken (en bevestigen) door het netwerk. Deze kosten variëren en worden bepaald door verschillende factoren, waaronder de drukte op het netwerk en de grootte van de transactie in bytes. | |||
De transactiekosten worden ook wel '''fees''' genoemd. Hoe hoger de fees, hoe sneller een [[Mining|Miner]] de transactie zal opnemen in een [[Blockchain|Blok]]. | |||
Op [[Mempool.space]] zijn de huidige transactiekosten te zien. | |||
=== | ==== Wat te doen bij hoge transactiekosten ==== | ||
* '''Wachten tot het rustiger is''': Als de netwerkdrukte hoog is, kan het wachten op een periode met minder activiteit leiden tot lagere transactiekosten. | |||
* '''Kiezen voor lagere fees''': Sommige [[wallets]] bieden de optie om transactiekosten aan te passen. Gebruikers kunnen ervoor kiezen om lagere kosten te betalen, maar dit kan de verwerkingstijd beïnvloeden: lage transactiekosten betekent langer wachten. | |||
* '''Gebruik van [[SegWit|Segregated Witness]] ([[SegWit]]):''' Transacties vanaf SegWit-adressen hebben vaak lagere kosten, en het gebruik van SegWit kan de netwerkefficiëntie verbeteren. De meeste wallets ondersteunen dit. | |||
* '''Gebruik van Bitcoin [[Lightning]] Network''': Voor microbetalingen biedt het Lightning Network een off-chain oplossing met lagere kosten en snellere bevestiging. Lastig: om kanalen op te zetten (om Lightning te gebruiken) is het wel nodig om een on-chain (dure) betaling te doen. | |||
==== Fees bepalen ==== | |||
De meeste mensen gebruiken [[Mempool.space]], of de ingebouwde fee-inschatting van hun wallet, om te bepalen wat de juiste fee-grootte is. | |||
=== Termen === | |||
{| class="wikitable" | |||
|+Veel gebruikte termen rondom bitcointransacties | |||
!Term | |||
!Uitleg | |||
|- | |||
|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]]. | |||
|- | |||
|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). | |||
|- | |||
|Fees | |||
|Een ander woord voor transactiekosten | |||
|- | |||
|UTXO | |||
|UTXO staat voor Unspent Transaction (TX) Output. Elke on-chain transactie stuurt bitcoin naar een of meerdere adressen, op het moment dat deze nog niet naar een volgend adres zijn gestuurd is dat een UTXO. Het saldo in een bitcoinwallet, is de totale waarde van alle UTXO's die door de privésleutels van de wallet beheerd worden. | |||
Het totaal van alle UTXO's wordt ook wel de UTXO set genoemd, deze wordt bijgehouden door nodes op het bitcoin netwerk. | Het totaal van alle UTXO's wordt ook wel de UTXO set genoemd, deze wordt bijgehouden door nodes op het bitcoin netwerk. | ||
|- | |||
Als één input meerdere keren uitgegeven wordt. Dit kan niet voorkomen, en Bitcoin is de eerste die dit probleem heeft opgelost. | |Double spend | ||
|Als één input meerdere keren uitgegeven wordt. Dit kan niet voorkomen, en Bitcoin is de eerste die dit probleem heeft opgelost. | |||
|- | |||
Transactie-ID, de hash van de transactie. | |TXID | ||
|Transactie-ID, de hash van de transactie. | |||
|} | |||
== 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). | ||
Regel 54: | Regel 80: | ||
|} | |} | ||
=== Coinbase === | ==== 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. | 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. | ||
Regel 64: | Regel 90: | ||
[[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 === | ||
{{ZieOok|Beginnen met Bitcoin|Aflevering 6 van Beginnen met Bitcoin|ExterneLink=0}}{{ZieOokExtern|https://trybitcoin.satsie.dev/|Zelf een transactie bouwen op satsie.dev}} | {{ZieOok|Beginnen met Bitcoin|Aflevering 6 van Beginnen met Bitcoin|ExterneLink=0}}{{ZieOokExtern|https://trybitcoin.satsie.dev/|Zelf een transactie bouwen op satsie.dev}} |
Versie van 18 dec 2023 12:40
Een transactie is de verplaatsing van waarde in de vorm van Bitcoin. In de reguliere wereld zou je dit als een betaling tussen 2 personen kunnen zien. Binnen Bitcoin is het effect gelijk, maar werkt het iets anders: een transactie kent een inputwaarde (in bitcoin) en één of meer outputwaardes (in bitcoin). Toegang tot Bitcoin gaat via sleutels: een public key (publieke sleutel, het adres van de plek) en een private key (de toegang tot de desbetrefferde bitcoins). Degene die de sleutel (private key) heeft van de bitcoin met de beginwaarde, neemt het initiatief en initieert de transactie die de inputwaarde verplaatst naar de nieuwe adressen (UTXO). Het resultaat is dat degene die de private key heeft van de nieuwe plek nu de toegang heeft.
Binnen het Bitcoin netwerk vinden continu transacties plaats. De transacties worden verzameld en komen in een blok terecht die grofweg elke 10 minuten in de bitcoin blockchain worden opgeslagen.
Hoe werkt het
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.
Transactiekosten
Bitcoin-transacties vereisen transactiekosten als vergoeding voor het verwerken (en bevestigen) door het netwerk. Deze kosten variëren en worden bepaald door verschillende factoren, waaronder de drukte op het netwerk en de grootte van de transactie in bytes.
De transactiekosten worden ook wel fees genoemd. Hoe hoger de fees, hoe sneller een Miner de transactie zal opnemen in een Blok.
Op Mempool.space zijn de huidige transactiekosten te zien.
Wat te doen bij hoge transactiekosten
- Wachten tot het rustiger is: Als de netwerkdrukte hoog is, kan het wachten op een periode met minder activiteit leiden tot lagere transactiekosten.
- Kiezen voor lagere fees: Sommige wallets bieden de optie om transactiekosten aan te passen. Gebruikers kunnen ervoor kiezen om lagere kosten te betalen, maar dit kan de verwerkingstijd beïnvloeden: lage transactiekosten betekent langer wachten.
- Gebruik van Segregated Witness (SegWit): Transacties vanaf SegWit-adressen hebben vaak lagere kosten, en het gebruik van SegWit kan de netwerkefficiëntie verbeteren. De meeste wallets ondersteunen dit.
- Gebruik van Bitcoin Lightning Network: Voor microbetalingen biedt het Lightning Network een off-chain oplossing met lagere kosten en snellere bevestiging. Lastig: om kanalen op te zetten (om Lightning te gebruiken) is het wel nodig om een on-chain (dure) betaling te doen.
Fees bepalen
De meeste mensen gebruiken Mempool.space, of de ingebouwde fee-inschatting van hun wallet, om te bepalen wat de juiste fee-grootte is.
Termen
Term | Uitleg |
---|---|
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). |
Fees | Een ander woord voor transactiekosten |
UTXO | UTXO staat voor Unspent Transaction (TX) Output. Elke on-chain transactie stuurt bitcoin naar een of meerdere adressen, op het moment dat deze nog niet naar een volgend adres zijn gestuurd is dat een UTXO. Het saldo in een bitcoinwallet, is de totale waarde van alle UTXO's die door de privésleutels van de wallet beheerd worden.
Het totaal van alle UTXO's wordt ook wel de UTXO set genoemd, deze wordt bijgehouden door nodes op het bitcoin netwerk. |
Double spend | Als één input meerdere keren uitgegeven wordt. Dit kan niet voorkomen, en Bitcoin is de eerste die dit probleem heeft opgelost. |
TXID | Transactie-ID, de hash van de 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).
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
→Zie ook: Aflevering 6 van Beginnen met Bitcoin
→Zie ook externe link: Zelf een transactie bouwen op satsie.dev