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.
翻译:Eceenum 上的自定义货币(ERC-20)非常受欢迎,但它们是主要货币以太的二等货币。 与主要货币相比,海关货币处理更为复杂和昂贵,因为其会计不是由原始分类账进行的,而是用用户定义的合同代码进行的。 此外,而且相当重要的是,交易费只能用以太尔支付。 在本文中,我们侧重于能够以自定义货币支付交易费。 我们通过允许短期负债与提供自定义货币以补偿这些负债的报价一起支付交易费的机制来实现这一点。 这使得块状生产者能够接受习惯货币,以交换它们处理的交易负债。 我们提出了正式的分类账规则,以便同时处理负债,同时提出用基调价支付交易费的概念。 我们还讨论了客户如何确定他们必须支付哪些费用。 我们还提出了Knapsack问题变式的解决方案,即阻止生产者在使用保费的情况下必须解决Knapsack问题,以优化其利润。