Harnessing Collector Psychology for Good

Back in my Defi Governance Endgame post I talk about the need for a new Sybil resistance mechanism to reduce the super-linear influence of capital on governance.

The first has to do with a different solution to Sybil resistance than money… In the long term I think we’ll see a bunch of Legos taking the form of things like POAPs, some on chain history oracles, social attestation systems, and implicit KYC systems such as being whitelisted by Nexus Mutual and others. While no Lego is perfect the combination of them will be sufficient to enable systems like quadratic funding to function.

Logris the Bard (yes I quoted myself; I’m that pretentious.)

An effective, permissionless, decentralized Sybil resistance platform has hundreds of potential uses as a Defi Lego ranging from enabling the creation of a credit system for undercollateralized loans, to enabling more egalitarian starting conditions in the oncoming flow of blockchain games, to helping mitigate Defi just becoming the next Plutocracy. So how might we build one?

In the traditional world, a background check might involve looking up your criminal record, your parking tickets, your address history, your employment history, tax returns, etc. The analogy to the blockchain is to lookup the platforms you’ve interacted with, the rug pulls that got you, what dips you bought, and the projects that KYC whitelisted you. If we want to build a Sybil resistance platform we’re either doing KYC which is basically an authority based attestation of identity, some sort of decentralized social attestation system like BrightID, or we’re using address history. That’s literally all we have to work with.

There have been projects that started on this concept but just didn’t carry it forward. If you haven’t heard of DefiDegen they scan blockchain indexes for address history, assign points to a subset of interesting events, and do an aggregation of the result into a single value. The process is centralized, the points are opinionated by them rather than whomever might consume this information, and the result isn’t on-chain so it’s limited in usefulness outside of putting it on your resume or bragging to your friends. RabbitHole has similar downsides, though they do have on-chain NFT’s. So what exactly would need to be built to enable this?

If you want to build a background check on the blockchain you should know Solidity does not allow you to reference previous state in contracts and obviously it’s not feasible to duplicate Etherscan API or Subgraphs on-chain. At face-value the premise is difficult. However, there is a much denser form of on-chain history that we are already building in a decentralized way: gamified behavior-incentivizing NFT’s. It’s clear to me that we’re going to see a lot more of these. They are a more economically efficient mechanism for incentivizing behavior than the liquidity mining incentives we’ve grown accustomed to, especially for things where you want a more egalitarian distribution such as governance participation, early adopter rewards, rewarding charitable behavior, etc. These NFT’s, while created for selfish reasons by each platform to encourage participation, represent an attestation of behavior that I believe we can use to assemble a decentralized public good that helps to solve the Sybil resistance problem.

These NFT’s are restricted in supply by prerequisite action; usually, but not always, by address history. If an NFT can only be minted if certain conditions are met, then the NFT’s original address is an oracle of those conditions expressed by the authorizer. It serves as a proxy of a longer form calculation that is done off-chain by a platform. It is an attestation of something by that platform. I believe a lot more of these NFT’s are on the way and they are being built in a decentralized way by each individual platform for their own selfish reasons. The opportunity here is bountiful; there is just one problem: the NFT’s themselves can be sold and their original address is not accessible to contracts.

The obvious solution then is for someone to build a struct of the NFT origin address. All you need is a contract containing a mapping(NFT => originalAddressSet) and some metadata about the NFT minting conditions that callers can use to build their own opinionated version of a background check. This is a comparatively manageable amount of data. As an on-chain oracle of history, such a mapping is highly compressed. It might even be feasible to mirror that structure across L2s.

An astute reader might note that a more generalized version of the above struct is to represent a mapping(attestationId => addressSet). This way we can leverage attestations of history that aren’t linked to an NFT but would still be a good indicator of uniqueness. Some examples of where you might want to are the set of users who donated to Gitcoin grants, have been KYC’d by Nexus Mutual, or have Twitter accounts linked to an NFT on Ethereum.

