The Case for Onchain Behavioral Profiles

Poolside Network
4 min readSep 26, 2020

--

The Bogdanoff meme you don’t see in DeFi.

With the launch of dozens of yield farming and liquidity mining campaigns over the last few months increasingly revealing the problem of “opportunistic liquidity”, there has been a growing amount of discussion regarding the need for lockups or other methods of incentivizing long-term support of DeFi protocols.

Opportunistic liquidity has introduced a type of game theory dilemma to liquidity mining.

The most opportunistic liquidity providers, who are often the largest by volume, create inflationary pressure on tokens by market selling farmed tokens immediately after distribution. This often leads to a vicious cycle, where once other liquidity providers know that whales are treating farmed tokens as cashflow and creating notable sell pressure on the token price, they feel that they have no choice but to sell farmed tokens and avoid being on the wrong side of the inflationary pressure.

To deal with the problem of opportunistic liquidity, the main solutions have been to either require or incentivize long-term liquidity. In the “lockup” variation, provided liquidity is locked by a staking contract for a certain amount of time before it can be unstaked along with earned dividends. The second variation is incentivizing long-term liquidity, where the rate of earned rewards increases the longer that liquidity is provided but the liquidity can still be withdrawn at any time. Various projects have utilized both of these solutions.

What these time-based incentives have in common is that they are relatively easy to add into a staking or liquidity mining contract, as it simply involves keeping track of the amount of blocks that have elapsed since liquidity was provided by a particular account and using that in a calculation to determine the amount of rewards earned. But in their simplicity, time-based liquidity restrictions and incentives are also ignoring everything else besides the simple factor of how long an account has staked tokens.

Current liquidity incentive designs treat all liquidity providers as fully fungible and interchangeable, ignoring the growing amount of history demonstrating how accounts behave over time.

This is largely because of the sheer difficulty of treating accounts as anything but fully interchangeable. While looking up an internal storage value or a current token balance or LP token balance for an account can be done very easily in a Solidity contract, most contract standards (ERC-20, ERC-721, etc.) do not provide any type of information about the history of an account. This is a direct result of blockchain architecture, where contracts contain a storage of current balances and can emit events but there is no built-in notion of account history or ability to perform complex data queries. The graph protocol now provides a way to query historical blockchain data offchain, and can be combined with oracle systems such as Chainlink so that the resulting data brought back onchain can be trusted as being accurate.

If such a behavioral profile existed onchain, it could provide easily accessible information such as:

  • The average balance of a certain token that an account has held over a specified period of time
  • The amount of variance in an account’s balance of a specified token and other information used to determine how “opportunistic” an account has historically been.
  • Other proxy information for “time spent on a network”

As to why protocols and staking contracts would want this type of behavioral profile? A simple example is governance. Imagine a voting app like Snapshot that weighted votes based on how long an account has continuously held the governance token used for voting. It would not be as effective in this case to temporarily buy governance tokens for the purpose of casting a single vote, or setup vote delegation schemes that may not be in the community’s interest.

The broader use-case is a portable reputation that is somewhat analogous to credit scores. Since modern credit first emerged in the early 19th century, the point of a credit profile has been to share information among merchants and banks about which borrowers, based on their existing history, are the most or least likely to pay their debts. While lenders could individually track this information only based on their own history with a borrower, it became far more useful as a behavioral profile that could be shared so that a merchant could know how much credit to offer to a borrower without needing to go through the time consuming process of establishing their own siloed credit history. Shared credit profiles were also useful to borrowers, at least the ones who did pay their debts, as it allowed them to have a portable reputation that didn’t need to be constantly re-established.

The case for onchain behavioral profiles is that contracts for staking, yield farming, governance, etc. and their communities may benefit from the same type of portable reputation that is currently quite difficult to access offchain, and basically impossible to access onchain. This isn’t a small task. Setting aside the technical and practical difficulties (high gas fees being an obvious challenge for the foreseeable future), to succeed a project such as this one requires establishing community-driven standards for what an onchain behavioral profile should consist of, particularly for the type of more complex metrics that involve some amount of subjectivity in terms of how to establish not just what an account has done in the past, but what “type” of account they are based on this history.

For now, the most helpful thing to establish is feedback from protocol developers, liquidity providers, and other stakeholders about whether this type of onchain behavioral profile would be useful, and how they would like to use it.

Have thoughts? Mention @PoolsideNetwork on Twitter, or email info@poolside.network.

--

--