crypto-econ-lab
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Write
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee
    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Versions and GitHub Sync Sharing URL Help
Menu
Options
Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Write
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee
  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       owned this note    owned this note      
    Published Linked with GitHub
    1
    Subscribed
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    Subscribe
    ## Introduction Filecoin is a decentralized storage network that allows users to *rent* out their unused storage space to others in exchange for FIL. To ensure smooth network operation, Filecoin uses a fee market that includes a "base fee," the minimum fee required to get a transaction included in a block. The base fee changes dynamically based on demand for block space, which can vary widely over time. The upcoming deployment of the Filecoin Virtual Machine (FVM) is expected to bring new demand for the usage of Filecoin gas, which could be absorbed by scalability solutions. However, different stakeholders in the network have varying *utility functions* (understood as a mathematical characterization of preference) with respect to the base fee. For instance, users sending small transactions may pay a higher base fee to ensure quick confirmation, while larger transactions may wait for lower fees. Furthermore, other stakeholders in the network will have their own utility fucntions reflecting their own interests; token holders, for example, would in gernal have a utility funcrtion that *prefers* token burning, while miners could have a utility function that aims at striking a balance between maximizing earnings and maintaining network stability. In this article, we will (1) present mathematical models for demand in FVM, (2) explore the composition of a block and (3) the utility functions of different stakeholders in the Filecoin network as a function of the base fee and demand for gas. By understanding the composition of block as a function of demand can help us understand how will FVM affect the demand for block space. Furthermore, by examining the utility functions of different stakeholders in the Filecoin network, we can gain a deeper understanding of their interactions and their effects on network performance. This knowledge is crucial for designing and operating a decentralized storage network like Filecoin. This first report is intended to (1) formulate the system at hand and (2) provide a qualitative and "first order" understanding of the effects of the (upcoming increase in) demand in the FIlecoin network. We begin by formulating the governing equations of demand based on a series of mild assumptions. The reader uninterested with these mathematical details can freely skip the next section. ## Model We begin with some definitions. For any epoch $t$, let $R_t\in \mathbb{R}_{\geq0}$ denote the block reward at an epoch $t$, let $G_t\in\mathbb{R}_{\geq 0}$ denote the gas usage, and let $b_t\in[b_\text{min},\infty)$ denote the base fee. Furthermore, for any given SP $m$, let $\rho_m$ denote that SP relative power in the network. **Definition (expected cashflow)**. For a given value of $b_t$, we define the *expected cashflow* of miner $m$ at epoch $t$ as \begin{aligned} \Phi(m,t,b_t):=\mathbb{E}_m[R_t]-b_t\mathbb{E}_m[G_t]-O_m, \end{aligned} where $O_m$ represents the *op-ex* of miner $m$. Here, $\mathbb{E}_m[\cdot]$ represents the expectation over the probability measure induced by the lottery process for which SP $m$ gets to mine a block. Currently in the Filecoin network, SPs (i.e., *miners*) are the same *users*. This means that they need to regularly submit messages to the network and pay gas for those messages that get included in the chain. The amount of FIL that each miner is willing to pay per message depends on several factors; how urgent is it for them to send the message (due to recurring proofs of storage, for example), the type of message, their opex, etc. Thus, for each message class $i$ and each miner $m$, there's some associated *value* $v_i$. This value is, of course, imposible to know for each miner and for each message, as it is highly subjective. The goal of this section is to present a model and a framework that can overcome this. In order to do so, we will make the following simplifying assumptions and observations. - **Assumption 1.** The value $v_m$ of a message **sent by the miner $m$** is equal to \begin{aligned} v_m&=\max\{\Phi(m,b_t),0\}\\ v_m&=\max\{\mathbb{E}_m[R_t]-b_t\mathbb{E}_m[G_t]-O_m,0\}\\ \end{aligned} - **Assumption 2.** Any miner $m$ submits a message with probability 1 only if $b_t=b_\text{min}=10^{-16}$ FIL/gas unit. Furthermore, we assume this probability decreases with $b_t$, and becomes *small* whenever $v_m<0$. - **Assumption 3.** We consider a suffciently short time horizon so that the changes in $\mathbb{E}[G_t]$ and $\mathbb{E}_m[R_t]$ (with respect to time) are negligible. - **Assumption 4.** The average gas spenditure of miner $m$ is proportional to its network power. - **Observation 1.** The base fee can typically vary through several orders of magnitude. Intuitively, Assumption 1 means that the value assigned from each SP to its transaction is determined by their expected "cashflow". Assumption 2 means that miners are more likely to submit messages to the Mempool if their inclusion is profitable for (in expectation). In practice, Assumption 3 holds relatively well over short periods of time (about a month). Lastly, Assumption 4 is relatively mild, and representative that, larger miners are more likely to spend more gas. From Assumptions 1 and 2 it follows that a message will be submited to the Mempool **with probability 1** if the base fee is $b_\text{min}=10^{-16}$ FIL per gas unit. Otherwise it decreases with $v_m$. We consider that messages will be submitted to the Mempool with a *high* probability if $v_m<0$: \begin{align} v_m<0 \Longleftrightarrow b_t\leq \frac{\mathbb{E}_m[R_t]-O_m}{\mathbb{E}_m[G_t]}. \end{align} In addition, under Assumptions 3 and 4, one can upper bound $b_t$ **independently of the miner** as follows: \begin{align} b_t\leq \frac{\mathbb{E}_m[R_t]-O_m}{\mathbb{E}_m[G_t]}\leq \frac{\mathbb{E}_m[R_t]}{\mathbb{E}_m[G_t]}=\frac{\rho_m\lambda N_\text{epochs}R}{\rho_m\mathbb{E}[G]}=\frac{\lambda N_\text{epochs}R}{\mathbb{E}[G]}=:b^*, \end{align} with $\mathbb{E}[G]$ the average gas usage over a day, $\lambda=5$ the expected number of blocks in an epoch, and $N_\text{epochs}$ the numer of epochs in a day. Thus, under Assumptions 1 and 2, it follows that whenever $b_t>b^*$, there's a significant probability that **any** miner might choose not to submit a message. Let's investigate these effects in more depth. In the next subsection we introduce our concept of demand. ### Survival function and demand. **Definition (Survival Function).** We call a function $S:[b_\text{min},\infty)\to[0,1]$ a *survival function if* - $S(b_\text{min})=1$. - $\lim_{p\to\infty}S(p)=0$. - $S$ is strictly monotonically decreasing. For any given price $p$, we can interpret $S(p)$ as the proportion of gas that users (miners or FVM users) are willing to include in the Mempool (relative to all possible gas to be included). **Remark.** *Notice that $1-S(p)=:F(p)$ is, by definition, a cummulative distribution function when seen as a random variable. Furthermore, it follows from its definition that $S$ is a diffeomorphism; which in turn implies that $F$ has a probability $f$*. **Modeling SP's demand** Let $\hat{G}_\text{sp}$ denote the demand (in gas units) for a basefes $b=b_{\text{min}}$, and denote by $S_\text{sp}(p)$ the survival function of SPs. Then, we can define the **SP-driven demand, $D_\text{sp}(p)$,** as a function of the price as \begin{align} D_\text{sp}(p):=\hat{G}_{sp}S_\text{sp}(p) \end{align} Modeling this demand requires two inputs: $\hat{G}_\text{sp}$ and $S_\text{sp}(p)$. **While it is not possible to know this exact values, we can estimate them using statistical techniques and arguments from Uncertainty Quantification (UQ). By doing this, we steer away from trying to predict an exact outcome (an impossible task), and consider, "in one go", several different scenarios.** **Estimating $\hat{G}_\text{sp}$.** We construct a Kernel Density Estimator (KDE) of the daily gas used, based on the last 90 days worth of data. A histogram based on samples form such a KDE is shown below. Denoting such a KDE by $K_{G}$, We define \begin{align} \hat{G}_\text{sp}\sim K_G. \end{align} By considering $\hat{G}_\text{sp}$ to be distributed according to $K_G$, we can consider a wide variaty of possible scenarios. ![](https://hackmd.io/_uploads/Hk8HCFI0o.png) **Estimating $S_\text{sp}$.** In a general setting, the survival function can be understood as the proportion of miners that are willing to submit messages at a given base fee. Mathematically, this can be written as a sigmoid function of the form \begin{aligned} S_\text{sp}(p;a,b)&=\left[1-\left(1+e^{-a(p-b)}\right)^{-1}\right]N^{-1}, \quad a,b\in\mathbb{R}_{+},\\ N&=\left[1-\left(1+e^{-a(b_\text{min}-b)}\right)^{-1}\right], \end{aligned} with some unknown parameters $a,b$, representing the decay rate of the sigmoid, and the point where half of the miners are not willing to submit messages. Once again, obtaining a "real" version of $S_\text{sp}$ is not possible, as this would require to have an intimate understanding of each SP, their risk preferences, OpEx's, etc. Instead, we construct a *family* of survival functions by parametrising the values $a,b$. **Example.** Taking into account that $b$ should be similar in magnitude to $b^*$ and that $a$ should be sufficiently large, we propose the following models: \begin{aligned} \log_{10} B&\sim \mathcal{N}\left(\log(b^*),1\right),\\ \log_{10} A&\sim \mathcal{N}\left(8,\frac{1}{4}\right). \end{aligned} Notice that by including the logarithmic term, we can consider a wide range of survival functions. **Putting it together.** Given this, we can generate what we call **demand profiles** with the following algorithm: 1. Sample $\hat{G}_\text{sp}\sim K_g$ 2. Sample $\log(A), \log(B)$, from, e.g., the formulas above. 3. Set $D_\text{sp}(p)=\hat{G}_\text{sp}S_\text{sp}(p;A,B)$. A figure depicting 100 such demand profiles is shown below. ![](https://hackmd.io/_uploads/rkZuq2IAj.png) **Modeling FVM's demand** We follow a similar procedure in our aim of understanding and quantifying the amount of gas due to FVM. More precisely, let $\hat{G}_\text{fvm}$ denote the FVM demand (in gas units) for a basefee $b=b_{\text{min}}$, and denote by $S_\text{fvm}(p)$ the survival function of the FVM users. Furthermore, we make the asusmption that \begin{aligned} \hat{G}_\text{fvm}&=\alpha\hat{G}_\text{sp},\\ \alpha&\sim \mathcal{U}[0,5]. \end{aligned} While it is not a strong assumption to model $\hat{G}_\text{fvm}$ as a multiple of $\hat{G}_\text{sp}$, the uniform prior $\mathcal{U}[0,5]$ we are assuming on $\alpha$ is, and might have an impact in some of our results.**Thus, the model should be updated once sufficient FVM has been obtained.** Taking advange of the fact that our survival function is a random variable that is sufficeintly general to cover a wide variety of cases, we can define the **FVM-driven demand, $D_\text{fvm}(p)$,** as a function of price as \begin{aligned} D_\text{fvm}=\hat{G}_\text{fvm}S_\text{fvm}(p;A'B'), \end{aligned} with $A'$, and $B'$ random variables with a known distribution. **Total demand** Lastly, we can define the total FVM demand as follows. let $\hat{G}:=\hat{G}_\text{sp}+\hat{G}_\text{fvm}$, $r_\text{sp}:=\hat{G}_\text{sp}/\hat{G}$, and $r_\text{fvm}=\hat{G}_\text{fvm}/\hat{G}$. Then the *total demand,* $D:[b_\text{min},\infty)\to\mathbb{R}_+$ can be written as \begin{aligned} D=\hat{G}(r_\text{sp}S_\text{sp}(p;A,B)+r_\text{fvm}S_\text{fvm}(p;A',B')), \end{aligned} with $r_\text{sp},$ $r_\text{fvm},A,A',B',B',\alpha$ random variables, as previously described. The rest of this document is devoted to the *Primary goal* of the [work plan](https://hackmd.io/trzLL3qmQpWslKg_oDt9yw): namely, *understanding all hypothetical gas demand outcomes*. ## Estimating block composition We present a first approximation of the *block composition*; that is, we present a first estimate of the proportion of the gas in a block that are due to FVM messages, versuss the proportion of these messages that are due to maintenace-type of messages. In order to so, we will rely upon several approximations. While these approximations will not always hold in practice, we use them as a first-step towards understanding the task at hand. In upcoming work, we will investigate this issue through the lens of Agent-Based Models, which can in turn helps broaden our understanding of the tasks at hand, while at the same time relying upon a smaller number of assumptions, that we present next. - **Assumption 5** Let $B_\text{sp}(p),B_\text{fvm}(p)$ denote the amount of a block space due to SP messages and FVM messages, respectively at a base fee $p$. Furthermore, assume that, on average, one has that \begin{align} B_\text{sp}(p)+B_\text{fvm}(p)\leq B_\text{target}, \end{align} where $B_\text{target}:=5\times 10^{9}$ gas units denotes the target block size. Notice that this trivially implies that $B_\text{sp}(p)\leq B_\text{target}$ and $B_\text{fvm}(p)\leq B_\text{target}$. - **Assumption 6** Furthermore, denote by $r_\text{sp}\in[0,1],r_\text{fvm}\in[0,1]$ the proportion of unsend messages of maintenance and FVM type, respectively. Exploiting the fact that $S_{(\cdot)}$ is a bijection, we interpret \begin{align} S_{(\cdot)}(p;a,b)&:=1-r_{(\cdot)}\\ \implies p&:=S^{-1}_{(\cdot)}\left(1-r_{(\cdot)};a,b\right) \end{align} It follows from Assumptions 5 and 6 that we can use the following system of equations to estimate the block composition for any given price $p$: \begin{align} S_\text{sp}(p;a,b)&:=1-r_\text{sp}\\ S_\text{fvm}(p;a,b)&:=1-r_\text{fvm}\\ B_\text{target}&\geq B_\text{sp}(p)+B_\text{fvm}(p). \end{align} Furthermore, it can be estimated that, on average, $B_\text{sp}\approx 0.7 B_\text{target}$ for any given block; indeed it just suffices to divide the expected gas usage in a day by the number of blocks per day, multiplied by the target block size, i.e., \begin{align} \frac{B_\text{sp}}{B_\text{target}}=\frac{\mathbb{E}[G_\text{sp}]}{N_\text{epochs}\times \lambda\times B_\text{target}}\approx \frac{5\times 10^{13}}{2880\times 5 \times 5\times 10^{9}}\approx0.694. \end{align} This means that, on average, the gas used per block due to SP maintenance messages is about $\hat{G}_\text{sp}=3.5\times 10^9$ gas units. As such, we will assume that $B_\text{sp}(p_\text{min}=10^{-16})=\hat{G}_\text{sp}$. In what follows we investigate the composition of a given block, assuming that \begin{aligned} B_\text{sp}(p)&=\hat{G}_\text{sp}S_\text{sp}(p;A,B),\\ B_\text{fvm}(p)&=\hat{G}_\text{fvm}S_\text{fvm}(p;A',B'),\\ \log_{10}(A)&\sim \mathcal{N}(10,1),\\ \log_{10}(A')&\sim \mathcal{N}(10,1),\\ \log_{10}(B)&\sim \mathcal{N}(-11,1),\\ \log_{10}(B')&\sim \mathcal{N}(-9,1),\\ \log(\hat{G}_\text{sp})&\sim \mathcal{N}(\log(\hat{G}_\text{sp}),1/400),\\ \hat{G'}_\text{fvm}&=\alpha\hat{G}_\text{sp},\\ \alpha&\in\left\{0.1,0.5,1,2,5,10\right\}. \end{aligned} Notice that the choice of distributions presented above allows us to consider a wide variety of cases. We investigate the composition of the block in two scenarios: the "no preference" scenario, where a miner packs a block without discriminating against the type of messages, and the "SP-prioritized" scenario, where a miner first packs all maintenace-type messages (i.e., those submitted by SPs) and then packs the remainder FVM messages, if any. In either scenario, for each value of $\alpha$, we run 1000 experiments for different values of $A,A',B'B',\hat{G}_\text{sp}$, sampled from the distributions above. We display each individual realisation in faint colors, and their mean value as a solid line. We reiterate that by doing this, we take into account several combinations of demand profiles. Notice that we chose to have a a distribution for $B'$ that concentrates around smaller values that the one of $B$ since intuitively, SPs would tend to have a more inelastic demand function; indeed, they need to consistently submit proofs of storage on time, which allows for less flexibility on whether they can choose to submit a message or not. **No preference** We plot the proportion of the target block space, occupied by each type of message without any given level of preference. As we can see from the figure below, as $\alpha$ increases, the proportion of the messages occupied by FVM messages increases; however, this proportion rapidly decreases as $p$ increases. On average, regardless of the initial value, once the base fee is roughly above $10^{-10}$ tokens per gas unit, the block is dominated by SP maintenance messages. ![](https://hackmd.io/_uploads/rJWYLB61h.png) **With preference -- prioritizing SPs** We now repeat the previous experiment, but for a miner who always packs the maintenance messages first. As we can see, the plots looks quite similar for higher values of $\alpha$; this is natural, since, regardless of the proportion of FVM messages, the miner at hand will always pack all the SP messages first, which account for a maximum block space of about $0.7B_\text{target}$, leaving at most $0.3B_\text{target}$ worth of block space available, irrespective of $\alpha$. In a practical setting, this would imply that FVM users will likely need to wait a comparatively longer time to get their messages included. ![](https://hackmd.io/_uploads/HJ7dLra13.png) **Gas usage** If we had the goal of maximizing total network revenue, from our previous results, it is possible to infer what should be the optimal block size to fill, for a given level of demand. We re-interpret our previous results by assuming that the reason the a fraction of the block is empty is because the target block size has been reduced to $(1-\mathsf{prop.\ empty})\times B_\text{target}$. We then find the optimal block size, such that the corresponding total network revenue (base fee* reduced target block size) is maximized. This optimal block size is labeled in the above figures as B* . We find that in many cases, network revenue could be maximized by reducing the size of the block. ## Utility Functions As mentioned in the work plan, instead of trying to predict or forecast an exact outcome due to FVM demand, we instead aim at understanding various hypothetical gas demand outcomes. In simple terms, our goal is to understand if the effects of a certain level of net gas demand $D$ will be "good" or "bad" for the network, a set of users, etc. In order to determine what "good" and "bad" is, we need first need to define a metric for this effect. We will refer to this metric as a **utility function**. In what follows. we consider several utility functions of varyiing complexity. **Remark.** *Please note that utility functions are a measure of preference and represent the interests of different stakeholders in a subjective way. While we have proposed several utility functions in this report to quantify the benefit that various stakeholders would have with respect to changes in the base fee and demand, it is important to note that these functions are not unique and may differ depending on the assumptions and values used. Additionally, the utility functions presented in this report may not capture all aspects of a stakeholder's interest and may not be applicable in all situations. Therefore, the results and conclusions based on these functions should be interpreted with caution and considered as a starting point for further analysis and discussion.* **Simple payer's utility** We begin by defining a utility function for a user in the Filecoin network who is mostly concerned with keeping low base fees. There are several possible choices for this function, but we consider one of the form: \begin{aligned} U_\text{simple payer}(p) &:= -\log(p) \end{aligned} Furthermore, notice that the previous utility function can also be written in terms of demand by observing that $D$ is a *diffeomorphism* (differentiable and bijective) and hence invertible; i.e., for a given demand curve $y$, we can always write $p=D^{-1}(y)$. Below we plot this utility function as a function of price and demand. In this utility function, the user's utility is inversely proportional to the base fee $b$. That is, the higher the base fee, the lower the user's utility. The use of the logarithm ensures that the utility function is concave, which is a desirable property for many economic models. This utility function is a common choice in economic models of congestion pricing and dynamic pricing, where users are charged a fee for using a shared resource such as a road or a network. In these models, the goal is to encourage users to self-regulate their usage of the resource by charging higher fees during periods of high demand, and lower fees during periods of low demand. Users who are sensitive to the fees will adjust their behavior accordingly, leading to a more efficient use of the resource. In the context of the Filecoin network, this utility function can be used to model the behavior of users who are sensitive to the base fee and prefer to wait for periods of low demand to submit their transactions, in order to minimize their costs. The utility function can be combined with other factors such as the urgency of the transaction and the value of the data being stored to model more complex user behavior. Below we plot $U_\text{simple payer}(p)$ vs $D(p)$ (left) and $U_\text{simple payer}(p)$ vs $p$ (right). As we can see, for this particular actor, the utility is maximized whenever the base fee is at its smallest; which in turn is when the demand is also maximized. ![](https://hackmd.io/_uploads/ByfCGALRs.png) An alternative model is to consider \begin{aligned} \hat U_\text{simple payer}(p) &:= p^{-1}. \end{aligned} This utility function is shown below for several realizations of the demand function; in particular, once again, we show $U_\text{simple payer}(p)$ vs $D(p)$ (left) and $U_\text{simple payer}(p)$ vs $p$ (right). The conclusions remain the same as in the previous case. ![](https://hackmd.io/_uploads/rJawbvHCo.png) **Naive burner utility** We now consider the utility of an agent that is mostly concerned about burning tokens. In this case, their utility is maximized whenever tokens are burnt due to the EIP1559 mechsnism. Once again, there are several ways of expresing a utility function of this form, but a possible one could be $$ U_\text{burn}(D,p;S,W_m) := W_m \left(\frac{S}{S-Dp}\right),$$ with $W_m$ the token wealth of the $m$-th SP and $S$ the circulating supply. Notice that as $D$ or $p$ increase, the amount of token burnt incerases, thus decreasing the circulating supply. Thus, this particular choice of utility function is maximized whenever $D$ and $p$ are maximized. Below, we show $U_\text{burn}(p)$ vs $D(p)$ (left) and $U_\text{burn}(p)$ vs $p$. ![](https://hackmd.io/_uploads/SkdLedrAs.png) As expected, such a function is maximized at around the maximum level of base fee that still provides some level of demand; i.e., around $10^{-8}$ FIL per gas unit PLotting $U_\text{burn}(p)$ as a function of $D$ and $p$ yields the figure below. From there it is clear that such a utility increases with either $D$ or $p$ (or both). ![](https://hackmd.io/_uploads/Byr5bDBRj.png) **Data onboarding utility** Let's assume that the user's utility function is a function of two variables: the amount of data onboarded, denoted by Q, and the total cost, denoted by C, which includes the cost of using gas and paying fees. In this setting, the user's utility function is: $$ U_\text{data}(p,D,q;\alpha,\beta) = \beta Q - \alpha D\cdot p $$ where $Q$ is the amount of data onboarded and $d\cdot p$ is the total cost, which includes the amount of gas used, $D$, and the base fee, $p$. The parameter $\alpha$ reflects the user's sensitivity to the cost of using gas and paying fees relative to the amount of data onboarded, and $\beta$ is a parameter (given in terms of tokens per byte) symbolising the "monetary" value of this data. Below, we show $U_\text{data}(p)$ vs $D(p)$ (left) and $U_\text{data}(p)$ vs $p$. As we can see, such a utility function decreases quite rapidly with either $D$ or $p$; once again this is intuitive, since a user that is mostly concerned with onboarding data will, of course, find it more challenging to do so as $p$ increases. ![](https://hackmd.io/_uploads/rkyGdhM12.png) **SP utility** \begin{equation} U_\text{sp}(p,d) = b \cdot \log(d\cdot p) - \rho \cdot d\cdot p \end{equation} where $U$ represents the utility function value, $d$ represents the gas usage, $p$ the base fee, $\rho$ the relative power of a miner in the network and $b$ a scaling factor. Notice that the logarithmic term in the function $\log(d\cdot p)$ is added to account for the fact that the utility increase from gas burning is diminishing for this particular agent, as $p$ grows; indeed. Furthermore, notice that the base fee has a negative impact on the utility, since storage providers have to spend gas. ![](https://hackmd.io/_uploads/S1hVK1mJh.png) ## Finalizing remarks In this report, we presented a mathematical model for demand in the Filecoin network, investigated the composition of a Filecoin block as a function of the base fee, and proposed and investigated several utility functions representing the interests of different stakeholders. Our proposed demand models are based on several assumptions and observations and are believed to hold well in practice. These mathematical representations of preference consist of a sigmoid function parametrized by a "rate factor" that determines how fast the amount of demanded gas decays as a function of price, and a "threshold factor" that represents the price that a service provider would be "comfortable" to pay on average. Since these values represent a highly subjective measure of choice for each miner, we formulated them as random variables with known distributions. This accounts for the subjectivity of these values and produces better and more robust estimates of subsequent quantities of interest using Monte Carlo methods. Using these parametrized demand models, we estimated the proportion of gas in a block that is due to Filecoin Virtual Machine (FVM) messages versus the proportion of these messages that are due to maintenance-type messages, i.e., those used by SP on a recurring basis. Under our modeling assumptions, we found that once the base fee is roughly above $10^{-10}$ FIL per gas unit, the block is dominated by SP maintenance messages. We also estimated the decay rate of the proportion of FVM messages, and visualized these proportions as a function of the base fee for several levels of total FVM demand. **An interesting conjecture, is that the block composition will ultimately depend on the strategy of the miner.** We also proposed several utility functions as a way of quantifying the benefit that various stakeholders in the network would have with respect to changes in the base fee and demand. Our definitions of utility function showed that **stakeholders who are mostly concerned with high gas usage, those who benefit from onboarding data, and SPs are negatively affected by a significant increase in gas usage**. Conversely, our utility functions show that stakeholders such as **token holders, who benefit from burning more tokens, are positively impacted by an increase in the base fee.** While these results are intuitive, we believe it is worth quantifying and isolating these effects for the stakeholders mentioned above. In our next report, we will aim at performing a simulation-based exploration of the composition of a block under several conditions, as well as shedding light to the following two questions: 1. *To what extent is it viable to not interfer with the gas usage in the network ?* and 2. *how can we mitigate the effects of a high demand for block space in case that it becomes problematic?* These insights are valuable and will be expanded upon in future work using our latest [Agent-Based Model](https://github.com/protocol/CryptoEconLab/tree/gasABM/notebooks/gasABM) of gas consumption in the network.

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully