How Bitcoin Mining Works
Bitcoin transactions are mined (processed) by Miners, and Miners want to benefit from their work. By mining transactions with higher fees, they make more money. Some miners can decide to mine all transactions no matter the fee but they still must compete with every other financially motivated miner.
Why is it taking so long for my ...
Yes, there is a way to save a borked transmission. A restart of the wallet and some patience typically fixes the issue.
How to stop/reverse a Bitcoin transaction without confirmations:
Run bitcoind and with -zapwallettxes.
This makes the wallet "forget" any unconfirmed transactions, thus enabling you to reuse their inputs.
Create a new transaction to make ...
In the case that your fee is too low: Now that child-pays-for-parent has been merged, you(or any of the recipients of your unconfirmed transaction) could spend the Bitcoin received and the fee associated with that second transaction will help prioritize the confirmation of the original transaction.
This does require more fine grained control of which ...
Here is a guide for as many wallets as I could figure out how to perform an RBF with. This is adapted from my bitcointalk post: https://bitcointalk.org/index.php?topic=1802212.0
What is a "Stuck" transaction? How are they caused?
A "stuck" transaction is a transaction which has remained unconfirmed for period of time which either the receiver or the sender ...
The other answers cover most useful information already, I'd like to add one point though:
The fee estimation of most wallets has significantly improved since blocks have gotten full.
If you're running an outdated version, it's likely that it is doing a bad job of guessing the fee. That may cause you to either overpay or your transactions not getting ...
Two issues with Bitcoin's design
Scalability of "everyone checks everything"
Bitcoin is a gossip network:
P2P nodes connect mostly randomly to each other and pass-on new information to each other as they receive it. That way, information floods through the network quickly: each step further increases the nodes that were informed exponentially (...
When you create a transaction, your Bitcoin wallet broadcasts it to a few full nodes on the Bitcoin peer-to-peer network. Those full nodes quickly relay it to other full nodes, and it eventually ends up at the full nodes run by the sites you linked to. That's how those sites know the transaction exists.
The full nodes also relay the transaction to Bitcoin ...
If you are using Electrum, there is no equivalent to -zapwallettxes. The closest thing you can do is to restore your wallet from a seed. This will wipe your client of any unconfirmed transactions.
Then, you can resend the transaction with a higher fee.
For small amounts, like a cup of coffee, the double-spending risk is going to be negligible. If it's a person I know, I wouldn't mind receiving and accepting as valid a transaction with zero confirmations.
For shops that will start accepting bitcoin, a stronger security measure would be for them to have multiple bitcoin clients installed in multiple ...
Replace-by-fee (RBF) transactions all have a sequence number that is below MAX - 1. If the payment a merchant receives comes from a transaction that has such a sequence number, the merchant can either wait for the transaction to be included in a block, or ignore the payment altogether. Ignoring the payment is fraught with other complications, however, ...
The original design assumes a common behavior of processing the incoming transaction on FIFO basis. That means the first transaction received by a miner wins and all conflicting transactions received after it will be ignored (no matter if the first one is already confirmed or not).
While this standard behavior is beneficial for the Network as a whole, some "...
No, it does not lend you bitcoins but rather it spends the very same TX outputs that you have sent there. Thus, if your transaction turns out to be surpassed by another one (double spend), then also the transaction spending its output will be considered invalid.
It's like cutting a branch on a tree: all sub-branches will go down with the root one.
If using the wallet notify option in bitcoin.conf, you can get a notification any time a transaction occurs on the network that matches a bitcoin address in the wallet. To use this, of course, you'll have to keep Bitcoin-QT or bitcoind running at all times.
Once you have the transaction id, you'll have to look up ...
This transaction (e8c5...) will never confirm because its inputs have already been spent by transaction 93cc4fe50e6069dccb827f56636bb4cd20f9865dd4d7e3b7946bbbca97576e80, which currently has 9 confirmations.
There isn't any inherent need to cancel transaction e8c5; the network is never going to consider it valid. You might want to remove it from your wallet ...
What restrictions are placed on RBF in the deployed "opt-in RBF" variant?
BIP-125: Opt-in Full Replace-by-Fee (RBF) Signaling specifies how to declare transactions replaceable until they are confirmed in a block. Replaceability is indicated via the sequence number field which appears in each transaction input. A transaction is replaceable if at ...
The simplest protection is to not consider a payment to have been made to you until it receives some number of confirmations. The number can depend on the value of the payment. For small payments, one is probably sufficient. For large payments, some have decided to wait for as many as six confirmations.
Mining is the timestamp in Bitcoin, it allows for a decentralized system to achieve synchronized ordering of transactions with high probability. If a system for doing decentralized time sync existed there would be no need for mining blocks at all, you'd simply timestamp transactions as they arrived and call it a day.
No system for this exists, hence we use ...
Blockchain technology, at least without accepting central party that controls access to the chain, inherently has slow blocks, or strong centralization incentives.
The reason is that blocks need to propagate much faster than the block interval time. If they don't, miners who are further away from the majority of the hash power are put at a disadvantage.
I think David ilustrated very well how things works, but I feel your question was not fully answered since you asked about time. So I will try to complete the answer above.
As David said in the previous answer, when you send a payment (or transaction), somethings happen at first: the sending of the transactions to one or few nodes, the broadcast of that ...
Note: In the 2017 fee event, accelerators were widely used, but they seem to be rather expensive today in 2020. YMMV.
There are some services that take out-of-band requests to prioritize transactions that call themselves "transaction accelerators".
E.g. viabtc.com allocates part of their block to bumping stuck transactions:
It has become trivial to double-spend; do not accept zero-confirmation transactions!*
Accepting zero-confirmation transactions today is not safe: Especially, with the full blocks of late, it is almost trivial to double-spend.
Only accepting the first seen transaction for the same inputs and discarding double-spending transactions had been a policy that ...
If you send BTC, your transaction will be broadcasted to the bitcoin P2P network. It is very unlikely that the transaction fails, if the receiver was notified, because then probably many miners already have the transaction and it is confirmed with the next mined block (that's the reason for the 10 minutes, because each 10 minutes a new block is mined). The ...
There's many ways to get your transaction confirmed.
push your transaction
If I had seen Andrew's great reply earlier, I would probably spared myself from writing an explainer on Reddit, but now that I did I'll post it here as well, hoping that it might complement this thread, as it is targeted more at beginner level folks.
In the last days we have been experiencing a sharp rise in price, which is historically correlated with many ...
Estrella (Humble Bundle) Jun 23, 15:46
Thanks for writing in to Humble Bundle Support!
Unfortunately, Bitcoin has been disabled for the Humble Borderlands
Bundle. The individual payment options made available for a given
bundle are determined when we finalize contracts with our development
partners. In this case, it ...
Let us firstly divide the stages of the transaction into 2 major categories for better understanding.
Stage 1: Initiation of the transaction (Mempool)
In this stage, ALICE (sender) broadcasts a transaction she made to BOB (receiver). This transactional detail is sent in the Mempool along with the specified feed that ALICE (or some mediating platform) is ...
In short, no. You can tell the customer whatever you want on your webpage, at your point of sale, or in the memo field of a BIP70 invoice---but once the transaction has been sent to the network, there's no way for the customer to take it back. (Except for double spending, but that's discouraged.)
In the long-term, miners will likely change their ...
Should I be worried of such blockchain reorganizations when accepting n-confirmation transactions?
Forks do occur quite frequently, and if you're only requiring a single confirmation the counterparty will have the opportunity to double spend each time these orphaned blocks occur.
Am I right to say that any successful 6-block fork would open the risk of ...
The bottom line is that there is no way for you to safely accept zero confirmation transactions.
What happens if a miner (which has transaction A in his main memory) gets the conflicting transaction B?
Depends on what software the miner is running and how they have configured it.
Some nodes will reject it.
Some nodes will accept it.
Some nodes will ...
There are situations where accepting a 0-confirmation transaction is low risk, but that's certainly not generally advisable. Double spending a 0-conf transaction is very easy to do with high success rates. So yes, in general waiting for a few confirmations is required.
But Lightning Network is being developed right now by several parties, which is a layer ...