[Pre-BIP] Fee Accounts



Summary:

Jeremy, a Bitcoin developer, proposed a new way to handle transaction fees in Bitcoin. Currently, fees exist within transactions, which makes it difficult to write long-term smart contracts and perform fee bumping. Jeremy's proposal involves an account system as an extension block. The design includes defining a "fee account" output type that can receive deposits that are stored in a separate UTXO database. Fee accounts can sign two types of transactions: a fee amount and TXID or a withdraw amount, fee, and address. These transactions would be committed in an extension block merkle tree. The mempool logic would be updated to allow attaching account fee spends to transactions, with a restriction that accounts cannot spend more than their balance. This design is scalable because adding fees to a transaction does not require adding inputs or outputs and does not require tracking substantial amounts of new state. The proposal could also improve privacy by implementing something like Tornado.cash and allowing trustless mixing via miners or individuals.Jeremy points out that the proposal could be done as a federated network that bribes miners, but this approach means there is a centralizing layer interfering with normal mining. Overall, the proposal aims to clean up the fee paying semantics in Bitcoin for good.


Updated on: 2023-06-03T07:14:46.407915+00:00