TIP-037 Gas Reimbursements for v2 Node Operators

TIP-037 Gas Reimbursements for v2 Node Operators :fuelpump:

Vote Type:

Token holder DAO snapshot, 5 day vote window

DAO Elected Representative Sponsor:

Vict0r, David

Overview:

This is a proposal for the Threshold DAO Treasury Guild to reimburse tBTC v2 node operators for gas costs their clients incur when sending necessary transactions to Ethereum.

Milestones and Deadlines:

Gas reimbursements start when minting goes live. From there it is an indefinite expense.

Who is Involved:

Threshold Treasury Guild, tBTC v2 Node Operators

Why:

The goal of this proposal is to avoid “dishonest” tBTC v2 operators modifying their clients to maximize returns.

Dishonest operators modifying clients can slow down the tBTC v2 network.

Detailed Summary:

tBTC v2 operators run off-chain clients. Off-chain clients occasionally send transactions to Ethereum. The client needs to pay ETH in gas for the transactions.

There is no efficient way to force someone to send that transaction. This means, a situation could emerge where operators modify clients to not send any transactions in order to not spend any ETH on gas as a method of returns optimization. This would slow down the network.

Expected Cost:

This is not expected to be a major cost for the Threshold DAO if passed.

The expected cost for this proposal is variable because it is based on tBTC v2 network usage and Ethereum gas rates.

This table gives an estimate of cost by function call frequency and by gas unit cost:

For more information on the purpose of these five transactions please refer to the tBTC technical docs here.

The expected cost for this proposal is between .197e and 1.97e per week.

Reimbursement Mechanism:

Reimbursement is automated through a Reimbursement Pool. More information on the Reimbursement Pool is located below.

keep-core/ReimbursementPool.sol at main · keep-network/keep-core · GitHub.

Tx Details (If required):

N/A

Additional Info (Optional):

This proposal was originally discussed at a Threshold Treasury Guild meeting. From there updates were made based on group feedback. Next it was discussed at a Threshold DAO contributor sync.

4 Likes

Hey Will, thanks for this. I think this is in principle a reasonable cost, especially considering gas is not as expensive as in previous months.

(This message previously included some questions that are better scoped outside this proposal discussion. I moved these questions here: tBTC cost analysis)

3 Likes

I agree this cost is reasonable and it seems to be a good mechanism to avoid operators gaming the system to the detriment of all.

1 Like

Hey team,

I’m going to have to vote no on this proposal for now.
Myself and several members of the Treasury Guild cannot support this as a carte blanche reimbursement. Could you re-submit the proposal with a limitation on the amount reimbursed per month and also a methodology for terminating the subsidy program?

Tagging @Will @mhluongo @dougvk @beaushinkle @pdyraga for visibility.

:wave: @jakelynch.

The timing is bad but I appreciate your concerns. Expenses aren’t fun to talk about but we need to do it. We can break it down into two points:

  1. A limit on gas reimbursements to node operators
  2. A time frame on this expense

Let’s take a step back to look at this generally before zooming back in on specific points.

We worked hard to move away from individual entities (Keep, NuCypher, Threshold Community) and towards everyone contributing to one unified Threshold DAO. The merge and this new organizational dynamic even mark a first for crypto.

The Threshold DAO owns the Threshold network. tBTC v2 is now a part of the Threshold network. This means the Threshold DAO owns tBTC v2.

One of the primary goals across the Threshold DAO is to ensure a successful launch of tBTC v2.

I will address the elephant in the room or implications of the alternative which is that Keep should pay for this expense. If we continue to classify tBTC v2 costs as a “Threshold DAO cost” or a “Keep cost” we are missing the point of the larger Threshold DAO dynamic and are not all rowing in the same direction. We work against ourselves by creating faux negotiation / conditional scenarios against units of the same team. When we do that we distract ourselves from a primary goal across the Threshold DAO of ensuring the success of tBTC v2.

