Zebpay, the leading bitcoin exchange in India, has had a rough time keeping up with customer transfers, with many complaining that their transactions are taking too long to confirm as well as attracting high fees. But the company has announced some good news, saying that it has implemented some solution-based measures to keep its users happy.
The Problem
Zebpay was previously charging 100 bits for transactions, but to offer a long-lasting solution and guarantee faster confirmations it has increased the fees to 200 bits. Due to congestion of the mempool, the company has continually been forced to pay additional fees from its own pockets, even when it charges its clients fees as high as 500 bits, to ensure that confirmation of transactions is faster and more reliable.
Zebpay uses multi-sig wallets, which means that their inputs require more signatures. Although more secure, the additional inputs increase the size of the transactions, which, in turn, increases the transaction fees.
A Multi-Pronged Solution
In order to lower Bitcoin transaction fees and help deliver faster confirmations, the engineering team at Zebpay began analyzing past data and mempool confirmations in an effort to come up with applicable solutions.
First on the table was optimizing input availability. Since the company cannot accurately predict the transaction amounts initiated by its users, they instead attempted to create an input greater than the total amount being withdrawn. After analyzing the data, however, Zebpay realized that while it wasn’t difficult to find single UTXOs (unspent transaction outputs) to satisfy smaller transfers, larger transfers required combining multiple UTXOs – sometimes a large number of them.
When a UTXO is used to satisfy a transaction, it is added to that transaction as an input. Since more inputs equal larger transactions and larger transactions equal higher transaction fees, Zebay ultimately decided to move to amount-based fixed fees. To determine what those fees should be, they took the total amount that they were paying in existing fees and divided them up into “slabs” and passed them on to their users proportionately.
Slab fees are fixed fees that, in this case, are determined by the transaction amount. Users transferring smaller amounts would be a lesser fee than those transferring larger amounts. The breakdown of Zebpay’s slab fee structure is shown below.
Another method that Zebpay implemented is batch transactions. Every five minutes, many smaller transactions are combined into one larger single transaction and processed. Even though the batched transaction incurs a large transaction fee, it has fewer inputs than the combined inputs of all of the individual smaller transactions had they been sent separately, which means that Zebpay actually saves money by processing transactions this way.
To help avoid a potential backlog of transactions, Zebpay keeps an eye on mempools so that when congestion is at a minimum, it can consolidate all of the UTXOs to better manage its wallet with fewer UTXOs – kind of like defragging your hard drive.
Zebpay also implemented Segwit on its hot wallet, which prioritizes their transactions in the mempool and results in lower fees than those of non-Segwit transactions.
As a result of their hard work, and crediting Jamison Lopp and Andreas Antonopoulos for their assistance, Zebpay has ensured that its users’ transactions get confirmed within 2 blocks at a low fee.
Do you think other exchanges will implement solutions similar to that of Zebpay’s? Will faster transactions and lower fees see the exchange company attract more confidence and trust? Let’s hear your thoughts in the comments below.
Images courtesy of Zebpay, Shutterstock, Pixabay