Skip to content
This repository has been archived by the owner on Oct 31, 2023. It is now read-only.

filecoin-project/research

Repository files navigation

Filecoin Research


This repository is the main hub leading to the various efforts in Filecoin Research and should provide you with the means to engage in this work.

Disclaimer: While we work hard to document our work as it progresses, research progress may not be fully reflected here for some time, or may be worked out out-of-band.

Table of Contents

What is Filecoin Research?

  • Make breakthroughs in the Filecoin protocol
  • Support devs to develop Filecoin

The purpose of Filecoin Research is to design or build the predicates enabling Filecoin: a decentralized storage network. We work to prove Filecoin constructions correct, or to improve them. The work here should provide some motivations for decisions about how Filecoin works; its output is the Filecoin spec, from which a filecoin network can be implemented.

Filecoin Research Endeavours

Filecoin Research work is conducted by area of focus, with current efforts ongoing in:

  • Specs: The Filecoin Spec is the main interface between research and Filecoin development. Research work is only complete once it finds its way into the spec.
  • General Research (you're already here): This repo generally regroups unsolved-problems with Filecoin Research and helps organize our research work.
  • Proofs: Dedicated to shaping and building out the Filecoin Proving Subsystem (FPS), whose API can be called by a Filecoin node to Seal disk sectors, or generate PoSTs for instance.
  • Consensus: Dedicated to finalizing the construction and proving the security of Filecoin's Consensus protocol, through which leaders are elected to mine new blocks and extend the Filecoin blockchain.

Overview

Here is a list of the Filecoin project's research endeavours, we split them by projects for discoverability and further highlight select problems below. We also specify scope and priority in this table, you can find exact definitions for these here.

Area: Consensus

This endeavour deals with the Filecoin consensus layer broadly. It encompassed projects dealing with precise constructions Filecoin uses or could use (like Expected Consensus or Single Secret Leader Election) as well as the broader classification of Storage-Power-based Consensus in the field, for instance in relation to PoW and PoS. See the consensus repo for more.

Project Description Problems Status
Expected Consensus (EC) Expected Consensus is a consensus protocol that includes a block proposer and a way to achieve agreement (PoS Nakamoto consensus) on a particular block. It yields one secret leader per round on expectation, but may yield 0 or multiple. Short-term/Ongoing:
- Formal analysis of EC Security
- Heuristic Security and attack simulations
Working on/Collaboration
Secret Single Leader Election (SSLE) SSLE is a leader election protocol that guarantees that at each round only a single leader is elected (as opposed to one on expectation) and its identity remains secret until announced. Short-term:
- A practical SSLE Construction

Medium-term:
- A consensus protocol that uses SSLE as leader election (and adaptation into Filecoin)
Collaboration/RFP
Storage Power Consensus (SPC) Storage Power Consensus is the intermediate layer of consensus in the Filecoin system, bridging the gap between a storage network and Proof of Stake consensus to elect leaders based on storage committed to the network. Short-term:
- Committing power to a particular fork (e.g. through reseal)

Medium-term:
- Efficient 51% block signing via all-to-all communications
- Proof-of-Space before SEAL

Long-term:
- Formally defining the EC/SPC interface
Working on/Collaboration/RFP
Power Fault Tolerance (PFT) PFT is abstracted in terms of influence over the protocol rather than machines Medium-term:
- Formal framework for PFT in third gen blockchains
Working on/Collaboration

Area: Filecoin Protocol Improvements

This area deals with the transaction layer of the Filecoin protocol and encompasses endeavours across the various parts that come together to make up Filecoin. We quickly present our research interests here.

Endeavour Description Problems Status
Mining Mining here refers to the work of storage miners in the Filecoin network, who use proofs to store files on a client's behalf. This section deals with the ways miners interact with proofs as part of storage and retrieval mining in Filecoin. Short-term/Ongoing:
- PoST difficulty adjustment
- Tolerating faults for honest miners

- Medium-term:
- PoSpace after Pledge (before SEAL)
- Mining Pools in Filecoin
Working on/Collaboration (Curious for medium-term)
Repair Repair miners ensure that as storage miners go offline, clients' orders remain secure. They are verifiers of the chain, catching faults and ensuring orders are re-assigned when storage miners fail. Medium-term:
- Repair proofs
- Scaling Repair

Long-term:
- Watchtowers for storage repair
RFP/Curious
Securing Filecoin Filecoin protocol security (to be distinguished from the security of an implementation) is a major endeavour of Filecoin research. It touches our consensus layer, primitives, and transaction layer more broadly. We break this work down into three broad categories: economic security (or incentive compatibility), formal security (provable guarantees), and heuristic security (attack analysis and parameter setting). We detail a few of our endeavours in the space here. Short-term:
- Cryptoeconomic simulator
- PoST security proofs
- Formally analyzing Filecoin through the lens of PoS and PoW
- Filecoin DoS analysis
- Formal analysis of Filecoin finality

Medium-term:
- Filecoin checkpointing
Working on/Collaboration
Storage Market The Filecoin's storage market refers to market dynamics around miners' monetization of disk space. Storage market questions concern the tools Filecoin provides miners to manage their disk in filling orders on the network. Short-term:
- Multiple Sector sizes

Medium-term:
- PoST alternatives for proving storage
Working on/Collaboration, Curious for long-term

Area: Generic Blockchain Infrastructure

We plan to improve the state of the art of generic blockchain constructions. As part of developing Filecoin, we've uncovered open problems that may interest the community at large.

Endeavour Description Problems Status
Chain Scalability and Throughput Blockchain design is constrained by limitations of what data can be stored on-chain. Short-term/Ongoing:
- Signature Aggregation

Medium-term:
- Dedicated Nodes for transaction batching
- Accumulator-based chain state
Long-term:
- Snarking the chain
Working on/Curious (for long-term)
Blockchain VMs Filecoin will integrate smart contract functionality through a Filecoin VM. As we look towards this, we are interested in better models for VM execution in the context of a blockchain. Medium-term:
- WASM

Long-term:
- Privacy-supporting smart contracts
- Efficient VM execution model
Working on/Curious
Other Projects of Interest This endeavour regroups other insights or problems we've uncovered as part of our work on Filecoin that is likely relevant to other architects and developers working on blockchain-based systems. Short-term:
- Investigating the necessity of block delay for blockchains
- Trustless network joining/node bootstrapping

Medium-term:
- Formal treatment of the impact of cryptoeconomics on protocol security
- Exploration of transfer freezing for public keys as an alternative to slashing
- Off-chain random beacons
Working on (short-term), Collaboration/RFP (medium-term), Curious (long-term)

Area: Primitives

Filecoin itself relies on the performance and security of cryptographic primitives. We quickly discuss the main open problems we are thinking about with regards to Filecoin primitives below.

Endeavour Description Problems Status
Proof of Replication (PoRep)/Proof of SpaceTime(PoST) Proof-of-Replication is a key component of Filecoin as a storage-based marketplace. PoReps are assembled into Proofs of SpaceTime to ensure that miners are indeed storing client data. Short-term:
- Reducing hardware costs for Porep/PoST
-ASIC-resistant PoRep hash function
- PoST Aggregation

Medium-term:
- Updateable PoRep
- Better PoRep: fast replication & verification, small & fast proof, flexible sector size
- PoRep/PoST without timing assumptions
- Vertical PoRep/PoST proving system
Working on/Collaboration/RFP
SEALSTACK SEALSTACK refers to a specific attack that breaks PoRep by allowing a miner to cheat on space. The Filecoin team has a few candidate mitigations for SEALSTACK but is working to identify the optimal solution. Short-term:
- SEALSTACK: Symmetric Proof of replication construction
- SEALSTACK: Asymetric PoRep

Medium-term:
- SEALSTACK with fast decode
Working on/RFP
SNARKS and other key primitives Filecoin relies on SNARKS to aggregate PoSTs (proof compression of data going to the chain). We are looking into improvements in this space as well as alternative primitives we could use. Short-term:
- Practical Circuits
- Faster SNARKS on GPU and off-the-shelf hardware

Medium-term:
- Sector Aggregation (with aggregation nodes)
- ZK-cryptographic compression (with easy set membership verification for random variables)
- Succinct file inclusion proofs
- SNARK-friendly accumulators
Collaboration/RFP
VDFs One of Filecoin's PoST candidate constructions uses VDFs in order to ensure appropriate delay between various challenges to the miner. Thus, the security of a candidate construction for Filecoin (as well as Filecoin consensus) relies on certain guarantees provided by VDFs. As such, we are interested in advancements in the field, as well as alternative constructions. Short-term:
- Fastest Hash/VDF Function
- Removing VDFs from Filecoin
- Using a hash function that re-uses the same VDF hardware
- VDF pools
Collaboration/RFP/Curious
Other Primitives of Interest Other key primitives would prove highly useful to Filecoin's development. We detail a few here. Medium-term:
- Proof of data delivery to assure constrain assured price
- Better Big Number Library
- Weighted Threshold Signatures

Long-term:
- Proof of Location
Collaboration/RFP/Curious

Key Open Problems

We break down a few open problems of high priority for the team below. Some have open RFPs. For all, we welcome any collaborations (potentially leading to new constructions, discoveries and publications). Please reach out at filecoin-research@protocol.ai.

See our open problems.

You can also check out slides from talks given about Research Problems in Filecoin:

Contributing

The purpose of this repo is for Filecoin Research questions to be open to researchers around the world who may be interested in working on them.

If you want to dive into these topics, please see CONTRIBUTING.md.

Community

Useful docs

License

The Filecoin Project is dual-licensed under Apache 2.0 and MIT terms:

About

Home for Filecoin Research

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published