Transaction expiration - Bitcoin Wiki

You can call you a Bitcoiner if you know/can explain these terms...

10 Minutes
10,000 BTC Pizza
2016 Blocks
21 Million
210,000 Blocks
51% Attack
Asic Boost
Bitcoin Cash
Bitcoin Improvement Proposal (BIP)
Bitcoin SV
Block height
Block reward
Bloom Filter
Brain Wallet
Change Address
Child pays for parent (CPFP)
Coinbase (not the exchange)
Coinmarketcap (CMC)
Colored Coin
Custodial Wallet
Craig Wright
David Kleinman
Difficulty adjustment
Difficulty Target
Dorian Nakamoto
Double spend
Elliptic Curve Digital Signature Algorithm (ECDSA)
Full Node
Gavin Andresen
Genesis Block
Getting goxed
Hard Fork
Hardware Wallet
Hierarchical Deterministic (HD) Wallet
Hot Wallet
Initial Coin Offering (ICO)
Initial Exchange Offering (IEO)
Light Node
Master Private Key
Master Public Key
Master Seed
Merkle Tree
Mining Farm
Mining Pool
Not your keys,...
Orphan block
Paper Wallet
Pieter Wuille
Private key
Proof of Stake (PoS)
Proof of Work (PoW)
Public key
Replace by Fee (RBF)
Roger Ver
Satoshi Nakamoto
Schnorr Signatures
Segregated Witness (Segwit)
Simplified Payment Verification (SPV)
Smart Contract
Soft Fork
Transaction Fees
TransactionId (Txid)
User Activated Soft Fork (UASF)
Wallet Import Format (WIF)
Watch-Only Address
List obviously not complete. Suggestions appreciated.
submitted by PolaT1x to Bitcoin [link] [comments]

Feerates for dependent transactions.

This link, section "Feerates for dependent transactions (child-pays-for-parent)", explains a simple algorithm for miners to maximize their revenue from transaction fees.
However, as the article points out "Except for some edge cases that are rare and rarely have a significant impact on revenue, this simple and efficient transaction sorting algorithm maximizes miner feerate revenue after factoring in transaction dependencies."
One edge case that particularly worries me is when the opposite of CPFP occurs: let's say the mempool is almost empty and I make a transaction that pays 1000 sat/B, then a child that pays 999 sat/B, then a child of the child that pays 998 sat/B, then a child of this child that pays 997 sat/B. Using the simplistic algorithm explained in the link above, all childs will be ignored for the first block. After the parent is mined, all childs except the first child (now the parent) will be ignore in turn. This will lead to the last child being confirmed much later than it should be, in a situation with almost an empty mempool.
My question is: do the current algorithms in use by miners, for choosing which transactions to be included in the next block take into account this edge case? Or they fail to maximize the miner fee in a case like this?
I could experiment and see for myself what the result is, but I hope someone has some insight into this.
submitted by johnturtle to BitcoinBeginners [link] [comments]

What wallets, today, support fee bumping (i.e., replace-by-fee / RBF)?

There are nearly two dozen wallets listed here, ...
but not many of them have support for RBF such that a user can bump the fee.
Replace-by-fee (RBF) is a method to permit the fee paid to be bumped up to cause an unconfirmed transaction to get included in a block sooner.
With an increasing number of transactions waiting, fee bumping will become a bigger deal, once again.
Those with RBF support that I know of:
Custodial/online wallets with RBF:
To use RBF, the original transaction needs to be constructed properly so that a replacement transaction gets relayed, and today only about 7% % of them 9% of them have that.
What other wallets do today support fee bumping through RBF?
[Note: Periodically this list is updated, with most additions learned from the RBF Support list by BItcoinOps. Feel free to send to me additions / corrections via direct message here on Reddit or via e-mail.]
submitted by cointastical to Bitcoin [link] [comments]

[FAQ] Why are my fees so high?

At Mycelium Support we get questions like this all the time. Here are some answers around fees:
submitted by giszmo to mycelium [link] [comments]

Extension block proposal by Jeffrey et al | Luke Dashjr | Apr 04 2017

