https://www.reddit.com/r/ethereum/comments/hbjx25/the_great_reddit_scaling_bakeoff/
created by jarins on 18/06/2020 at 18:13 UTC*
1399 upvotes, 98 top-level comments (showing 25)
Update (9/30): We are still working on finalizing our scaling solution. We've been very impressed with the breadth and depth of proposals submitted in this Bake-Off. Many projects have done great work, and it's good to see so many ideas in the Ethereum ecosystem.
While we are continuing our due diligence, it's taking a bit longer than we expected to understand all the options in detail. As soon as we have more to share, we will make an update here. Thank you for your patience.
Update (8/3): Thanks to all the teams who submitted a proposal. We appreciate the work you put in, and we have begun reviewing the submissions. If we have follow-up questions, we will post them as comments on the submission posts. Thank you.
Submissions will be organized in a collection alongside this post. We welcome the community to leave questions and comments on the proposals.
While we prefer proposals to be public, if there is information you need to share privately, please send it to jarins@reddit.com[1].
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.
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[2] 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).
2: http://reddit.com/community-points
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 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.
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).
[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.
To help you get started, this is an overview of how Community Points[3] 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.
3: https://www.reddit.com/community-points/
Number of Community Points holders: ~17,500
Number of transfers: ~20,000
(reference: reddit.dappradar.com)
Number of subreddit memberships: ~800
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
SubredditPoints: https://rinkeby.etherscan.io/address/0xe0d8d7b8273de14e628d2f2a4a10f719f898450a[4][5]
4: https://rinkeby.etherscan.io/address/0xe0d8d7b8273de14e628d2f2a4a10f719f898450a
5: https://rinkeby.etherscan.io/address/0xe0d8d7b8273de14e628d2f2a4a10f719f898450a
Subscriptions: https://rinkeby.etherscan.io/address/0x396b89db5e9317ff25360c86bd4e2aae3bbc62ea[6][7]
6: https://rinkeby.etherscan.io/address/0x396b89db5e9317ff25360c86bd4e2aae3bbc62ea
7: https://rinkeby.etherscan.io/address/0x396b89db5e9317ff25360c86bd4e2aae3bbc62ea
Distributions: https://rinkeby.etherscan.io/address/0xc0c08af3f2a3f8d6730118e0d2de4367053ebddf[8][9]
8: https://rinkeby.etherscan.io/address/0xc0c08af3f2a3f8d6730118e0d2de4367053ebddf
9: https://rinkeby.etherscan.io/address/0xc0c08af3f2a3f8d6730118e0d2de4367053ebddf
SubredditPoints: https://rinkeby.etherscan.io/address/0xdf82c9014f127243ce1305dfe54151647d74b27a[10][11]
10: https://rinkeby.etherscan.io/address/0xdf82c9014f127243ce1305dfe54151647d74b27a
11: https://rinkeby.etherscan.io/address/0xdf82c9014f127243ce1305dfe54151647d74b27a
Subscriptions: https://rinkeby.etherscan.io/address/0x77cb2dbeadb7313242d7f3070ce8fc98e96080e4[12][13]
12: https://rinkeby.etherscan.io/address/0x77cb2dbeadb7313242d7f3070ce8fc98e96080e4
13: https://rinkeby.etherscan.io/address/0x77cb2dbeadb7313242d7f3070ce8fc98e96080e4
Distributions: https://rinkeby.etherscan.io/address/0x1c5122bfeba106eea33cf5bdf2004ab22213ca20[14][15]
14: https://rinkeby.etherscan.io/address/0x1c5122bfeba106eea33cf5bdf2004ab22213ca20
15: https://rinkeby.etherscan.io/address/0x1c5122bfeba106eea33cf5bdf2004ab22213ca20
From these proxy addresses, you can find the implementation contracts and source code using Etherscan's Proxy Contract Verification tool[16] or Read Proxy Contract interface[17].
16: https://rinkeby.etherscan.io/proxyContractChecker?a=0xdf82c9014f127243ce1305dfe54151647d74b27a
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.
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.
We'll be watching this thread and answering questions. Looking forward to what comes out of this!
Comment by j0j0r0 at 24/07/2020 at 20:45 UTC
199 upvotes, 12 direct replies
Dragonchain has demonstrated **twice Reddit’s entire total daily volume (votes, comments, and posts** **per Reddit 2019 Year in Review**[1]**)** in a 24-hour demo[2] on an operational network. Every single transaction on Dragonchain is decentralized immediately through 5 levels of Dragon Net, and then secured with combined proof on **Bitcoin**, **Ethereum**, **Ethereum Classic**, and **Binance Chain**, via Interchain. At the time, in January 2020, the entire cost of the demo was approximately $25K on a single system (transaction fees locked at $0.0001/txn). With current fees (lowest fee $0.0000025/txn), this would cost as little as $625.
1: https://redditblog.com/2019/12/04/reddits-2019-year-in-review/
2: https://youtu.be/pSfBid1_US4
If you’d like to read the full proposal with formatting go to the Dragonchain blog[3].
3: https://dragonchain.com/blog/reddit-ethereum-blockchain-scalability
I’m Joe Roets, Founder & CEO of Dragonchain. When the team and I first heard about The Great Reddit Scaling Bake-Off we were intrigued. We believe we have the solutions Reddit seeks for its community points system and we have them at scale.
For your consideration, we have submitted our proposal below. The team at Dragonchain and I welcome and look forward to your technical questions, philosophical feedback, and fair criticism, to build a scaling solution for Reddit that will empower its users. Because our architecture is unlike other blockchain platforms out there today, we expect to receive many questions while people try to grasp our project. I will personally answer all questions across two locations. First, I will be live on a special episode of Super Happy Dragon Lucky, Tuesday, July 28th at **6PM EST** where I will answer questions. I will then answer all questions here in this thread on Reddit.
We have seen good discussions so far in the competition. We hope that Reddit’s scaling solution will emerge from The Great Reddit Scaling Bake-Off and that Reddit will have great success with the implementation.
Turn on notifications if you’d like to be reminded about the livestream
Dragonchain is a robust open source hybrid blockchain platform that has proven to withstand the passing of time since our inception in 2014. We have continued to evolve to harness the scalability of private nodes, yet take full advantage of the security of public decentralized networks, like Ethereum. We have a live, operational, and fully functional Interchain network integrating Bitcoin, Ethereum, Ethereum Classic, and ~700 independent Dragonchain nodes. Every transaction is secured to Ethereum, Bitcoin, and Ethereum Classic. Transactions are immediately usable on chain, and the first decentralization is seen within 20 seconds on Dragon Net. Security increases further to public networks ETH, BTC, and ETC within 10 minutes to 2 hours.
Smart contracts can be written in any executable language, offering full freedom to existing developers. We invite any developer to watch the demo, play with our SDK’s, review open source code, and to help us move forward. Dragonchain specializes in scalable loyalty & rewards solutions and has built a decentralized social network on chain, with very affordable transaction costs. This experience can be combined with the insights Reddit and the Ethereum community have gained in the past couple of months to roll out the solution at a rapid pace.
In *The Great Reddit Scaling Bake-Off* post, Reddit has asked for a series of demonstrations, requirements, and other considerations. In this section, we will attempt to answer all of these requests.
A live proof of concept showing hundreds of thousands of transactions
On Jan 7, 2020, Dragonchain hosted a 24-hour live demonstration during which a quarter of a billion (250 million+) transactions executed fully on an operational network. **Every single transaction** on Dragonchain is decentralized immediately through 5 levels of Dragon Net, and then secured with **combined proof** on **Bitcoin**, **Ethereum**, **Ethereum Classic**, and **Binance Chain**, via Interchain. This means that every single transaction is secured by, and traceable to these networks. An attack on this system would require a simultaneous attack on all of the Interchained networks.
4: https://youtu.be/pSfBid1%5C_US4
5: https://youtu.be/pSfBid1_US4
The demonstration was of a single business system, and any user is able to scale this further, by running multiple systems simultaneously. Our goals for the event were to demonstrate a consistent capacity greater than that of Visa over an extended time period.
Tooling to reproduce our demo is available here:
https://github.com/dragonchain/spirit-bomb[6][7]
6: https://github.com/dragonchain/spirit-bomb
7: https://github.com/dragonchain/spirit-bomb
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.
How it works & scales
8: https://github.com/dragonchain/dragonchain
9: https://github.com/dragonchain/spirit-bomb
10: https://github.com/dragonchain/
Dragonchain’s architecture attacks the scalability issue from multiple angles. Dragonchain is a hybrid blockchain platform, wherein every transaction is protected on a business node to the requirements of that business or purpose. A business node may be held completely private or may be exposed or replicated to any level of exposure desired.
Every node has its own blockchain and is independently scalable. Dragonchain established *Context Based Verification* as its consensus model. Every transaction is immediately usable on a trust basis, and in time is provable to an increasing level of decentralized consensus. A transaction will have a level of decentralization to independently owned and deployed Dragonchain nodes (~700 nodes) within seconds, and full decentralization to BTC and ETH within minutes or hours. Level 5 nodes (Interchain nodes) function to secure all transactions to public or otherwise external chains such as Bitcoin and Ethereum. These nodes scale the system by aggregating multiple blocks into a single Interchain transaction on a cadence. This timing is configurable based upon average fees for each respective chain.
For detailed information about Dragonchain’s architecture, and *Context Based Verification*, please refer to the Dragonchain Architecture Document[11].
11: https://dragonchain.com/Dragonchain-Architecture.pdf
Comment by Sargos at 18/06/2020 at 19:32 UTC
63 upvotes, 2 direct replies
These requirements are really the holy grail of scaling. I really hope something out there is able to fit the bill as it will unlock the doors to many further applications!
Comment by EvanVanNess at 29/07/2020 at 21:19 UTC*
1 upvotes, 4 direct replies
This will be a running thread of submissions:
​
3: https://www.reddit.com/r/ethereum/comments/i07h1g/matic_networks_great_reddit_scaling_bakeoff/
4: https://www.reddit.com/r/ethereum/comments/i09ftz/solana_reddits_5day_scaling_challenge_in_5/
5: https://www.reddit.com/r/ethereum/comments/i0bc56/everest_reddit_token_submission/
8: https://www.reddit.com/r/ethereum/comments/i1b4b3/nears_submission_to_reddits_scaling_bakeoff/
9: https://www.reddit.com/r/ethereum/comments/i1cimc/the_great_reddit_scaling_bakeoff_submission_by/
12: https://www.reddit.com/r/ethereum/comments/i1g5cc/scaling_reddit_community_points_with_arbitrum/
13: https://www.reddit.com/r/ethereum/comments/i1j6ck/the_reddit_bakeoff_zkreddit_by_aztec/
15: https://www.reddit.com/r/ethereum/comments/i1jjjv/reddit_scaling_bakeoff_submission_abridged/
19: https://www.reddit.com/r/ethereum/comments/i1nc4u/dapp_solutions_great_reddit_scaling_bakeoff/
Note the submission guideline above from u/jarins:
**To submit your proposal**: Please make a separate post in r/Ethereum[23] with your submission. Then either tag u/jarins[24] and u/EvanVanNess[25] in a comment (not in the post body), or send us a PM with the link to your post. Once we are notified, we will get it added to the collection. (If your post gets removed by moderator bots, do not resubmit. We will approve it when adding to the collection)
While we prefer proposals to be public, if there is information you need to share privately, please send it to jarins@reddit.com[26].
23: https://new.reddit.com/r/Ethereum/
24: https://new.reddit.com/u/jarins/
25: https://new.reddit.com/u/EvanVanNess/
Comment by MyFreakingAltAcct at 18/06/2020 at 18:56 UTC
39 upvotes, 1 direct replies
Noice. Some questions if you don't mind, kind Admin overlords!
​
1. Is there a specific way (format, GH repo, ?) that you'd like to see updates as we go?
2. Will there be a specific point of contact or team to ask questions of?
3. Will the team consider a reward/bounty system?
4. It says in conjunction w/ EF -- will they be issuing a post too? I'd guess this could relate to #3.
Comment by Savage_X at 18/06/2020 at 19:57 UTC*
69 upvotes, 2 direct replies
there is no prize if your solution is chosen or modified to meet Reddit’s needs
This shouldn't be a deterrent to any serious scaling project. If any team is lacking resources to meet these requirements, please speak up. The Ethereum community has all sorts of processes to help fund high quality projects.
Comment by belizeth at 18/06/2020 at 18:56 UTC
82 upvotes, 3 direct replies
Excited to see who steps up. Selected or not, great opportunity to build awareness for your company / scaling solution.
Comment by lightclient at 18/06/2020 at 20:21 UTC
182 upvotes, 9 direct replies
Security. Users have full ownership & control of their points.
This is the most stringent requirement in this document. The consequence of having this level of security for user assets is that it must auditable by all parties, and therefore must be made available to all parties. At this time, the only known solution to the data availability problem [1[1]] are blockchains themselves. A probabilistic solution has been proposed [2[2]] and is currently being implemented in Ethereum 2 Phase 1. Any scaling solution that does not post all input data on-chain is insecure with respect to this requirement.
1: https://github.com/ethereum/research/wiki/A-note-on-data-availability-and-erasure-coding
2: https://arxiv.org/abs/1809.09044
Only one category of scaling solution possesses this kind of security: rollups. They come in two flavors, optimistic [3[3]] and zero-knowledge [4[4]]. Because avoiding "moon math" is preferred and ZK-rollups are generally very expensive to compute, let's focus on optimistic rollups (ORU). The ORU derives its name from the fact that its values should be treated optimistically. To update an ORU, a relayer will submit on-chain all the transactions they wish to include in the ORU's next block + the resulting state root of the next block. It's possible that the relayer submitted an incorrect root, so users must treat this root optimistically until either they i) verify for themselves that the txs do evaluate to the new root or ii) reach a level of confidence (k-deep some might say [5[5]]) in the current progress of the chain. Because all data is posted on-chain, all parties can verify all transactions from the beginning of the ORU. Assuming a robust leader-election algorithm, the ORU will inherit the same safety and liveness properties of the base chain. So how much is it going to cost?
3: https://medium.com/@adlerjohn/the-why-s-of-optimistic-rollup-7c6a22cbb61a
4: https://docs.ethhub.io/ethereum-roadmap/layer-2-scaling/zk-rollups/
5: http://web.stanford.edu/class/ee374/downloads/l3_notes.pdf
The requirement for the POC is 300,000 txs over a 5 day period. That's 6MB per day if we assume transactions are roughly 100B each [6[6]]. Ethereum is currently seeing around 6,400 blocks [7[7]] mined a day with an average size of 28KB [7[8]]. That works out to 179MB a day -- plenty of room for Reddit's 6MBs.
6: https://ethereum.stackexchange.com/a/39033
7: https://bitinfocharts.com/ethereum/
8: https://bitinfocharts.com/ethereum/
As of EIP-2028 [8[9]], that would cost 16 gas per non-zero byte or around 96,000,000 gas a day. A reasonable gas price right now is 22 gwei [9[10]], which would come out to 2.112 ether a day. At the current exchange rate of $231 [10[11]], that would be approximately $488 a day spent submitting data on-chain. We're simplifying things by not taking into account the intrinsic cost of a transaction [11[12]] or any execution in the EVM that will occur, but $500 a day is a reasonable estimate.
9: https://eips.ethereum.org/EIPS/eip-2028
10: https://ethgasstation.info/
11: https://coinmarketcap.com/currencies/ethereum/
A major improvement to this would be batching the signatures together. Unfortunately, the current ECDSA signature scheme that Ethereum uses is not amenable to batching [12[13]]. However, BLS [13[14]] can prove n signatures in constant time and the specific curve, BLS12-381, has been implemented as part of EIP-2357 [14[15]] and has been accepted into the Berlin network upgrade of Ethereum. If we recalculate the daily cost, replacing the tx size with 34 bytes, it would only cost 0.704 ether per day to post all the Community Points txs on-chain.
13: https://cse.iitkgp.ac.in/~abhij/publications/ECDSA-JCEN.pdf
14: https://eprint.iacr.org/2018/483.pdf
15: https://eips.ethereum.org/EIPS/eip-2537
Some implementations of ORUs that are at varying degrees of production-ready:
Comment by hrdwdmrbl at 18/06/2020 at 21:18 UTC
19 upvotes, 1 direct replies
This is amazing! Time to put up or shut up! No more BS, just show it working!
I would love to throw $50 in to a pot for the winning team.
Comment by [deleted] at 04/08/2020 at 02:51 UTC*
18 upvotes, 1 direct replies
[deleted]
Comment by igorbarinov at 19/06/2020 at 12:17 UTC
23 upvotes, 2 direct replies
Igor from the xDai team is here. We are excited to participate in the challenge.
Thanks for verifying all contracts on Rinkeby!
​
Comment by starkware at 29/07/2020 at 14:30 UTC
13 upvotes, 0 direct replies
This is our submission to the great Reddit Scaling Bake-off 2020.
To watch our demo and read our detailed explanation of how we did it - see our post:
https://medium.com/starkware/the-great-reddit-bake-off-2020-c93196bad9ce[1][2]
1: https://medium.com/starkware/the-great-reddit-bake-off-2020-c93196bad9ce
2: https://medium.com/starkware/the-great-reddit-bake-off-2020-c93196bad9ce
Comment by Matzorro at 23/08/2020 at 19:22 UTC
13 upvotes, 0 direct replies
Did OMG win?
Comment by r08o at 01/07/2020 at 15:41 UTC
12 upvotes, 1 direct replies
Hey u/jarins, we are really excited about the bake-off.
There are some open questions from our side to see to which extent payment channels might be a solution to the stated problem. In other words, we are trying to understand which parts of the existing Community points system can be tweaked to suit your intention and better fit our solution.
Comment by Shiftink at 18/06/2020 at 20:01 UTC
21 upvotes, 0 direct replies
I‘m really excited about that Reddit as company asks experts for help to develop software or for conceiving it. Especially, here in the Ethereum subreddit. Honestly, I would rethink the decision to not provide a prizepool. The given requirements are difficult and unique. If I could implement the demanded solution, I would do it for free and for no fame. I hope a person or a group can achieve it.
Comment by don_barbarossa at 18/06/2020 at 21:24 UTC
11 upvotes, 0 direct replies
Kudos u/jarins and reddit! Great initiative. A few months ago I thought something like this would be super nice for reddit. Amazing to see you guys taking a leap forward.
Comment by Jasonbetashopgberg at 19/06/2020 at 07:36 UTC*
18 upvotes, 0 direct replies
Hi, this is Jason Goldberg, aka "betashop," CEO of Ost technology[1], Pepo[2], and Moxie[3].
As seen here, there have been 144,000 user to user transaction in the Pepo app[4]. Users own their own keys, wallet is a smart contract wallet, solution scales on Ethereum layer 2, and app is approved in the app store (the only such Ethereum app).
4: https://view.ost.com/mainnet/PEPO
Anyone can take the code that enables apps like Pepo and use it themselves, remix it, build something great with it. Well documented SDKs and Developer resources are here[5]. Github with the wallet SDK is here[6] and here[7]. Further scaling work is ongoing here[8].
6: https://github.com/ostdotcom
8: https://github.com/mosaicdao
Our team recently launched a non-blockchain project, Moxie[9] which is quite timely for covid times and the new normal, and that's growing like a weed. We do not have the engineering capacity to participate in Reddit's challenge, as all of our blockchain capacity is currently focused at the protocol level not at the application level.
If any person, team, project would like to use our tech to help them compete and win the challenge, I'm happy to do our best to support you and help make that possible.
L2 scaling solutions in particular, if you need a smart contract wallet SDK and user-to-user transactions that you can plug-and-play, hit me up.
​
-j
Comment by Mister_M00N at 19/06/2020 at 02:32 UTC
9 upvotes, 1 direct replies
Sounds like the Layer 2 olympics. Who will take gold?
Comment by gabrocheleau at 20/06/2020 at 18:53 UTC
8 upvotes, 0 direct replies
Awesome! I would also recommend, as many others have, checking out OmiseGO.
Comment by solutioncomedy at 29/08/2020 at 07:10 UTC
8 upvotes, 0 direct replies
When will the winner be announced?
Comment by mike3394 at 19/06/2020 at 01:52 UTC
36 upvotes, 0 direct replies
OMG Network /u/omise_go
Comment by silkblueberry at 30/07/2020 at 22:37 UTC
17 upvotes, 0 direct replies
Why is dragonchain spamming this main thread? Can’t they keep the discussion within their submission thread?
Comment by r08o at 31/07/2020 at 18:50 UTC*
34 upvotes, 6 direct replies
Hi Redditors, u/jarins[1] and u/EvanVanNess[2]
1: https://www.reddit.com/u/jarins/
2: https://www.reddit.com/u/EvanVanNess/
The Raiden team here!
When we heard that Reddit is looking into scaling solutions for their Subreddit tokens we were hyped: The bake-off came just at the right time for us. We just released our second major mainnet iteration, Alderaan. After that, it was a very welcome relief to “make the impossible possible” and learn about architecture / protocol problems that are new to us.
While some of the requirements that Reddit posted don’t fit the constraints of Raiden exactly, we pulled some neat tricks out of our sleeves to move most actions off-chain and therefore make them faster and cheaper. We call our PoC Raiddit.
There are three main problems that we solved during the competition:
As a reminder: Raiden and Raiddit are payment channel networks, which enables near-instant, low-fee and scalable payments on top of the Ethereum blockchain. This means two partners can open a payment channel and transfer tokens over it without being limited by the blockchain. So in theory, Raiddit scales linearly.
Claims are used as channel deposit in Raiddit before community points are even minted on-chain. If users want to exit, the net balance is minted.
These claims can be generated really quickly and each Raiddit node can read them and join the network in a couple of seconds. Until a user wants to exit, they don’t need to spend any gas.
The step to mint and transfer tokens into a Layer 2 (L2) system can be completely avoided if the L2 system accepts such claims as a deposit itself. Raiddit does just that. A claim is equivalent to a channel deposit in the Raiden Network. This means that any user can start using Raiddit upon receiving the claim.
https://soon.raiden.network/img/raiddit%5C_1.jpg[3][4]
3: https://soon.raiden.network/img/raiddit%5C_1.jpg
4: https://soon.raiden.network/img/raiddit_1.jpg
In order to prevent double-spending, the claim is bound to a specific partner and only valid for this particular payment channel. It is equivalent to a deposit to a Raiden Network smart contract. Since there are no tokens minted yet, this kind of channel is called a “virtual channel”.
Once these virtual channels are created the users can send tokens to each other quickly. In our demo, we do 5k transfers in about 6 minutes being a magnitude faster than the required 100k transfers / 5 days. However, having more nodes scales the network and the transaction throughput linearly. A payment channel network - having instant finality and local consensus - is designed for doing a lot of transfers.
https://soon.raiden.network/img/raiddit%5C_2.jpg[5][6]
5: https://soon.raiden.network/img/raiddit%5C_2.jpg
6: https://soon.raiden.network/img/raiddit_2.jpg
Token burns are a different problem that requires an efficient solution. As burning is used to get subscriptions it should not touch the blockchain ideally.
We came up with an off-chain solution to burn tokens: Burnt tokens do not get minted in the first place, they get subtracted by the claim to be submitted to the blockchain once a channel is closed.
This off-chain burning mechanism allows a user to pay for subscriptions from within a payment channel. In order to burn tokens, both participants need to sign a burn commitment containing the information of community points burnt. Both participants need to sign this commitment, since these points/tokens get subtracted from the burning party’s balance. The burn commitment is sent to Reddit and can at a later stage be used to enforce burning the tokens on-chain.
https://soon.raiden.network/img/raiddit%5C_3.jpg[7][8]
7: https://soon.raiden.network/img/raiddit%5C_3.jpg
8: https://soon.raiden.network/img/raiddit_3.jpg
In this demo we show all the above actions on several live Raiddit nodes.
https://youtu.be/402U0CVrjyE[9][10]
9: https://youtu.be/402U0CVrjyE
10: https://youtu.be/402U0CVrjyE
You see a tool that we use for integration testing. It runs a sequence of tasks. The nodes here have already loaded the claims off a network. The topology is shown on the right.
We start with some token transfers sequentially. This doesn’t reach the throughput limits of the system. When running some transfers in parallel, we see that the throughput increases. Once we start more independent routes on the network we see another jump in the network's throughput.
Comment by imfitzylol at 18/06/2020 at 21:10 UTC
57 upvotes, 1 direct replies
OMG Network should check all the boxes here as well as being the only L2 solution that is a child chain to ethereum.
Comment by 1blockologist at 21/06/2020 at 21:15 UTC*
9 upvotes, 1 direct replies
Hi, zkSYNC should be able to do this. It is a zkrollup implementation. I am not representing any team, and zkSYNC has no bullshit token associated with it (but who knows if they do in the future). I just gravitate towards things that are easier to advocate for.
I think the primary approach is making layer2 a first class citizen, instead of "layer2". In this case, you - the issuer - would move the entire issuance of tokens to layer2, inside of a zksync. You do one transaction there to have a large balance available for issuance.
And then you do your issuance to addresses there. Users don't have to do an onchain transaction to get into the zkSYNC.
There are also no onchain gas costs for users, and transaction fees to incentivize the validators can be paid in the token.
If you built the primary ecosystem in this layer2 as well, then users wouldn't need to withdraw - onchain - from the zksync.
Matterlabs Inc. (zksync deployers) suggests zkSYNC can do 2,000 TPS, which means that a zksync block that used as much gas as a layer1 ethereum block, could contain 15,000 transactions. I don't know if a "transaction" means "operation" or "transfer". This distinction is important because an "operation" can likely contain many transfers, along with other actions.
Regarding costs, this would come down to the settlement transactions onchain. so I am guessing a few hundred dollars per block (.4 - .8 ether) if you filled up an entire block and paid more for it to bump make miners deprioritize all other transactions, but it is likely that relayers subsidize this, or it can be subsidized. After the initial distribution, the users would just play with it themselves and no costs to you.
Comment by cryptoshack at 19/06/2020 at 00:05 UTC
40 upvotes, 0 direct replies
OMG has a very devoted and talented team. Hopefully, if they can help, they will reach out. Thank you for looking forward and looking to ETH!