Problems with Coinbase Withdrawal Fees
Jameson was shocked when he saw the withdrawal fee of $60, which encouraged him to dig deeper on the matter.
Coinbase, one of the largest cryptocurrency exchanges, has recently come under scrutiny for its handling of Bitcoin withdrawal fees. A detailed exploration by Cypherpunk Jameson Lopp highlights questionable fee estimation practices, suggesting that users might be paying significantly more than necessary when withdrawing their funds.
In a recent experiment, Jameson Lopp sought to test the security of Bitcoin by funding a wallet with a small amount of BTC purchased from Coinbase. Lopp, wishing to maintain privacy, chose to buy $100 worth of Bitcoin through Coinbase, only to be hit by an unexpectedly high withdrawal fee.
This fee was particularly surprising given that on-chain fees had been relatively low, suggesting a discrepancy between the fee charged by Coinbase and the actual network conditions.
The Fee Estimation Problem
The $60 fee appears to have been influenced by a temporary spike in network activity. According to Lopp, this spike was caused by the launch of a new service that increased the demand for deposit transactions. Despite this being a brief event, it led to Bitcoin Core’s fee estimates jumping from approximately 4 satoshis per virtual byte (vb) to over 500 satoshis per vb. Coinbase, using these estimates, applied a high withdrawal fee that no longer reflected the actual network state when Lopp initiated his transaction.
“There had been an abnormal spike in network activity about 3 hours prior due to some new service launching and creating demand for deposit transactions. It only lasted for a few blocks.” – Jameson Lopp
Demand caused Bitcoin Core's fee estimates to shoot up from ~4 satoshis / vb to 500+ satoshis / vb - Source
Issues with Batching and Fee Distribution
Further investigation into Coinbase’s withdrawal process revealed that the exchange uses transaction batching, a common practice intended to save on-chain fees. In Lopp’s case, the withdrawal transaction included nine outputs—one likely being a change back to Coinbase, and the other eight representing customer withdrawals. Lopp calculated that he was paying for 39% of the total transaction fee, raising questions about how Coinbase distributes fees among users.
“Why am I paying 39% of a fee that is being split by 8 people?” – Jameson Lopp
Lopp’s analysis suggests that if all eight customers were charged the same fee he was, Coinbase could potentially pocket a substantial profit from these batch withdrawals. In this case, Coinbase might have earned around 0.0059236 BTC ($350 USD) from the single transaction. Such practices raise concerns about transparency and fairness in fee distribution.
“My 'fair share' of the batch transaction fee was less than a third of what I was charged.” – Jameson Lopp
Recommendations for Improvement
Lopp’s analysis makes it clear that Coinbase—and other exchanges—need to revisit their fee estimation and withdrawal practices. To avoid similar issues in the future, Lopp proposes several improvements:
Enhanced Fee Estimation Tools: Moving away from Bitcoin Core’s sometimes outdated estimates, Coinbase should develop an in-house fee estimation tool that takes into account real-time mempool data. This approach would provide more accurate and relevant fee assessments.
User Control Over Fees: Allowing users to select their withdrawal fee and transaction priority would prevent overcharging and encourage a more user-centric approach to fee management.
“It’s important for the health of the block space market that fees are chosen by humans rather than purely by algorithms.” – Jameson Lopp
Fee Warnings: Introducing a feature to alert users when withdrawal fees exceed a certain percentage of the transaction amount would ensure that users are aware of significant charges and can make informed decisions.
Fair Fee Sharing: Ensuring that fees are distributed fairly among users in batch transactions would enhance transparency. Coinbase could implement a refund system for overcharged fees, increasing user trust and satisfaction.
“Do a better job ensuring that users are charged for the on-chain fees that are actually paid.” – Jameson Lopp
Dynamic Fee Optimization: By initially setting lower fees based on current mempool conditions and adjusting them as needed, Coinbase could optimize transaction costs without compromising on confirmation times.
While Lopp’s analysis may appear to single out Coinbase, the fee estimation challenges he describes are not unique to this platform. Similar practices are observed across other cryptocurrency exchanges, indicating a broader issue within the industry. As Lopp points out, improving fee estimation and withdrawal practices is crucial for maintaining user trust and ensuring the health of the Bitcoin ecosystem.
“We can do better than these naïve solutions that don't handle network volatility well.” – Jameson Lopp