Luke Dashjr on Apr 04 2017:
Recently there has been some discussion of an apparent work-in-progress
extension block proposal by Christopher Jeffrey, Joseph Poon, Fedor Indutny,
and Steven Pair. Since this hasn't been formally posted on the ML yet, perhaps
it is still in pre-draft stages and not quite ready for review, but in light
of public interest, I think it is appropriate to open it to discussion, and
toward this end, I have reviewed the current revision.
For reference, the WIP proposal itself is here: 
==Overall analysis & comparison==
This is a relatively complicated proposal, creating a lot of additional
technical debt and complexity in comparison to both BIP 141 and hardforks. It
offers no actual benefits beyond BIP 141 or hardforks, so seems irrational to
consider at face value. In fact, it fits much better the inaccurate criticisms
made by segwit detractors against BIP 141.
That being said, this proposal is very interesting in construction and is for
the most part technically sound. While ill-fit to merely making blocks larger,
it may be an ideal fit for fundamentally different block designs such as
Rootstock and MimbleWimble in absence of decentralised non-integrated
sidechains (extension blocks are fundamentally sidechains tied into Bitcoin
==Fundamental problem==
Extension blocks are a risk of creating two classes of "full nodes": those
which verify the full block (and are therefore truly full nodes), and those
which only verify the "base" block. However, because the extension is
consensus-critical, the latter are in fact not full nodes at all, and are left
insecure like pseudo-SPV (not even real SPV) nodes. This technical nature is
of course true of a softfork as well, but softforks are intentionally designed
such that all nodes are capable of trivially upgrading, and there is no
expectation for anyone to run with pre-softfork rules.
In general, hardforks can provide the same benefits of an extension block, but
without the false expectation and pointless complexity.
==Other problems & questions==
These outpoints may not be spent inside the mempool (they must be redeemed
from the next resolution txid in reality).
This breaks the ability to spend unconfirmed funds in the same block (as is
required for CPFP).
The extension block's transaction count is not cryptographically committed-to
anywhere. (This is an outstanding bug in Bitcoin today, but impractical to
exploit in practice; however, exploiting it in an extension block may not be
as impractical, and it should be fixed given the opportunity.)
The merkle root is to be calculated as a merkle tree with all extension
block txids and wtxids as the leaves.
This needs to elaborate how the merkle tree is constructed. Are all the txids
followed by all the wtxids (tx hashes)? Are they alternated? Are txid and
wtxid trees built independently and merged at the tip?
Output script code aside from witness programs, p2pkh or p2sh is considered
invalid in extension blocks.
Why? This prevents extblock users from sending to bare multisig or other
various possible destinations. (While static address forms do not exist for
other types, they can all be used by the payment protocol.)
Additionally, this forbids datacarrier (OP_RETURN), and forces spam to create
unprovably-unspendable UTXOs. Is that intentional?
The maximum extension size should be intentionally high.
This has the same "attacks can do more damage than ordinary benefit" issue as
BIP141, but even more extreme since it is planned to be used for future size
Witness key hash v0 shall be worth 1 point, multiplied by a factor of 8.
What is a "point"? What does it mean multiplied by a factor of 8? Why not just
say "8 points"?
Witness script hash v0 shall be worth the number of accurately counted
sigops in the redeem script, multiplied by a factor of 8.
Please define "accurately counted" here. Is this using BIP16 static counting,
or accurately counting sigops during execution?
To reduce the chance of having redeem scripts which simply allow for garbage
data in the witness vector, every 73 bytes in the serialized witness vector is
worth 1 additional point.
Is the size rounded up or down? If down, 72-byte scripts will carry 0
==Trivial & process==
BIPs must be in MediaWiki format, not Markdown. They should be submitted for
discussion to the bitcoin-dev mailing list, not social media and news.
Layer: Consensus (soft-fork)
Extension blocks are more of a hard-fork IMO.
License: Public Domain
BIPs may not be "public domain" due to non-recognition in some jurisdictions.
Can you agree on one or more of these?


This specification defines a method of increasing bitcoin transaction
throughput without altering any existing consensus rules.
This is inaccurate. Even softforks alter consensus rules.


Bitcoin retargetting ensures that the time in between mined blocks will be
roughly 10 minutes. It is not possible to change this rule. There has been
great debate regarding other ways of increasing transaction throughput, with
no proposed consensus-layer solutions that have proven themselves to be
particularly safe.
Block time seems entirely unrelated to this spec. Motivation is unclear.
Extension blocks leverage several features of BIP141, BIP143, and BIP144 for
transaction opt-in, serialization, verification, and network services, and as
such, extension block activation entails BIP141 activation.
As stated in the next paragraph, the rules in BIP 141 are fundamentally
incompatible with this one, so saying BIP 141 is activated is confusingly
This specification should be considered an extension and modification to
these BIPs. Extension blocks are not compatible with BIP141 in its current
form, and will require a few minor additional rules.
Extension blocks should be compatible with BIP 141, there doesn’t appear to be
any justification for not making them compatible.
This specification prescribes a way of fooling non-upgraded nodes into
believing the existing UTXO set is still behaving as they would expect.
The UTXO set behaves fundamentally different to old nodes with this proposal,
albeit in a mostly compatible manner.
Note that canonical blocks containing entering outputs MUST contain an
extension block commitment (all zeroes if nothing is present in the extension
Please explain why in Rationale.
Coinbase outputs MUST NOT contain witness programs, as they cannot be
sweeped by the resolution transaction due to previously existing consensus
Seems like an annoying technical debt. I wonder if it can be avoided.
The genesis resolution transaction MAY also include a 1-100 byte pushdata in
the first input script, allowing the miner of the genesis resolution to add a
special message. The pushdata MUST be castable to a true boolean.
Why? Unlike the coinbase, this seems to create additional technical debt with
no apparent purpose. Better to just have a consensus rule every input must be
The resolution transaction's version MUST be set to the uint32 max (`232 -
Transaction versions are signed, so I assume this is actually simply -1.
(While signed transaction versions seemed silly to me, using it for special
cases like this actually makes sense.)

Exiting the extension block

Should specify that spending such an exit must use the resolution txid, not
the extblock's txid.
On the policy layer, transaction fees may be calculated by transaction cost
as well as additional size/legacy-sigops added to the canonical block due to
entering or exiting outputs.
BIPs should not specify policy at all. Perhaps prefix "For the avoidance of
doubt:" to be clear that miners may perform any fee logic they like.
Transactions within the extended transaction vector MAY include a witness
vector using BIP141 transaction serialization.
Since extblock transactions are all required to be segwit, why wouldn't this
be mandatory?
consensus rule.
Note this makes adoption slower: wallets cannot use the extblock until the
economy has updated to support segwit-native addresses.
To reduce the chance of having redeem scripts which simply allow for garbage
data in the witness vector, every 73 bytes in the serialized witness vector is
worth 1 additional point.
Please explain why 73 bytes in Rationale.
This leaves room for 7 future soft-fork upgrades to relax DoS limits.
How so? Please explain.
A consensus dust threshold is now enforced within the extension block.
If the second highest transaction version bit (30th bit) is set to to 1
within an extension block transaction, an extra 700-bytes is reserved on the
transaction space used up in the block.
Why wouldn't users set this on all transactions?
default_witness_commitment has been renamed to
default_extension_commitment and includes the extension block commitment
default_witness_commitment was never part of the GBT spec. At least describe
what this new key is.
Should be just extblk if backward compatibility is supported (and !extblk
when not).
The "deactivation" deployment'...[message truncated here by reddit bot]...
submitted by dev_list_bot to bitcoin_devlist [link] [comments]

This is what I think is happening to the huge backlog...

I know many of you are very frustrated with the backlog situation and unconfirmed transactions for days.
After poking around and trying to understand the mechanics of bitcoin, I think I have an idea what is actually happening.
You must first understand that bitcoin transactions are made up of inputs and outputs. To construct a new transaction, a bitcoin client references unspent transaction outputs (UTXO) from previous transactions that the sender has received as new inputs. These UTXOs should come from confirmation transactions. Technically, a bitcoin client should not construct a new transaction using UTXOs from unconfirmed transactions.
Let's say A wants to send 5BTC to B. A previously received 10BTC from a confirmed transaction and this amount is unspent. Let's ignore transaction fees for now. The constructed transaction will be something like:
Transaction X:
INPUT: 10BTC (UTXO from confirmed Tx)
OUTPUT (to B as payment): 5BTC
OUTPUT (to A as change): 5BTC
Strictly speaking, until this transaction goes out and gets mined and confirmed, the 5BTC change that A receives back should not be spendable. A second transaction Y should not be constructed using this 5BTC change.
However, the Bitcoin-QT client allows it (see ref.), because it is in control of its own input sources. Even if this transaction X fails, A will still possess 10BTC.
So what happens is, Transaction X gets broadcasted onto the network. The bitcoin client immediately constructs another transaction. Let's say A wants to send 2BTC to C:
Transaction Y:
INPUT: 5BTC (change from Transaction X)
OUTPUT (to C as payment): 2BTC
OUTPUT (to A as change): 3BTC
The expected change was used to create new transactions as spendable input. And it keeps cascading.
Suppose for the 3rd transaction, A wants to send 1BTC to D immediately:
Transaction Z:
INPUT: 3BTC (change from Transaction Y)
OUTPUT (to D as payment): 1BTC
OUTPUT (to A as change): 2BTC
Transaction Z is the transaction that you are waiting for. It is unconfirmed. In fact, it was not even broadcasted onto the network, because the network nodes would reject this transaction. Why? Because its input (3BTC) comes from an unconfirmed transaction (Y).
You go check Transaction Y. It could not propagate through the network because it is using an input (5BTC) that comes from an unconfirmed transaction (X).
You now backtrack to Transaction X. It might have successfully propagated through the network, now sitting in the mempool waiting to be picked up by miners. However, Transaction X has been assigned a super-low transaction fee. Let's say it's just 50 satoshis/byte.
50 sat/b will correspond to the yellow band in this graph. You can see the last time these transactions were seriously picked up were back on Dec 6th when nothing much higher was on top of it. Some of them were picked up on Dec 11, but then transactions with higher fees kept piling up on top of it.
So what's my point? It's not that transactions are not moving, but they are daisy-chained and seriously back logged. In my example above, most transactions coming out of Hashflare's hot wallet used a really low transaction fee, something like 50 sats/b. Because the change is used to pay for subsequent transactions, all of them become dependent on their previous transactions. Those latter transactions cannot even broadcast onto the bitcoin network because they get rejected because of invalid inputs. (This explains why only the explorer can see the transaction but not other explorers like FYI, is owned by the same company.)
Now, I think my transaction (and probably yours) are tens of thousands of transactions after the currently stuck one. Unless the bitcoin traffic comes back down to <50,000 unconfirmed transactions in the mempool, the currently stuck one with a low transaction fee will remain stuck for a long while. Then it means all subsequent transactions that depend on their previous inputs will be unconfirmed. So it is very unlikely that we will see our transactions go through in the near future. Right now, the unconfirmed transactions is still at ~109,000.
I also learned that there is a fee-bumping trick called CPFP (Child pays for parent). You can spend the UTXO of an unconfirmed transaction by including a much higher fee that can cover both the new transaction and the stuck unconfirmed transaction, and the miner will pick up both transactions and let the "child pay for the parent" and confirm both transactions. Unfortunately, this trick won't work here because it is probable that your transaction and my transaction are stuck not because of a low transaction fee, but because its input is dependent on an unconfirmed transaction. Only those who have a transaction that has confirmed inputs and the only reason for being stuck in the mempool is because of low transaction fees.... they can then play the CPFP trick to expedite the confirmation process.
Now this is what I think is happening, as far as I understand. If there are other folks who understand the bitcoin protocol more than I do, please correct me if I am wrong.
submitted by buno5san to hashflare [link] [comments]

Bitcoin Q&A: Nonces, mining, and quantum computing i want to share something special for you the biggest market BaseTools WATCH NOW !

Через обозреватель блоков и специализированных сервисов, предлагаемых некоторыми крипто ... From Bitcoin Wiki. Jump to: navigation, search. The fee required for a transaction to quickly confirm varies according to network conditions. Generally it floats around slowly, but sometimes it shoots up due to spam transactions or a series of randomly-slow blocks. In such cases, you may find that your incoming or outgoing transactions get stuck in an unconfirmed state for a long time. Wallets ... Dies hilft die Gebühren zu senken weil das Bitcoin-Netzwerk dadurch besser skaliert und bildet die Grundlage für sog. Second-Layer-Lösungen wie dem Lightning-Netzwerk. Gut. Akzeptabel. Vorsicht. Neutral. Kontrolle über Ihr Geld Diese Wallet gibt Ihnen volle Kontrolle über Ihre Bitcoins. Das bedeutet, dass kein Dritter Ihr Vermögen verlieren oder einfrieren kann. Sie sind aber selbst daf� The mining pool has the lowest share reject rate (0.15%) we've ever seen. Other pools have over 0.30% rejected shares. Furthermore, the pool has a super responsive and reliable support team. From Bitcoin Wiki. Jump to: navigation, search. Transaction expiration is a common myth/misconception. Once a Bitcoin transaction is created, it never automatically expires. In theory, a transaction could be created, get stuck at 0 confirmations for some years, and then all of a sudden confirm. Several wallets have the behavior of deleting outgoing transactions from their transaction list ...

[index] [17029] [51151] [859] [38824] [28776] [47129] [13567] [12585] [11886] [19100]

Bitcoin Q&A: Nonces, mining, and quantum computing

He is the author of two books: “Mastering Bitcoin,” published by O’Reilly Media and considered the best technical guide to bitcoin; “The Internet of Money,” a book about why bitcoin matters. How To Get Your Bitcoin Transaction Confirmed with CPFP - Duration: 7:15. m1xolyd1an Recommended for you. 7:15. UPGRADE YOUR PS4 SLIM!!