With that said we can zoom in on the specifics of this proposal now. This proposal is a clear value add in obtaining our primary goal to ensure the success of tBTC v2. Why?

  1. We eliminate an optimal condition for tBTC v2 node operators to modify their clients to dodge gas costs. We avoid a scenario in which there is an incentive to slow down our network.

  2. We lower the cost of node operation (which is already expensive for v2) for individual node operators. Individuals have already expressed concerns about gas costs in Discord. This proposal eliminates those concerns and lowers the breakeven economic point of setting up a node. This should result in more nodes on the network which is also a win for tBTC v2.

It does not make sense to put self-inflicted caps on this value by adding a monthly limit to gas reimbursements or by putting a timeframe on the proposal. That action hurts the network and hurts node operators. Furthermore, as far as I know - the indefinite expense is a result of technical considerations of v2 and thus does not end organically cc @pdyraga.

It is pretty late in the process to ask for a new proposal. This proposal is already half way through snapshot. We made a point to make this proposal visible and asked for feedback to make revisions on this for a couple of weeks leading up to this point.

With that said we should continue the discussion. I will hold an open office hours session in Discord tomorrow at 10am ET to discuss this proposal transparently with anyone who has yet to vote but shares similar concerns to Jake.

In addition, this is a good segway into a deeper conversation into what is left for overall tBTC v2 expenses, a point brought up by @davidnunez. We are thinking hard about that and will share more information with the group @pdyraga. It is important to discuss yet this proposal should not be blocked by that conversation. It’s two separate issues.

2 Likes

Sorry if this is how it came off - this is not what I was implicating.

The points I’m making are much simpler:

  • The treasury cannot guarantee that it will be able to satisfy an unknown cost
  • If the scope of the proposal is narrowed (e.g. 10/20/100 ETH per month for X months) then we can include that in our projections and plan for it.
  • If in a given month the costs exceed the budget, we would not ask Keep to pay for it. Rather, the DAO and treasury guild would have to consider whether the budget should be expanded and if topping it up is prudent.
  • If the DAO / Treasury Guild determines that it is not, the responsibility would be passed to the stakers. This would be a risk passed to the stakers, rather than Keep, that I’m confident the DAO would not take lightly.

I will have to vote no on the snapshot in its current form and ask that it is reproposed to incorporate the above.

This would mean that the nodes selected for work, who wear the risk of being slashed would earn less than the nodes not selected for work.

The gas expenses have a rough ceiling due to the way that transactions are swept three times a day in either direction vs how the v1 relayer works.

The reimbursement expenses would be offset by the fees generated by the bridge which go to the treasury rather than the nodes.

I think having the type and frequency of the transactions that can be reimbursed makes sense, e.g. we probably don’t want to reimburse a rouge node that decides to go and request 1000 new wallets during chaos net.

1 Like

I think having the type and frequency of the transactions that can be reimbursed makes sense, e.g. we probably don’t want to reimburse a rouge node that decides to go and request 1000 new wallets during chaos net.

Only the transactions that are accepted by the bridge are reimbursed. Using this example, all request new wallet transactions that do not meet the requirements such as the time passed since the last wallet creation, the amount deposited in the current active wallet, are reverted and not reimbursed. There is a fixed set of transactions that are reimbursed and all of them have a set of requirements.

Worth mentioning, only the transactions that are purely bridge maintenance transactions are reimbursed. The transactions that affect only a single operator, such as join sortition pool, update sortition pool, are not. These have to be covered by the operator running a node.

Worth noting, the DAO may revisit the funding scheme after a couple of months once we have more data about the number of deposits, redemptions, and fees.

All that I’m asking is that we have an amount per epoch that is budgeted and in the event that the amount needed exceeds this we have add an additional layer of governance needed to increase the budget.

In the worst case scenario, where we haven’t planned for this, we can’t actually reimburse the nodes and the node maintainers lose faith in us. This IMO is far more of an existential risk than the alternative.