A very controversial problem today in cryptocurrency is the idea of "blocksize", which has become unaddressed in the field over the past year. With concern growing over blockchain inflation and how well this technology will be able to scale, cryptocurrency Emercoin has taken a proactive approach and has granted CoinTelegraph exclusive access to their solution.
Every cryptocurrency can only spend the entire Unspent Transaction Output (UTXO) when making a transaction. When a wallet contains many past transactions and needs to make a new outgoing transaction (payment), the wallet will select the best subset of suitable UTXO's to generate the payment. A model of this creative logic is as follows:
Number of possible subsets is 2N, where N is the number of available UTXOs. Therefore, if the wallet contains more than ~20 UTXOs, it will be practically impossible to check all of them and find the optimal subset of UTXOs to use.
The Current Solution
Bitcoin and many other cryptocurrency wallets use a stochastic approach for selecting an optimal subset of UTXOs. In this algorithm, the wallet performs 1000 attempts at random UTXO selections. A subset with a minimal amount is then used to fit the output transaction. Afterwards, a payment transaction is generated with 2 outputs: A payment output and a change output. The probability of finding the optimal solution where the sum of UTXO subsets exactly matches the output value is extremely low. EmercoinCT r: 117 has estimated the probability to look like (approximately formula):
(Nfit * Nattempts) / (2N).
N is the number of UTXOs,
Nfit is the number of possible optimal transactions (without change),
Nattempts is 1000 for the current Bitcoin wallet code
A More Efficient Solution Is Needed
In the current implementation, there is a high probability that the optimal subset of UTXOCT r: 315 will be missed. As a result, an unnecessary second UTXO is generated and added into the transaction, increasing the size of the transaction. As the number of additional active UTXOs increases, so does the size of the underlying blockchain. This produces the dreaded blockchain inflation the industry is working so hard to find a solution for.
Additionally, this approach generates a huge volume of UTXOs with trivial values, also known as "gold sand" or "dust". In aggregation, these are considered a type of spam and are generally undesirable. With blockchain technology adoption increasing exponentially, the world is in need of a better method to address UTXOs.
The project is heavily dependent upon the use of dynamic programming. What is dynamic programming as used in this solution? Dynamic programming is a very powerful technique to solve a particular class of problems. It demands very elegant formulation of the approach and simple thinking and the coding part is very easy.
Emercoin looks for areas of opportunity within the industry and brings a forward thinking, proactive mindset towards blockchain development and innovation. Our most recent innovation is the Transaction Optimizer, which is an algorithm that selects the optimal subset of Unspent Transaction Outputs (UTXO) for a new outgoing transaction (payment).
If an exact UTXO subset exists for any given amount output, this subset will always be found by the Transaction Optimizer and utilized to complete a new transaction. The additional and unnecessary second UTXO is no longer being generated, reducing the amount of information being input into the transaction on the blockchain. The Optimizer uses a dynamic programming approach and requires:
O(V) memory and O(V*N) time, which is much more optimized than the current O(2N)
V is the value of the TX output.
The Optimizer can also efficiently utilize existing "gold sand" and "dust" transactions, further reducing the blockchain size and "cleaned up". The Transaction Optimizer code is open source, and available on the official Emercoin Github for analysis and use in other cryptocurrencies and blockchain platforms.
Oleg Khovayko, CTO of EmerCoin, told CoinTelegraph:
"This optimizer saves memory for blockchain. We estimated, BC memory saving about ~5..10%. Not so much, but it is free. and, of course, this will save network traffic, too.
Emercoin has been successfully using the Transaction Optimizer on the Emercoin blockchain now for several months. The results are impressive and have reduced the blockchain size due to the decrease in the size of all transactions. There is now a solution for Bitcoin and every other cryptocurrency in the World to use to combat blockchain inflation and we encourage all of our partners in the industry to adopt this free, revolutionary innovation.
“We are planning to expand the project toward the "real world" - create and provide services to help people out of coin cluster. We're working to unlock the real power of blockchain, and use it not for exchange "credit units" only, but for other applications, also.” said Khovayko.
For examples of Emercoin's Transaction Optimizer, please see the following transactions via theEmercoin Blockchain Explorer. Lastly, you can see a recent example of all optimized transactions on the Emercoin blockchain. Emercoin is surely saving blocksize slowing and in small sums, but it is free space that wouldn't have been there otherwise.