filecoin-project / devgrants

👟 Apply for a Filecoin devgrant. Help build the Filecoin ecosystem!
Other
369 stars 307 forks source link

Configurable Data Availability Layer using FVM #1677

Closed ckartik closed 3 months ago

ckartik commented 9 months ago

Open Grant Proposal: Configurable Data Availability Layer using FVM

Project Name: Configurable Data Availability Layer using FVM

Proposal Category: Applications

Individual or Entity Name: Emergent Reputation

Proposer: ckartik

Filecoin ecosystem affiliations: None. Have completed a milestone based grant before.

Technical Sponsor: None Yet. Would love to have one!

Do you agree to open source all work you do on behalf of this RFP under the MIT/Apache-2 dual-license?:Yes

Project Summary

Overview

This project is meant to use the features provided by the FVM to serve as a ephemeral data availability layer for optimistic rollups and other applications with a need for short-duration data availability, such as ZK applications and chains.

Problem Summary

To scale Ethereum and other EVM based applications, the development community, especially in ethereum, has coalesced around Rollups as the solution. However, this approach incurs significant cost to settle on the L1. The yearly cost across prominent L2s on Ethereum currently sums to over $200,000,000 USD! The Ethereum foundation has recognized this and proposed the addition of blob-carrying transactions in EIP-4844. To understand the solution EIP-4844 is trying to provide, it's worth understanding the current approach to Data Availability (DA). Essentially, batchers on L2s like Optimism post noop transactions, where the only purpose is to post searlized representations of the L2 data inside of calldata. The cost for these transactions is ~0.05 Eth, however given the frequency with which they're posting (every 5 minutes), this cost adds up to nearly $50 Million per rollup. Here's the Optimism batcher for example. The approach EIP-4844 is taking to solve this, is augmenting the consensus layer to add the storage of binary data for ~90 days. This is a significant lift, as it alters the hardware requirements needed for many consensus clients, changing to IO profile of consensus infrastructure, and negatively impacting client diversity, as smaller clients may not be able to adapt as quickly.

Solution

The solution I propose here is to leverage Filecoin for the storage of ephemeral rollup data. Since the typically quantity of data that is stored by these L2s is significantly below 4gb, we leverage a deal aggregation contract to aggregate across a variety of rollups. Once a deal is made, the CID and dealID is posted to L1. Users can leverage Zk-Snarks of the merklelized data as needed for state verification (beyond scope of this project). Retrieval deals will also allow us to optimize for efficient IO bandwith per user (IO requirements may differ based on DA usecase).

The end implementation of this project, will be a plug-and-play implementation that can be attached to a batcher in a Rollup architecture as a simple replacement for storing the data to an L1. The desire is to abstract any filecoin specific concepts (such as deals. If needed, implementations of precompiles for EVM based rollups can be implemented to automatically do deal construction and retrieval form L2 rollups (though this requires some benchmarking on performance). The non-determinism could also be an issue.

Impact

Pain Points

Benefits

Given the importance of Rollups as a strategy for L1 scaling, optimized usage of resources for Data availability will unlock both cheap transactions and the usefulness of ZK solutions that currently lack a mechanism to programatically store and access control the DA layer.

Market Impact

The hope is to introduce into the discourse, the usefulness of Filecoin as a Data Availability solution across the blockchain space.

Outcomes

The Ideal outcome is an example implementation of a Rollup that is posting batched L2 data to filecoin and aggregating it across multiple rollups, with optimized bandwith utilization.

Adoption, Reach, and Growth Strategies

Adoption

if the UX for integration of traditional L2s like Optimism is sufficiently simple, adoption would be strong, given a lack of effective alternatives and brand awareness. Along with a clear and significant cost savings. If Ethereums approach to EIP-4844 is successful, it puts the adoption of this data availability at risk, however, it's worth recognizing the there is significant challenges facing the alterations needed to the beacon chain, not to mention it can take many years for sharding to be implemented.

Target Audience

L2's and any other applications that are currently forced to use L1's as a data availability layer. Protocols like Mina Foundation may also have a use for short-term DA to manage iterative updates to Merkle Tree representations of data for ZK alterations and verification of information and implementation of complex ZK protocols. Engagement would be through word of mouth.

Onboarding

L2s and other L1 chains that have a need for Data Availability will be provided with high quality documentation and a dockerized version of the software for running version of the software.

Development Roadmap

Total Budget Requested

Note: I will be completing the work over weekends, so have set the completion date accordingly (2 full days per week)

Milestone # Description Deliverables Completion Date Funding
Initial Research and Architecture The initial calculations of cost for L2s and other users for storing data via storage deals, architectural diagrams of points of integration across L2 Bather software, and mechanism for commitment of data to L1 for finality and value exchange related to bridging An Architecture Diagram, research writeup and code stubbing 40 hours (3-4 weeks) $10,000
Limited POC A working proof of concept where a batcher can post data to filecoin A video demo along with github repo 80 hours (8 weeks) $15,000

Maintenance and Upgrade Plans

Team

Team Members

Kartik Chopra

Team Member LinkedIn Profiles

Kartik's Linkedin

Team Website

Github Page

Relevant Experience

Kartik possesses a computer science degree from the University of Waterloo, and was previously a Cyber Security Engineer at the Department of National Defence in Canada and a Security engineer at ISARA. He currently works on MEV Infrastructure as a founding engineer. His experience is in Smart Contract Development, Cryptography research, Protocol Engineering, and has a deep understanding of Geth. He's also graduated from business school with a Finance and Entrepreneurship focus. He also has extensive experience in the ZK blockchain community, having contributed extensively in the Mina ecosystem, which would help significantly in understanding the use cases for ephemeral and programable data availability on Filecoin for chains like Mina and Optimism.

Team code repositories

Github Page - Emergent Reputation Personal Github

Additional Information

ErinOCon commented 8 months ago

Hi @ckartik, thank you for your proposal and for your interest in our grant program. This proposal is still under consideration and has progressed to our final review round.

Please note that a final update may not be available until next year due to the holiday.

ErinOCon commented 5 months ago

Hi @ckartik, I hope you are doing well! Will you be submitting a new proposal based on recent discussions with community members?

ckartik commented 5 months ago

Yes, will be making a new one @ErinOCon