From 9aa7e7510cd438b1d407b01fcee940ef844576d2 Mon Sep 17 00:00:00 2001 From: Olaoluwa Osuntokun Date: Thu, 27 Jun 2024 17:02:12 -0700 Subject: [PATCH] docs/alloy-model: add linear fee function model In this commit, we add a model for the linear fee function we use in lnd for fee bumping. This models can be used to reproduce the issue reported in https://github.com/lightningnetwork/lnd/issues/8741, and can also be shown that that bug fix resolves a counter example found by the model checker. --- docs/alloy-models/README.md | 2 +- .../alloy-models/linear-fee-function/READM.md | 64 ++++ .../counter-example-show.png | Bin 0 -> 135569 bytes .../linear-fee-function/counter-example.png | Bin 0 -> 19184 bytes .../linear-fee-function/fixed-model.png | Bin 0 -> 18088 bytes .../linear-fee-function/linear-fee.als | 311 ++++++++++++++++++ 6 files changed, 376 insertions(+), 1 deletion(-) create mode 100644 docs/alloy-models/linear-fee-function/READM.md create mode 100644 docs/alloy-models/linear-fee-function/counter-example-show.png create mode 100644 docs/alloy-models/linear-fee-function/counter-example.png create mode 100644 docs/alloy-models/linear-fee-function/fixed-model.png create mode 100644 docs/alloy-models/linear-fee-function/linear-fee.als diff --git a/docs/alloy-models/README.md b/docs/alloy-models/README.md index 2dd79a0b8c..9d9dc2b8be 100644 --- a/docs/alloy-models/README.md +++ b/docs/alloy-models/README.md @@ -19,7 +19,7 @@ in development and understanding. Alloy is useful as when used during upfront software design (or even after the fact), one can create a formal model of a software system to gain better -confidence re the _correctness_ of a system. The model can then be translated +confidence in the _correctness_ of a system. The model can then be translated to code. Many times, writing the model (either before or after the code) can help one to better understand a given software system. Models can also be used to specify protocols in p2p systems such as Lightning (as it [supports temporal diff --git a/docs/alloy-models/linear-fee-function/READM.md b/docs/alloy-models/linear-fee-function/READM.md new file mode 100644 index 0000000000..2fb9dec32e --- /dev/null +++ b/docs/alloy-models/linear-fee-function/READM.md @@ -0,0 +1,64 @@ +# Linear Fee Function + +This is a model of the default [Linear Fee +Function](https://github.com/lightningnetwork/lnd/blob/b7c59b36a74975c4e710a02ea42959053735402e/sweep/fee_function.go#L66-L109) +fee bumping mechanism in lnd. + +This model was inspired by a bug fix, due to an off-by-one error in the +original code: https://github.com/lightningnetwork/lnd/issues/8741. + +The bug in the original code was fixed in this PR: +https://github.com/lightningnetwork/lnd/pull/8751. + + +## Model & Bug Fix Walk-through + +The model includes an assertion that captures the essence of the bug: +`max_fee_rate_before_deadline`: +```alloy +// max_fee_rate_before_deadline is the main assertion in this model. This +// captures a model violation for our fee function, but only if the line in +// fee_rate_at_position is uncommented. +// +// In this assertion, we declare that if we have a fee function that has a conf +// target of 4 (we want a few fee bumps), and we bump to the final block, then +// at that point our current fee rate is the ending fee rate. In the original +// code, assertion isn't upheld, due to an off by one error. +assert max_fee_rate_before_deadline { + always req_num_blocks_to_conf[4] => bump_to_final_block => eventually ( + all f: LinearFeeFunction | f.position = f.width.sub[1] && + f.currentFeeRate = f.endingFeeRate + ) +} +``` + +We can modify the model to find the bug described in the original issue. + 1. First, we modify the model by forcing a `check` on the + `max_fee_rate_before_deadline` assertion: + ```alloy + check max_fee_rate_before_deadline + ``` + + 2. Next, we'll modify the `fee_rate_at_position` predicate to re-introduce + the off by one error: + ```alloy + p >= f.width => f.endingFeeRate // -- NOTE: Uncomment this to re-introduce the original bug. + ``` + +If we hit `Execute` in the Alloy Analyzer, then we get a counter example: +![Counter Example](counter-example.png) + + +We can hit `Show` in the analyzer to visualize it: +![Counter Example Show](counter-example-show.png) + +We can see that even though we're one block (`position`) before the deadline +(`width`), our fee rate isn't at the ending fee rate yet. + +If we modify the `fee_rate_at_position` to have the correct logic: +```alloy +p >= f.width.sub[1] => f.endingFeeRate +``` + +Then Alloy is unable to find any counterexamples: +![Correct Model](fixed-model.png) diff --git a/docs/alloy-models/linear-fee-function/counter-example-show.png b/docs/alloy-models/linear-fee-function/counter-example-show.png new file mode 100644 index 0000000000000000000000000000000000000000..75bbadf849d51d2b8425ccecb5e86392ceecad6f GIT binary patch literal 135569 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

