369 karma · joined February 8, 2021
Yes and No. We saw what happened to very large mining farms that got wiped out in a matter of weeks as mining was cracked down on in china. Large ETH stakers wont be forced to liquidate their stake in the event they get kicked out of their current jurisdiction. In short, uncertainty about the future of crypto regulation makes it easier to be a staker than it does a miner.
I would like to provide some context to people unfamiliar with how the bitcoin mempool works and what you can do to avoid getting your transaction stuck. The mempool is all of the transactions that have ben gossiped about but have not yet been mined (finalized) into a block. Each node has their own mempool. You can see [1] that there are roughly 6 hrs worth of transactions in this node's mempool (everyone should have a similar mempool, though not identical). So Binance's claims of network congestion are "true" on the surface, however there are a few interesting points that lead me to believe that they are acting fishy.
1. Why does Binance not have RBF enabled on their withdrawal transactions?
RBF mean "replace by fee" and it's a way you can mark an unconfirmed transaction as replaceable by a similar transaction that pays higher fees. This is extremely useful when you need to ram a transaction into a block by increasing the fee you're willing to pay miners to mine your transaction. I highly recommend you only use a wallet that allows you to use RBF & to have RBF enabled by default. Of course Binance knows about RBF so why aren't they using it?
2. Why does Binance not use 'Child Pays for Parent'?
CPFP is a little hard to understand if you don't understand that bitcoin transactions are linked together in a graph structure. In short, a bitcoin transaction is a data structure that points to previous transactions to spend. CPFP is when you make a new transaction that spends from your previous unconfirmed transaction (un-mined transaction in the mempool) and over pay in fees to cover the cost of both transactions. This incentivizes miners to include BOTH transaction in the same block. Once again Binance should be doing this. An ideal way to do this would be to batch a bunch of customer withdrawals in a single transaction. This would save a lot on network fees. They would make this big transaction payout a large amount back to themselves so that they could CPFP this batched withdrawal transaction.3. Binance has their own mining pool with 11% of the network hash[2]. Binance could easily prioritize their "stuck" withdrawal transaction in their pool's blocks. Of course if they didn't subsidize their miners for this they risk them switching to another pool. One would think that halting withdrawals is an existential risk to their business so temporarily paying their miners to ram transactions through should be worth it?
So what is the take away from all of this? There are numerous tools at Binance's disposal. Why did they not work/why are they not using them? My hunch is that they don't have all of their ducks in a row & are running a fractional reserve. (this is pure speculation on my part) They likely had a lot of (your) bitcoin tied up in "risk-free" interest accounts (Celsius) and are scrambling to get ahold of bitcoin to give back to customers.
[1] https://mempool.space/ [2] https://mempool.space/mining/pool/binancepool
So Binance's claims of network congestion are "true" on the surface, however there are a few interesting points that lead me to believe that they are acting fishy.
1. Why does Binance not have RBF enabled on their withdrawal transactions?
RBF mean "replace by fee" and it's a way you can mark an unconfirmed transaction as replaceable by a similar transaction that pays higher fees. This is extremely useful when you need to ram a transaction into a block by increasing the fee you're willing to pay miners to mine your transaction. I highly recommend you only use a wallet that allows you to use RBF & to have RBF enabled by default. Of course Binance knows about RBF so why aren't they using it?
2. Why does Binance not use 'Child Pays for Parent'? CPFP is a little hard to understand if you don't understand that bitcoin transactions are linked together in a graph structure. In short, a bitcoin transaction is a data structure that points to previous transactions to spend. CPFP is when you make a new transaction that spends from your previous unconfirmed transaction (un-mined transaction in the mempool) and over pay in fees to cover the cost of both transactions. This incentivizes miners to include BOTH transaction in the same block. Once again Binance should be doing this. An ideal way to do this would be to batch a bunch of customer withdrawals in a single transaction. This would save a lot on network fees. They would make this big transaction payout a *large* amount back to themselves so that they could CPFP this batched withdrawal transaction.
3. Binance has their own mining pool with 11% of the network hash[2]. Binance could easily prioritize their "stuck" withdrawal transaction in their pool's blocks. Of course if they didn't subsidize their miners for this they risk them switching to another pool. One would think that halting withdrawals is an existential risk to their business so temporarily paying their miners to ram transactions through should be worth it?
So what is the take away from all of this?There are numerous tools at Binance's disposal. Why did they not work/why are they not using them? My hunch is that they don't have all of their ducks in a row & are running a fractional reserve. (this is pure speculation on my part) They likely had a lot of (your) bitcoin tied up in "risk-free" interest accounts (Celsius) and are scrambling to get ahold of bitcoin to give back to customers.
[1] https://mempool.space/ [2] https://mempool.space/mining/pool/binancepool
While the 2nd part of your statement is on the surface true, it misses the point. You can gets hundreds of thousands of transactions out of a channel without ever closing it. Batching on-chain transactions is now easier than ever so you can close and rebalance hundreds of channels cheaply. You can very easily do automatic swaps between onchain and lightning channel balances. You can be the counter party to either side of these transactions depending on if you need inbound or outbound channel liquidity. These transactions can also be easily batched allowing you to unlock liquidity where you need it for a fraction of the price of a single spend bitcoin transaction.
There is still a long way to go to scale bitcoin to billions of users while keeping the blockchain accessible to all.
For further interesting scaling solutions in the works checkout.
- cross input signature aggregation: A way to super charge batching. - channel factories: a way for a lightning channel to be trustlessly owned by multiple parties. - MuSig: multisig that is indistinguishable from a single signer transaction. - federated chaumian mints: a way to do privacy preserving custodial wallets. - drive chains/space chains: a bitcoin merged mined side chain. - eltoo: new lightning channel upgrade that cuts the space complexity of channels from O(n) to O(1). - covenants congestion control: allows a sender to commit to spend while the receiver gets to choose when to receiver. Exchange withdrawals during high demand times while a customer can wait for a lower demand time to fully receive the coins.
Happy to answer any questions on these.
Don’t believe everything you hear on the internet. The vast majority of these articles lead to Mora et al which has been thoroughly debunked.
The point of (good) cryptocurrencies is that they require real energy to coerce. Because of this I’ve felt safe keeping savings & transacting in bitcoin for years, I’m sorry that you don’t see that as valuable. Good luck with your ban, it isn’t smart.
So you directly compare a proven 13 year old blockchain moving billions of dollars to a centralized blockchain that goes offline monthly?
> I'm a noob at all of this and reserve for myself the right to flip-flop in the future :-)
Then refrain from having strong opinions like this:
> in my opinion fails to meet its original goals and has had ample chance to prove its worth, but has largely failed to do so.
For example you could draw parallels between a gold standard and a bitcoin standard and highlight why a bitcoin standard makes more sense than a gold standard if fiat currencies collapse.
One of the odd benefits of this is that old forum posts and discussions have a good chance of being relevant.
Although I will say lots of progress has been made in p2p message propagation (since this isn’t directly a part of consensus) which could definitely prevent orphan blocks, so you may be on to something in this case.
https://bitcoin.stackexchange.com/questions/2170/how-often-f...
Not in bitcoin land, orphaned blocks happen a few times a day: https://bitcoin.stackexchange.com/questions/2170/how-often-f...
If you're willing to tolerate this risk then by all means go for it.
(I'm with you I think steam should be able to tolerate this risk.)
Steam back in the day used to accept 0 confirmation bitcoin spends. This means that the transaction has been gossiped on the bitcoin p2p network but had not yet been mined into a block and thus had minimal finality guarantees. Steam could see that they were going to receive a bitcoin payment (when the transaction was mined into a block) and would credit the users account instantly for a better purchase UX.
Turns out anyone with some deeper understanding of bitcoin could construct another transaction spending the same bitcoin back to themselves before their original transaction was ever put in a block. The bitcoin community moved away from accepting '0 conf' transactions pretty much everywhere because of this reason.
In fact the high fee era (2016-2018) saw many wallets incorporating this "double spend" feature into their wallets. This is known as RBF, "replace by fee" and is really useful when you need to bump your transaction up the queue. You replace your old transaction, that is waiting to be mined, with a new one that offers a higher fee to incentivize miners to add it to a new block.
I think its rather unfortunate that 0 conf transactions were written off so quickly. There are many context where a 0conf tx makes sense, mostly IRL. But, if you are running a business online and you don't trust you customers you should wait 3-6 blocks after the transaction has been mined before delivering your goods.