Babel Fees via Limited Liabilities
This addresses a limitation for Ethereum users and developers who rely on custom currencies, though it is an incremental improvement to the existing fee system.
The paper tackles the problem that Ethereum transaction fees can only be paid in Ether, not custom currencies, by introducing a mechanism using short-term liabilities and compensation offers to enable fee payment in custom currencies. It presents formal ledger rules for babel fees and a solution for block producers to optimize profits when accepting such fees.
Custom currencies (ERC-20) on Ethereum are wildly popular, but they are second class to the primary currency Ether. Custom currencies are more complex and more expensive to handle than the primary currency as their accounting is not natively performed by the underlying ledger, but instead in user-defined contract code. Furthermore, and quite importantly, transaction fees can only be paid in Ether. In this paper, we focus on being able to pay transaction fees in custom currencies. We achieve this by way of a mechanism permitting short term liabilities to pay transaction fees in conjunction with offers of custom currencies to compensate for those liabilities. This enables block producers to accept custom currencies in exchange for settling liabilities of transactions that they process. We present formal ledger rules to handle liabilities together with the concept of babel fees to pay transaction fees in custom currencies. We also discuss how clients can determine what fees they have to pay, and we present a solution to the knapsack problem variant that block producers have to solve in the presence of babel fees to optimise their profits.