This commit is contained in:
Corey 2019-05-31 10:17:33 -04:00
parent 6839c1c7c1
commit 99f5bb75a0
No known key found for this signature in database
GPG Key ID: 65CAB2A922CDF343
5 changed files with 188 additions and 291 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,3 +0,0 @@
div {
/* max-width: 80% !important; */
}

View File

@ -30,18 +30,18 @@ class App extends Component {
if (name === 'viewof ensUserbar') {
return new Inspector(this.ensUserbarRef.current);
}
if (name === 'viewof amountDepositSnt') {
return new Inspector(this.amountDepositSntRef.current);
if (name === 'viewof dollarPriceDomain') {
return new Inspector(this.dollarPriceDomainRef.current);
}
if (name === 'viewof lockedSntBar') {
return new Inspector(this.lockedSntBarRef.current);
}
if (name === 'viewof sntPrice') {
return new Inspector(this.sntPriceRef.current);
if (name === 'viewof discountRate') {
return new Inspector(this.discountRateRef.current);
}
if (name === 'viewof lockedUsdBar') {
return new Inspector(this.lockedUsdBarRef.current);
}
if (name === 'viewof netPresentUtility') {
return new Inspector(this.netPresentUtilityRef.current);
}
return null;
});
}
@ -60,14 +60,14 @@ class App extends Component {
ensUserbarRef = React.createRef();
amountDepositSntRef = React.createRef();
dollarPriceDomainRef = React.createRef();
lockedSntBarRef = React.createRef();
sntPriceRef = React.createRef();
discountRateRef = React.createRef();
lockedUsdBarRef = React.createRef();
netPresentUtilityRef = React.createRef();
render() {
return (
<div className="App">
@ -89,22 +89,22 @@ class App extends Component {
</p>
<p>
There is currently quite a bit of work being done in this field, but
it is mostly for investment firms to make appropriate capital allocation
decisions among a diversified portfolio of cryptoassets. While this is
drastically important for growth and project funding, there is great lack
of research on capital and resource allocation inside of a single network.
More specifically, any utility token needs to be able to objectively evaluate
various features and utilities of their platform, and how they affect the
entirety of their ecosystem. For instance, we need to be able to ask
questions like the following: How can we objectively measure the use
of SNT if it gets used in feature X as a function of our user base?
Based on that measurement, is its development cost justified, or
should we focus on something else?
it is mostly for investment firms to make appropriate capital
allocation decisions among a diversified portfolio of cryptoassets.
While this is drastically important for growth and project funding,
there is great lack of research on capital and resource allocation
inside of a single network. More specifically, any utility token needs
to be able to objectively evaluate various features and utilities of
their platform, and how they affect the entirety of their ecosystem.
For instance, we need to be able to ask questions like the following:
How can we objectively measure the difference in the rate users use
feature X in Status and its respective impact on the ecosystem?
</p>
<p>
We will be launching Status with the following SNT use-cases, as
described in the{' '}
<a href="https://status.im/whitepaper.pdf">whitepaper</a>:
<a href="https://status.im/whitepaper.pdf">whitepaper</a> and{' '}
<a href="https://www.status.im">the website</a>:
<ul>
<li>Teller Network</li>
<li>Tribute to Talk</li>
@ -112,26 +112,41 @@ class App extends Component {
<li>Sticker Market</li>
<li>SNT Curated Dapp Store</li>
<li>Network Incentivization (may not be available at launch)</li>
<li>Liquid Funding (may not be avaialble at launch)</li>
<li>User Acquisition Engine (will not be available at launch)</li>
</ul>
</p>
<p>
Each of these use-cases make use of the SNT token, but in very
different ways. This means each will have differing effects on the
supply and demand of the token itself. It doesnt stop there, as
Status is an open and permissionless platform for developers to build
on and use, which means that anyone can build SNT use-cases that
affect the overall supply and demand. But how do we know what effect a
utility has? Where do we go to try and evaluate its usefulness?
Each of these use-cases leverage the SNT token, but in very different
ways. For instance, some will lock up large amounts, some will
actually burn the token, and some will incentivize sending and
receiving. This means each will have differing effects on the supply
and demand of the token itself, and will need to be modeled
differently. It doesnt stop there as Status is an open and
permissionless platform for developers to build on and use, which
means that anyone can build SNT use-cases that affect the overall
supply and demand. But how do we know what effect a utility has? Where
do we go to try and evaluate its usefulness?
</p>
<p>
To this end, we would like to start a blog series detailing some of
the research we are doing within Status to objectively evaluate the
value flows of SNT, the potential effects of our implemented (and upcoming)
SNT use cases within Status, and how our potential user growth changes
things. This work will encompass traditional economic and finance
theory, work currently being done in crypto-economics, and novel
methodology. That means a part of this endeavor is an attempt to get
peer review and evaluation of what we do by you, the community!
value flows of SNT, the potential effects of our implemented (and
upcoming) SNT use cases within Status, and how our potential user
growth changes things. This work will encompass traditional economic
and finance theory, work currently being done in crypto-economics, and
novel methodology. That means a part of this endeavor is an attempt to
get peer review and evaluation of what we do by you, the community!
</p>
<p>
<b>
DISCLAIMER: The work in this article (and mentioned notebooks) is
for modeling purposes only. The numbers herein are not to project
actual values locked up in Status and should not be used for
investment advice. It is our strict desire to create and improve
models that describe value flow of SNT use-cases (and similar token
use-cases), and how these use-cases compare to each other.
</b>
</p>
<p>
Lets start with the ENS naming system. In Status, for a little SNT,
@ -159,25 +174,25 @@ class App extends Component {
</p>
<p>
The use case and token flow are both relatively simple, but what are
the effects on the network? Lets first try and model what value
this could potentially accrue over time. We can start by picking out
the variables in this process to see how things depend on each other.
the effects on the network? Lets first try and model what value this
could potentially accrue over time. We can start by picking out the
variables in this process to see how things depend on each other.
Furthermore, the above values are what we currently use, but in terms
of modeling, we should turn those into variables that allow us to see
what effect each has on the overall mechanism. This can help inform us
(and you) on appropriate choices.
</p>
<h2>Disucssion of variables</h2>
<h2>Discussion of variables</h2>
<h3>Number of Users</h3>
<p>
It is clear that this all depends on how many users Status has in the
app. If they are not using Status, then they wont use the feature.
This is our base metric, and we will model it using compounding growth
and loss. We can start with a number of users that are using the network,
and set additional growth and loss variables (in percentages) that
define how this number changes over the next 10 years. This means that
every year, we expect a certain percentage change in users based on
the numbers of the previous year. Depending on how you set those
and loss. We can start with a number of users that are using the
network, and set additional growth and loss variables (in percentages)
that define how this number changes over the next 10 years. This means
that every year, we expect a certain percentage change in users based
on the numbers of the previous year. Depending on how you set those
percentages, the number of users can grow very rapidly! Go ahead and
play with the following variables to see how the number of users
change over the years.
@ -210,40 +225,141 @@ class App extends Component {
<div ref={this.userConversionRef} />
<div ref={this.removalRateRef} />
<div ref={this.ensUserbarRef} />
<h3>Amount of SNT required to deposit</h3>
<h3>
US Dollar Amount of SNT to Deposit, Discount Rate, and Net Present
Value
</h3>
<p>
Now we have the amount of users that will (or have) use(d) this
utility. Lets figure out how that translates to SNT. In order to do
that, we have another variable to define: The amount of SNT required
to register an ENS username. By multiplying each user by this
variable, we can show how much SNT is being locked up every year which
effectively takes it out of the circulating supply, i.e.
Now the contract itself locks up a specific amount of SNT per
username, but the goal is to model around a reasonable target price in
US dollars and have the contract change over time to adapt as the
price of SNT changes. Why do we do this? In order to evaluate value
flow overtime we need a relatively stable unit by which to measure and
normalize the value flows. We use US dollars due to the size,
stability and data availability for that market. While one can argue
that US dollars do not maintain their value in the long term, they at
least depreciate at a stable and predictable rate. The mechanisms and
governance around how this price change works is a subject still under
discussion and will be addressed in future articles (but weve got
some really cool ideas). So the knob we choose to tweak here is the US
dollar amount of SNT to be locked up.
</p>
<div ref={this.dollarPriceDomainRef} />
<p>
An additional factor in using the US Dollar equivalent of SNT here is
that we can add a discounted cash flow analysis based on historical
data of USD. Future notebooks and articles will look into deriving and
modeling a discount rate purely in cryptocurrency. For brevity, this
article will only introduce the concept and gloss over a good portion
of the details and derivation of the terms within. For more
information, please visit the{' '}
<a href="https://observablehq.com/@bgits/status-cost-of-capital">
more detailed workbook
</a>
.
</p>
<p>
A simple surface level description of a discount rate is the rate you
use to figure out how much present value a known future cash flow is
worth. In other words, how to presently evaluate the amount of money
you know will come in the future. Once you have the discount rate, you
can calculate the <em>Net Present Value</em>, which is given by the
following formula:
</p>
<p>
<Latex displayMode>
{
'$$N_{\\text{SNT locked}} = N_{\\text{registrations}} * N_{\\text{SNT per registration}}$$'
'$$NPV = \\sum^n_{t=1} \\frac{R_t}{(1+i)^t} - \\text{initial cost}$$'
}
</Latex>
</p>
<div ref={this.amountDepositSntRef} />
<div ref={this.lockedSntBarRef} />
<h3>How to assign value to all of this?</h3>
<p>
Having the amount of SNT locked up is quite useful by itself. From
there, we can look at the circulating supply and see how this use-case
affects its availability. It is also interesting to see how this maps
to more traditional assets by looking at the current price of SNT in US Dollars
(USD). Since most evaluation mechanism use a market capitalization
(cap) metric to compare different networks and tokens, mapping each
use-case , and eventually the whole network, allows us to see how much
they contribute to a given market cap. By converting value flows to USD
we can also make use of established measures by which to discount future
value flows (10-year US Treasury rate) which are currently non-existant
among crypto assets.
where <Latex>$$t$$</Latex> is the number of time periods (10 in this
article),
<Latex>$$R_t$$</Latex>
is the cashflow of that particular time period , and{' '}
<Latex>$$i$$</Latex> is the discount rate. The concept of discounting
future value has been around for along time. The earliest known
reference was in the 6th century BCE{' '}
<a href="http://www.aramaic-dem.org/English/History/The%20proverbs%20of%20the%20Aramean%20Ahikar.pdf">
Proverbs of Ahiqar
</a>
:
</p>
<div ref={this.sntPriceRef} />
<blockquote>
A sparrow in thy hand is better than a thousand sparrows flying
</blockquote>
<p>
You have probably heard a more common version is this, and Warren
Buffet does a good job of{' '}
<a href="https://www.youtube.com/watch?v=BP_TUDOYDrg">
explaining it:
</a>
</p>
<blockquote>
How many birds are in the bush? When are you going to get them out?
and how sure are you?
</blockquote>
<p>
Either way, more details on how we can do this will be explained in a
future article. Below is a knob to change this discount rate. The
higher the rate, the more unsure you are about the future income. Play
with both of these knobs to find out how much money will be locked up
in the ENS username contract over 10 years.
</p>
<div ref={this.discountRateRef} />
<div ref={this.lockedUsdBarRef} />
<p>
and all of this gets summed together to give you the following Net
Present Value of ENS Usernames within Status:
</p>
<div className="slide">
<div ref={this.netPresentUtilityRef} />
</div>
<p>
In other words, after setting all of the above model inputs we have
finally come to a way of looking at how &quot;impactful&quot; ENS
usernames are in a single value. This value will become more useful as
we build out other models for other use cases so we can compare them
and see relative differences. Eventually, we will be able to see the
relatively impact a given utility within Status has within the entire
ecosystem.
</p>
<h2>Example Scenario Analysis</h2>
<p>
It is also useful to look at how this number changes as we tweak the
input variables to see their impact. As an example, let&apos;s look at
what happens if we are able to do something to increase the number
Status users who actualy register an ENS username (actually currently
in the works). This is an example of the question we postuated in the
beginning of this article. The default value is 50%, which leads to a
Net Present Utility Value of $8,527,197.00 (holding all default values
constant).
</p>
<p>
What happens if we&apos;re able to increase this number, say, to 75%?
Keeping all other variables equal, this change alone changes the Net
Present Utility Value to $12,815,797.00, which is a 50.3% growth and
would constitute a linear relationship.
</p>
<p>
As another example, let&apos;s look at what happens if we increase our
yearly growth rate, going from 300% per year to 350% per year. holding
everything else constant, with a 350% growth rate per year, we come to
Net Present Utility Value of $24,157,021.00, a 183% growth and would
constitue a superlinear relatinoship due to the effects of compounding
growth. Based on these two simple examples, it is clear we should
spend more time on user acquisition and continuious growth over
increasing ENS username conversion rates (OR BOTH!).
</p>
<p>
As you can see, by making models of our SNT use-cases, we can start to
ask questions and get numbers to give us actionable data (assuming a
decent accuracy of the model). Even if the actual numbers are
drastically wrong, but the relationships are correct, we can still
come away with quality information on how we spend our time, money,
and effort.
</p>
<h2>Thoughts and Conclusions</h2>
<p>
So what have we learned from all of this? How can we change the model
@ -274,11 +390,12 @@ class App extends Component {
means we would love to get feedback from you, the community. If we
have done something incorrectly, or you know of some way to better
model various aspects herein, please join the discussion. We will be
posting all of these articles in [DISCUSS WHERE WE WANT THIS TO LIVE].
posting all of these articles in{' '}
<a href="https://discuss.status.im">our discuss</a> and linking around
the internet in relevant places.
</p>
<h3>Future Improvements</h3>
<ul>
<li>discounted value rate</li>
<li>probability of failure</li>
<li>justifications using historical data</li>
<li>assign variables and create equations for each</li>