30 votes

Reddit starts an Ethereum scalability competition in order to launch Community Points (monetization of karma) site-wide

Here is the admin post in r/ethereum announcing the contest and below is the text of that post.


Previous Tildes and r/TheoryOfReddit discussions on this:


tl;dr: Do you believe your Ethereum scaling technology can handle Reddit's scale? It's time to let the Ethereum community hear about it. Send your demo in the comments by July 31, 2020.

This is your chance to earn some fame but, to be clear, there is no prize if your solution is chosen or modified to meet Reddit’s needs. Our lawyer made us write this.

https://preview.redd.it/q7hhi6lzlp551.png?width=1200&format=png&auto=webp&s=cdb26cbbe59e26f4fc73da5740da1308e2a87579

The Goal

In conjunction with the Ethereum Foundation, Reddit is inviting Ethereum scaling projects to show the community how your scaling solution can be used to bring Community Points to mainnet. Our goal is to find a solution that will support hundreds of thousands of Community Points users on mainnet today, and can eventually scale to all of Reddit (430 million monthly users).

We’ve evaluated some of the most promising scaling solutions, and have learned a few things:

  1. There are plenty of awesome projects that we don't know about yet. We seem to learn about a promising new scaling solution every day.
  2. Most existing scaling solutions focus on the exchange use case, which favors optimizing for transfers. Many of these designs don't take into consideration the costs of obtaining tokens or entering the scaling system, which can be significant. Community Points distributions have cost an order of magnitude more gas than all other operations combined, primarily due to on-chain storage costs associated with onboarding new users.
  3. It's unclear how to determine the best solution. There is a lot of code, a lot of documentation, and a lot of hype out there. But there are very few objective real-world reviews or comparisons of various products/implementations.
  4. We need the Ethereum community's help to figure this out.

Do you have a scaling project that meets the criteria below? If so, share your demo in the comments of this post by July 31, 2020. Please note that all demos need to simulate Community Points usage for 100,000 users.

We also invite all scaling experts in the Ethereum community to comment on any demos submitted to enable a better understanding of the trade-offs and compromises between different solutions.

We will review the demos and plan to share any updates by September. While we don’t expect any novel scaling projects, we hope that you, the Ethereum scaling expert, can show us how to scale Community Points.

Demos should include:

  1. A live proof of concept showing hundreds of thousands of transactions
  2. Source code (for on & off-chain components as well tooling used for the PoC). The source code does not have to be shared publicly, but if Reddit decides to use a particular solution it will need to be shared with Reddit at some point
  3. Documentation
    1. How it works & scales
    2. Cost estimates (on-chain and off-chain)
    3. How to run it
    4. Architecture
    5. APIs (on chain & off)
    6. Known issues or tradeoffs
  4. Summary of cost & resource information for both on-chain & off-chain components used in the PoC, as well as cost & resource estimates for further scaling. If your PoC is not on mainnet, make note of any mainnet caveats (such as congestion issues).

Requirements

Scaling. This PoC should scale to the numbers below with minimal costs (both on & off-chain). There should also be a clear path to supporting hundreds of millions of users.

  • Over a 5 day period, your scaling PoC should be able to handle:
    • 100,000 point claims (minting & distributing points)
    • 25,000 subscriptions
    • 75,000 one-off points burning
    • 100,000 transfers

Decentralization. Solutions should not depend on any single third-party provider.

  • We prefer solutions that do not depend on specific entities such as Reddit or another provider, and solutions with no single point of control or failure in off-chain components, but recognize there are numerous trade-offs to consider

Usability. Scaling solutions should have a simple end user experience.

  • Users shouldn't have to maintain any extra state/proofs, regularly monitor activity, keep track of extra keys, or sign anything other than their normal transactions
  • Transactions complete in a reasonable amount of time (seconds or minutes, not hours or days)
  • Free to use for end users (no gas fees, or fixed/minimal fees that Reddit can pay on their behalf)
  • Bonus points:
    • Users should be able to view their balances & transactions via a blockchain explorer-style interface
    • Exiting is fast & simple