The technical feasibility of an attestation struct shouldn’t be a point of contention. It just requires some entity tables, some many-to-many mappings, and some permissions, nothing extraordinary. The majority of the work goes into the oracles which perform off-chain calculations prior to making each attestation. In the case of gamified NFT’s that work is done for us by platforms. For other attestations these attestations take a few generalized forms. Constructing a Sybil score from the resulting struct is up to the caller. The contract itself needn’t have an opinion on each attestation. The caller can aggregate the attestations into their own opinionated Sybil score. The larger looming problem is to assess the cost of maintaining this struct. So, let’s discuss a few economic and political points:

  1. Is the attestation struct is economical to build from a gas perspective?
  2. Can DAO’s be persuaded to fund this and participate in building this out in a decentralized way?
  3. Can we establish a long tail of revenue to maintain the infrastructure?

Let’s start by having a look at contract complexity. In terms of gas, the complexity is less than an ERC-20 transfer. ERC-20 transfers minimally have some require statements that check that you aren’t overdrawing the amount you have or your allowance and then update a mapping(address -> uint32) with a new value with yet more math. By contrast, updating our attestation struct needs to check the calling address for permission on that attestation, lookup an address set in the map, and append an address to it. This becomes even more economical when batched because the require statement and lookup only happen once. So on average, the gas is slightly higher than an ETH send but less than your average ERC-20. If we have a look at various L2 fees that puts us in the $0.1 to $0.25 range per attestation. As to which L2, the only requirement is that other contracts can reference this contract for the data; that’s the public good part. I think this disqualified Volitions, but let me know if you disagree. I actually don’t know how an L1 contract calls a view function on a contract within the OVM for example, but the data is all on chain so I don’t see why it wouldn’t be possible.

There’s some wiggle room in how this is done depending on who is paying the fee. If users are paying the fee then the permission for the attestation has to be a parameter to the function call (signed message by contract owner) and has to be verified on-chain which costs gas. I’m not convinced that is viable unless the system is just so fun to use and becomes adopted by enough other Defi Legos that people actively spend gas to forge their identity. I think there will be much higher engagement/adoption if the gas is paid for POAP style. The downside of course is the attestation contract has to get the ETH to pay for gas somehow. So let’s talk about how we might go about that.

Remember those gamified NFT’s? They create engagement for DAO’s. Therefore DAO’s should be willing to pay something for it. Is a $0.1-$.25 user acquisition expense reasonable for DAOs? To put this in perspective, banks pay $500-$1000 per customer acquisition and if you think that’s expensive you should run the numbers on liquidity mining. How many unique users are Impermax or xToken getting for the massive treasury spend they have? While a baseline of liquidity is required for those platforms to function and some liquidity mining is necessary to maintain competitive rates and attract capital the comparable marketing efficiency of the Zapper quest system is undeniable.

Consider this from the perspective of a DAO that wants to jump on the gamified NFT bandwagon to promote their platform. Right now, they have to spend developer hours to build their own system. They have to find their own artists, write their own NFT contracts, write their own permission system for minting the NFT’s, and write frontend code to expose this functionality. It’s a lot of common work and once it is built it’s up to them to market it; there’s no synergy with other platforms, no consistency in experience, etc. If instead we can provide a platform for minting these gamified NFT’s not only does it remove this common work from the DAO’s but it offers several other benefits. It increases discoverability for their NFT’s in the same way that OpenSea does, it improves user viewing/tracking experience like Zapper or Zerion do, it serves as a peer to peer matching platform for DAO’s to artists, and the entire ecosystem benefits from the attestation structure which can become a Defi lego for Sybil resistance. Is a $0.1-$.25 expense per attestation a reasonable tradeoff for these benefits? It’s a matter of opinion but I hope so.

How would this expense be structured? I think it’s fair to charge the DAOs an initial setup fee. How much to charge would depend on the whether they want the platform to do the dev work for the art and the Etherscan API/subgraph queries. Beyond that, how do we pay for the gas and long term infrastructure such as the backend and website hosting? My suggestion would be UMA KPI’s for engagement in the short term and a rake on NFT trading proceeds in the longer term. A KPI also opens an avenue to reward platform evangalists who market this platform and encourage people to try it. I can also see a good case being made for Gitcoin grants to fund the gas due to the public good aspect. Some combination of all of the above may prove viable.

In summary, gamified behavior-incentivizing NFT’s are on the way in droves, they can be used to build a decentralized ID system, there is a market niche for a platform to support this growing trend, and funding this platform POAP style may be economically viable. In my view, that, my friends, is how you harness the power of collector psychology for good.