CodeChain transaction fees

Kwang Yul Seo
CodeChain
Published in
3 min readApr 16, 2019

There has been continuous debate over transaction fees. There are two schools of thoughts on who should pay the transaction fees.

The first school claims that users should pay the transaction fees every time they interact with blockchain. Ethereum is a good example; users have to pay upfront transaction fees whenever they have to use the network. Players of the sensational game CryptoKitties must pay transaction fees whenever they trade or breed their cats on the Ethereum network.

The second claims that accounts should be rate-limited based on their balance. If you own 1/1000 of the total stake, then you will always have access to 1/1000th of the total network bandwidth and storage. This is how EOS achieves the “no transaction fees” for end users. In this case, DApp developers pay transaction fees on behalf of the users by the capital lockup.

Our team agrees to EOS’s idea in that interacting with the blockchain must be free; otherwise, users of a platform that needs continuous interactions will suffer a big pain in the neck. Imagine yourself paying transaction fees every time you click a “Like” button on a social media dapp!

However, the ownership model of EOS is not only hard to implement, or I’d say rather impossible, but also does not address efficiency issues. What if you own only 10 EOS out of 1 billion EOS tokens? How does an EOS block producer schedule your transactions and rate limit them? Are modern operating systems and VMs capable of scheduling them to this precision? EOS’s so-called “Subject Best Effort Scheduling” deliberately avoids specifying how to achieve this.

It does not make economic sense either. Vitalik already pointed out this problem in his critics on EOS. If block producers have the power to choose from a list of transactions which ones to include in the next block, transaction senders naturally have the incentive to bribe block producers.

So what do we need? A blockchain network has to let application providers pay for the transaction fees in lieu of their users if they wish. This is the most popular cost model used by most Internet services and games and solves the real pain of current Ethereum Dapps which enforce their users to pay transaction fees whenever they interact with the blockchain.

In CodeChain, anyone who signs the transaction pays the transaction fee. Users create transactions and send them to the gateway which is run by their application provider. The gateway pays the transaction fees by signing the transaction. It is also possible for a user to sign the transaction by herself if she is willing to pay for the transaction fee.

In conclusion, CodeChain achieves no transaction fees for end users and no capital lockup cost for application providers. This model allows application providers who start small services to make use of our blockchain technology without needing big amount of capital lockup as in the case of EOS. It also allows application providers to provide a service without making their users suffer from paying fees every time they input an action.

Check out the source code at our github repo. If you would like to chat with the CodeChain developers’ community, join our gitter channel.

--

--