Interoperability. Compatibility with third party apps (wallets/contracts/etc) is necessary.

  • Scaling solutions should be extensible and allow third parties to build on top of it
  • APIs should be well documented and stable
  • Documentation should be clear and complete
  • Third-party permissionless integrations should be possible & straightforward
  • Simple is better. Learning an uncommon or proprietary language should not be necessary. Advanced knowledge of mathematics, cryptography, or L2 scaling should not be required. Compatibility with common utilities & toolchains is expected.
  • Bonus Points: Show us how it works. Do you have an idea for a cool new use case for Community Points? Build it!

Security. Users have full ownership & control of their points.

  • Balances and transactions cannot be forged, manipulated, or blocked by Reddit or anyone else
  • Users should own their points and be able to get on-chain ERC20 tokens without permission from anyone else
  • Points should be recoverable to on-chain ERC20 tokens even if all third-parties involved go offline
  • A public, third-party review attesting to the soundness of the design should be available
  • Bonus points:
    • Public, third-party implementation review available or in progress
    • Compatibility with HSMs & hardware wallets

Other Considerations

  • Minting/distributing tokens is not performed by Reddit directly [1]
  • One off point burning, as well as recurring, non-interactive point burning (for subreddit memberships [2]) should be possible and scalable
  • Fully open-source solutions are strongly preferred

[1] In the current implementation, Reddit provides signed data for claims, but does not submit the actual claim transaction for the user (the user does that themselves). Note that smart contracts are considered independent of Reddit provided there is a path to decentralizing control over them.

[2] Subreddit memberships are currently implemented as a contract acting as an ERC777-style operator that can burn points on a monthly basis, but we are open to changing that implementation.

Community Points Overview

To help you get started, this is an overview of how Community Points work today and some stats on how it's used. We are open to changing most implementation details, provided the basic requirements (above) are met.

Usage stats over the past month

Number of Community Points holders: ~17,500

Number of transfers: ~20,000

(reference: reddit.dappradar.com)

Number of subreddit memberships: ~800

Contracts

Community Points is built around 3 contracts:

  1. SubredditPoints: the ERC20 token
  2. Distributions: manages token supply & token claims
  3. Subscriptions: enables membership subscriptions in the form of recurring token burn

Deployed Contracts & Source Code

r/FortniteBR

SubredditPoints: https://rinkeby.etherscan.io/address/0xe0d8d7b8273de14e628d2f2a4a10f719f898450a

Subscriptions: https://rinkeby.etherscan.io/address/0x396b89db5e9317ff25360c86bd4e2aae3bbc62ea

Distributions: https://rinkeby.etherscan.io/address/0xc0c08af3f2a3f8d6730118e0d2de4367053ebddf

r/CryptoCurrency

SubredditPoints: https://rinkeby.etherscan.io/address/0xdf82c9014f127243ce1305dfe54151647d74b27a

Subscriptions: https://rinkeby.etherscan.io/address/0x77cb2dbeadb7313242d7f3070ce8fc98e96080e4

Distributions: https://rinkeby.etherscan.io/address/0x1c5122bfeba106eea33cf5bdf2004ab22213ca20

Points Distribution & Claims

Token supply is controlled by distribution rounds managed in the Distributions contract and triggered by Reddit. For each round (occurring ~monthly), Reddit submits a proposal for points distribution to a subreddit for approval. Once approved, Reddit issues signed claims for individual users according to the agreed upon points distribution. These claims can be redeemed on-chain. Claims are obtained from Reddit, and submitted to the Distributions contract, which validates the claim and calls the Subreddit Points contract to mint points.

https://preview.redd.it/lunpaj18mp551.png?width=1120&format=png&auto=webp&s=da31db1db07cfe4f327692a7398772019b8eb7bd

Memberships

Subreddit memberships are obtained by burning points via the Subscriptions contract. Redditors can optionally configure their membership to be renewable on a monthly basis without additional interaction. The Subscriptions contract is granted permission to burn points by being configured as an ERC777-style default operator in the Subreddit Points contract.

https://preview.redd.it/bqnvt50amp551.png?width=1120&format=png&auto=webp&s=812f46a0308aea370908eb73ca93abac810e58ba