uSUnSy6XtZ(_|<>GgAQ}<#^JqAskF`a@ABV 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 N!R7n1?=JrG{{WnB^8Ek+ literal 0 HcmV?d00001 diff --git a/docs/alloy-models/linear-fee-function/counter-example.png b/docs/alloy-models/linear-fee-function/counter-example.png new file mode 100644 index 0000000000000000000000000000000000000000..91be0891a486bb8e33d303342539cc1642e65c1b GIT binary patch literal 19184 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 literal 0 HcmV?d00001 diff --git a/docs/alloy-models/linear-fee-function/fixed-model.png b/docs/alloy-models/linear-fee-function/fixed-model.png new file mode 100644 index 0000000000000000000000000000000000000000..c57489de6339f37f25002def756b0b5e56bc8c62 GIT binary patch literal 18088 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 0 + position <= width + + // startingFeeRate must be positive. + startingFeeRate > 0 + + // currentFeeRate must be positive. + currentFeeRate > 0 + + // endingFeeRate must be positive. + endingFeeRate > 0 + + // deltaFeeRate always just increments by one. This simplifies our model, as + // Alloy doesn't support arithmetics with large numbers easily. + deltaFeeRate = 1 +} + +// ActiveFeeFunctions is a signature for the set of all active fee functions. +// This is used to properly initialize a fee function before it can be used +// elsewhere in the model. +sig ActiveFeeFunctions { + // activeFuncs is the set of all active functions. + var activeFuncs: set LinearFeeFunction +} + +// feeFuncInitZeroValues is a basic fact that capture the semantics of fee +// functions and initialization. +fact feeFuncInitZeroValues { + // If a function isn't in the set of active functions, then its position + // must be zero. + all f: LinearFeeFunction | + f not in ActiveFeeFunctions.activeFuncs => f.position = 0 +} + +// feeFuncSetStartsEmpty captures a basic fact that at the very start of the +// trace, there are no active fee functions. There're no temporal operators in +// this fact, so it only applies to the very start of the trace. +fact feeFuncSetStartsEmpty { + no activeFuncs +} + +// init is a predicate to initialize the params of the fee function. +pred init[f: LinearFeeFunction, maxFeeRate, startFeeRate: Int, confTarget: Int] { + // We only want to initiate once, so we'll have a guard that only proceeds if + // f isn't in the set of active functions. + f not in ActiveFeeFunctions.activeFuncs + + // The starting rate and the ending rate shouldn't be equal to each other. + maxFeeRate != startFeeRate + maxFeeRate > startFeeRate + + // If the conf target is zero, then we'll just jump straight to max params. + confTarget = 0 implies { + f.startingFeeRate' = maxFeeRate + f.endingFeeRate' = maxFeeRate + f.currentFeeRate' = maxFeeRate + f.position' = 0 + f.width' = confTarget + f.deltaFeeRate' = 1 + ActiveFeeFunctions.activeFuncs' = ActiveFeeFunctions.activeFuncs + f + } else { + // Otherwise, we'll be starting from a position that we can use to drive + // forward the system. + confTarget != 0 + + f.startingFeeRate' = startFeeRate + f.currentFeeRate' = startFeeRate + f.endingFeeRate' = maxFeeRate + f.width' = confTarget + f.position' = 0 + + // Our delta fee rate is just always 1, we'll take a single step towards + // the final solution at a time. + f.deltaFeeRate' = 1 + ActiveFeeFunctions.activeFuncs' = ActiveFeeFunctions.activeFuncs + f + } +} + +// increment is a predicate that implements our fee bumping routine. +pred increment[f: LinearFeeFunction] { + // Update our fee rate to take into account our new position. Increase our + // position by one, as a single block has past. + increase_fee_rate[f, f.position.add[1]] +} + +// increase_fee_rate takes a new position, and our fee function, then updates +// based on this relationship: +// feeRate = startingFeeRate + position * delta. +// - width: deadlineBlockHeight - startingBlockHeight +// - delta: (endingFeeRate - startingFeeRate) / width +// - position: currentBlockHeight - startingBlockHeight +pred increase_fee_rate[f : LinearFeeFunction, newPosition: Int] { + // Update the position of the model in the next timestep. + f.position' = newPosition + + // Ensure that our position hasn't passed our width yet. This is an error + // scenario in the original Go code. + f.position' <= f.width + + // Our new position is the distance between the + f.currentFeeRate' = fee_rate_at_position[f, newPosition] + + f.startingFeeRate' = f.startingFeeRate + f.endingFeeRate' = f.endingFeeRate + f.width' = f.width + f.deltaFeeRate' = f.deltaFeeRate + activeFuncs' = activeFuncs +} + +// fee_rate_at_position computes the new fee rate based on an updated position. +fun fee_rate_at_position[f: LinearFeeFunction, p: Int]: Int { + // If the position is equal to the width, then we'll go straight to the max + // fee rate. + p >= f.width.sub[1] => f.endingFeeRate + //p >= f.width => f.endingFeeRate -- NOTE: Uncomment this to re-introduce the original bug. + else + // Otherwise, we'll do the fee rate bump. + let deltaRate = f.deltaFeeRate, + newFeeRate = f.currentFeeRate.add[deltaRate] | + + // If the new fee rate would exceed the ending rate, then we clamp it + // to our max fee rate. Otherwise we return our normal fee rate. + newFeeRate > f.endingFeeRate => f.endingFeeRate else newFeeRate +} + +// fee_bump is a predicate that executes a fee bump step. +pred fee_bump[f: LinearFeeFunction] { + // We use a guard to ensure that fee_bump can only be called after init + // (which will add the func to the set of active funcs). + f in ActiveFeeFunctions.activeFuncs + + increment[f] +} + +// stutter does nothing. This just assigns all variables to themselves, this is +// useful in a trace to allow it to noop. +pred stutter[f: LinearFeeFunction] { + // No change in any of our variables. + f.startingFeeRate' = f.startingFeeRate + f.endingFeeRate' = f.endingFeeRate + f.currentFeeRate' = f.currentFeeRate + f.position' = f.position + f.width' = f.width + f.deltaFeeRate' = f.deltaFeeRate + activeFuncs' = activeFuncs +} + +// Event is used to generate easier to follow traces. These these enums are +// events that correspond to the main state transition predicates above. +// +// See this portion of documentation for more information on this idiom: +// https://haslab.github.io/formal-software-design/modelling-tips/index.html#an-idiom-to-depict-events. +enum Event { Stutter, Init, FeeBump } + +// stutter is a derived relation that's populated whenever a stutter event +// happens. +fun stutter : set Event -> LinearFeeFunction { + { e: Stutter, f: LinearFeeFunction | stutter[f] } +} + +// init is a derived relation that's populated whenever an init event happens. +fun init : Event -> LinearFeeFunction -> Int -> Int -> Int { + { e: Init, f: LinearFeeFunction, m: Int, s: Int, c: Int | init[f, m, s, c] } +} + +// fee_bump is a derived relation that's populated whenever a fee_bump event +// happens. +fun fee_bump : Event -> LinearFeeFunction { + { e: FeeBump, f: LinearFeeFunction | fee_bump[f] } +} + +// events is our final derived relation that stores all the possible event +// types. +fun events : set Event { + stutter.LinearFeeFunction + init.Int.Int.Int.LinearFeeFunction + fee_bump.LinearFeeFunction +} + +// traces is a fact to ensure that we always get one of the above events in +// traces we generate. +fact traces { + always some events +} + +// init_traces builds on the fact traces above, and also asserts that there's +// always at least one init event (to ensure proper initialization). +fact init_traces { + eventually (one init) +} + +// fee_bump_happens ensures that within our trace, there's always at least a +// single fee bump event. +fact fee_bump_happens { + eventually (some fee_bump) +} + + +// valid_fee_rates is a fact that ensures that the ending fee rate is always +// greater than the starting fee rate. +fact valid_fee_rates { + all f: LinearFeeFunction | f.endingFeeRate > f.startingFeeRate +} + +// init_correctness is an assertion that makes sure once an init event happens, +// then we have the function in our set of active functions. +assert init_correctness { + all f: LinearFeeFunction | { + eventually (some init) implies + eventually f in ActiveFeeFunctions.activeFuncs + } +} + +// check init_correctness + +// init_always_happens is a trivial assertion that ensures that an init +// eventually happens in a trace. +assert init_always_happens { + eventually (some init) +} + +// check init_always_happens + +// init_then_fee_bump asserts that within our trace, we'll always have at least +// a single fee bump event after an init. +assert init_then_fee_bump { + eventually (some init => some fee_bump) +} + +// check init_then_fee_bump + +// bump_to_completion is a predicate that can be used to force fee_bump events +// to be emitted until we're right at our confirmation deadline. +pred bump_to_completion { + always (all f: LinearFeeFunction | f.position < f.width => eventually (some fee_bump)) +} + +// bump_to_final_block is a predicate that can be used to force fee_bump events +// to be emitted until we're one block before our confirmation deadline. +pred bump_to_final_block { + always (all f: LinearFeeFunction | f.position < f.width.sub[1] => eventually (some fee_bump)) +} + +// req_num_blocks_to_conf is a predicate that can be used to restrict the +// functions in a fact to a given confirmation target. +pred req_num_blocks_to_conf[n: Int] { + all f: LinearFeeFunction | f.width = n +} + +// req_starting_fee_rate is a predicate that can be used to restrict functions +// in a fact to a given starting fee rate. +pred req_starting_fee_rate[n: Int] { + all f: LinearFeeFunction | f.startingFeeRate = n +} + +// max_fee_rate_before_deadline is the main assertion in this model. This +// captures a model violation for our fee function, but only if the line in +// fee_rate_at_position is uncommented. +// +// In this assertion, we declare that if we have a fee function that has a conf +// target of 4 (we want a few fee bumps), and we bump to the final block, then +// at that point our current fee rate is the ending fee rate. In the original +// code, assertion isn't upheld, due to an off by one error. +assert max_fee_rate_before_deadline { + always req_num_blocks_to_conf[4] => bump_to_final_block => eventually ( + all f: LinearFeeFunction | f.position = f.width.sub[1] => f.currentFeeRate = f.endingFeeRate + ) +} + +check max_fee_rate_before_deadline + +run { + // Our default command just shows a trace that has at least 4 fee bump + // events. + always req_num_blocks_to_conf[4] + always bump_to_completion +}