***

We'll be watching this thread and answering questions. Looking forward to what comes out of this!

23 comments

  1. [2]
    NaraVara
    (edited )
    Link
    Given the root cause of so much of what is bad about Reddit--like the preponderance of low-effort content, the tendency towards enforcing group-think, and the radicalization loops those...

    Given the root cause of so much of what is bad about Reddit--like the preponderance of low-effort content, the tendency towards enforcing group-think, and the radicalization loops those group-think mechanisms push young people into--can be partly blamed on the karma system, I cannot imagine how anyone would think monetizing those sorts of engagement dynamics could possibly be healthy for the site or its community.

    I think I get the bigger plan here, which I suspect was to encourage more engaged and professional moderation by creating a scheme for paying moderators and high-impact/influencerish users without it needing to come out of their own balance sheet. But I can only see this backfiring badly. The etherium compensation is too volatile and too small to really compensate any mod for their time so it won't achieve that goal. The admins may also think that having some stakes in moderating a community gives them a bigger stick when they quarantine or "demonetize" that community, thereby pressuring mods to care more about keeping their subs "up to standard." I don't think that will work very well either.

    Meanwhile, it will further encourage vote manipulation and groupthink. And will do nothing about the problem of radicalizing vulnerable people who are prone to flirting with extremist ideologies.

    50 votes
    1. Omnicrola
      Link Parent
      This is nausea-inducing levels of bad idea. As mentioned, karma-farming and vote manipulation are already rampant, and it has no monetary value. If karma becomes tied to any level of monetary...

      This is nausea-inducing levels of bad idea. As mentioned, karma-farming and vote manipulation are already rampant, and it has no monetary value. If karma becomes tied to any level of monetary value, the incentive to break/manipulate the system just skyrockets.

      Hell, look at what happened with Steam Trading Card Scams. People will exploit the shit out of any money<->karma system, no matter how "robust" or "secure" they think it is.

      32 votes
  2. [5]
    EditingAndLayout
    Link
    Reading through this page, and man, this is the dumbest idea Reddit has tried yet—by far. And I remember Reddit Notes. You think karma farming and "power mods" are bad now?

    Reading through this page, and man, this is the dumbest idea Reddit has tried yet—by far. And I remember Reddit Notes. You think karma farming and "power mods" are bad now?

    28 votes
    1. [3]
      KapteinB
      Link Parent
      What was Reddit Notes?

      What was Reddit Notes?

      6 votes
      1. [2]
        GhostHardware
        Link Parent
        You're in for a treat. It was one of Reddit's weirdest, most misguided projects. My memory is a bit fuzzy, because it's been a while, but this is the basic gist of what happened: Several years...

        You're in for a treat. It was one of Reddit's weirdest, most misguided projects. My memory is a bit fuzzy, because it's been a while, but this is the basic gist of what happened:

        Several years ago, Reddit officially announced something called "Reddit Notes" in a blogpost that was so vague it explained exactly nothing. The best people could make of it at the time was that it was going to be some sort of stocks scheme masquerading as Reddit-branded cryptocurrency. As this was at the height of the cryptocurrency mania, the voices of those questioning the legality of the whole project were quickly drowned out by crypto enthusiasts.

        To implement the (very vaguely defined) project, Reddit hired a guru-wannabe techbro who was given complete freedom to work on the project on his own, without clear goals or deadlines -- or even the tiniest shred of guidance as to what Reddit Notes was even supposed to be.

        Some time passed, and the only thing said techbro had done in the meantime was spending all his time rewriting bitcoin in javascript (???). This spectacular feat of incompetence wasn't even entirely his own fault, because none of the people who came up with the project gave him any specific tasks, except for the a vague instruction to "build Reddit notes (whatever that is going to be)". Because no one, not even the higherups who came up with the plan, could explain what Reddit notes was all about, he was let go, and the project was (quietly) scrapped.

        18 votes
    2. googs
      Link Parent
      I really don't see the benefit of having community points and coins. I guess you can't buy community points, but you can buy the main benefit of having points. Really just feels like another way...

      People who don't have Community Points can also buy Memberships in dollars. In this case, Reddit will burn some Community Points on their behalf.

      I really don't see the benefit of having community points and coins. I guess you can't buy community points, but you can buy the main benefit of having points. Really just feels like another way for reddit to profit off its users.

      And the whole "free the internet" rhetoric is pretty ironic coming from a company like reddit.

      3 votes
  3. imperialismus
    Link
    Reddit karma as money is the stupidest idea I’ve ever heard. Likely it’s not going to obtain any real value, and if it does, it will destroy the site. It’s the definition of a lose-lose situation.

    Reddit karma as money is the stupidest idea I’ve ever heard. Likely it’s not going to obtain any real value, and if it does, it will destroy the site. It’s the definition of a lose-lose situation.

    18 votes
  4. [6]
    zptc
    Link
    What's in it for the programmers who submit demos with no apparent chance of compensation?

    What's in it for the programmers who submit demos with no apparent chance of compensation?

    10 votes
    1. [4]
      culturedleftfoot
      Link Parent
      That always-valuble Exposure, I'm guessing.

      That always-valuble Exposure, I'm guessing.

      13 votes
      1. [3]
        Deimos
        (edited )
        Link Parent
        Yes, they literally say that: A company that's taken $500 million in venture capital over the last few years asking users to solve the difficult engineering problems so their weird cryptocurrency...

        Yes, they literally say that:

        This is your chance to earn some fame but, to be clear, there is no prize if your solution is chosen or modified to meet Reddit’s needs. Our lawyer made us write this.

        A company that's taken $500 million in venture capital over the last few years asking users to solve the difficult engineering problems so their weird cryptocurrency system can actually work, for zero compensation.

        It's not even a "help point us in the right direction", but comes with a huge list of extensive and specific requirements for what makes an "eligible entry". Eligible to... receive nothing. Just plain insulting.

        36 votes
        1. Algernon_Asimov
          Link Parent
          That was my thought, too. "We're asking you to do this work for free, instead of hiring people or paying contractors." It's a total rip-off.

          A company that's taken $500 million in venture capital over the last few years asking users to solve the difficult engineering problems so their weird cryptocurrency system can actually work, for zero compensation.

          That was my thought, too. "We're asking you to do this work for free, instead of hiring people or paying contractors." It's a total rip-off.

          11 votes
        2. Kenny
          Link Parent
          Without thinking past to the consequences of making karma become money, this is the absolute nail in the coffin for me. How in the world would they think it's a good idea to host a "competition"...

          Without thinking past to the consequences of making karma become money, this is the absolute nail in the coffin for me. How in the world would they think it's a good idea to host a "competition" like this and why would anyone in their right mind participate?

          7 votes
  5. post_below
    Link
    It's not just that it's a terrible idea (as others have said), it's also that they're spending so much user goodwill capital all at once. The contest is anger inducingly tone deaf. Even a smallish...

    It's not just that it's a terrible idea (as others have said), it's also that they're spending so much user goodwill capital all at once.

    The contest is anger inducingly tone deaf. Even a smallish prize would cost them virtually nothing relative to their operating budget and would at least make up for some of the developer hours they're asking for.

    Add that to monetization of karma and any remaining credibility as an alternative to the social media giants is gone.

    The willingness to do that says a lot about their roadmap.

    10 votes
  6. [2]
    moriarty
    Link
    Apart from how silly it is for reddit to monetize karma, scaling the ethereum network to this level will never work. The ethereum network almost collapsed at the end of 2017 under the weight of a...

    Apart from how silly it is for reddit to monetize karma, scaling the ethereum network to this level will never work. The ethereum network almost collapsed at the end of 2017 under the weight of a much lesser app - cryptokitties - taking up 30% of the network, pushing transaction fees to prohibitively expensive numbers and almost grinding it to a halt.

    9 votes
    1. Macil
      (edited )
      Link Parent
      That's why they're doing this competition to find a layer 2 scaling strategy, so the token transfers aren't all regular on-chain transactions. The point of this is to not copy what Cryptokitties...

      That's why they're doing this competition to find a layer 2 scaling strategy, so the token transfers aren't all regular on-chain transactions. The point of this is to not copy what Cryptokitties did. Cryptokitties was bad for the network because it caused an absolute ton of regular on-chain transactions.

      Layer 2 scaling systems let you do transactions off-chain, but still with most of the important guarantees of on-chain transactions. A really simple layer 2 system to understand is payment channels: if you have two people sending money back and forth between each other regularly, then instead of making on-chain transactions, they could set things up so they can sign transactions and send the transactions directly to each other instead of to the blockchain. It works like an open tab at a bar: they tally up a running total, and then eventually close the tab as a single on-chain transaction that acts as the sum of all the off-chain transactions. If either tries to cheat the system by omitting some off-chain transactions, then the smart contract allows the other person to submit the missing off-chain transactions for a limited time, and the contract can right it and even penalize the cheater. Some layer 2 systems are an extension of this to multiple people, though some others work very differently.

      (It's also interesting to note that on-chain layer 1 transactions are going to get a huge scaling improvement with Ethereum 2.0 which introduces sharding, but that may be a few years away.)

      I'm happy that this event might cause layer 2 scaling systems to get some development and popularity, though I'm not really sure how much if at all the actual Reddit tokens make sense.

      9 votes
  7. [3]
    admicos
    Link
    oh god they're digging their own grave even deeper I wonder how people will manage to pump-and-dump these redditbux. I doubt the minds that figured out "HEY WE SHOULD HAVE A CRYPTOCURRENCY" would...

    oh god they're digging their own grave even deeper

    I wonder how people will manage to pump-and-dump these redditbux. I doubt the minds that figured out "HEY WE SHOULD HAVE A CRYPTOCURRENCY" would know how to prevent such thing. Now, I don't know how to either, but at least I am not trying to shove buzzwords into anything I touch in order to keep it relevant or make more $$ or whatever they're trying to do.

    I was thinking of making an unofficial frontend for reddit kinda like invidio.us or nitter because I'm sure they'll eventually force all this crap onto us, probably deleting old.reddit in the process. Would that be smart? idk...

    8 votes
    1. [2]
      heady
      Link Parent
      I would certainly use an alt front end for reddit. I suppose for certain use cases the subreddit rss feeds would suffice but not for the community centric subreddits.

      I would certainly use an alt front end for reddit.

      I suppose for certain use cases the subreddit rss feeds would suffice but not for the community centric subreddits.

      1 vote
      1. moocow1452
        Link Parent
        I know that Reditr is a thing for Chrome and Pushshift is a third party search that works pretty well despite being an unofficial project. I've also seen other Reddit frontend clones on the net...

        I know that Reditr is a thing for Chrome and Pushshift is a third party search that works pretty well despite being an unofficial project. I've also seen other Reddit frontend clones on the net that pull from the api, but nothing really to write home about.

        3 votes
  8. moocow1452
    Link
    What's the over/under on someone on the board stealing from the cryptotill within a year, since that seems to be du jour for these sorts of things?

    What's the over/under on someone on the board stealing from the cryptotill within a year, since that seems to be du jour for these sorts of things?

    6 votes
  9. zigzagzig
    Link
    I think reddit points will do well in certain communities. Look at how much the Fortnite subreddit is using them, definitely a use case there. https://reddit.dappradar.com/ - pretty good stats on...

    I think reddit points will do well in certain communities. Look at how much the Fortnite subreddit is using them, definitely a use case there.

    https://reddit.dappradar.com/ - pretty good stats on the ForniteBR reddit

    4 votes
  10. A1kmm
    Link
    I really don't understand the value of a blockchain solution that is only meaningful in the context of a centralised website. If you don't trust Reddit in this, using this wouldn't make sense,...

    I really don't understand the value of a blockchain solution that is only meaningful in the context of a centralised website. If you don't trust Reddit in this, using this wouldn't make sense, because Reddit still has significant control over the scheme. If everyone using it trusts Reddit, then there are much more efficient and privacy conscious schemes possible that would rely on Reddit as a trusted central party.

    4 votes