Difference between revisions of "IPFS"

From CryptoWiki

wiki_crypto>Zeb.dyor
 
 
(2 intermediate revisions by 2 users not shown)
Line 14: Line 14:


* The website does not talk directly about audits, but does have a [[Github]] page [https://github.com/ipfs/community/blob/master/CONTRIBUTING.md#security-issues dedicated] to Security (29-7-2021).
* The website does not talk directly about audits, but does have a [[Github]] page [https://github.com/ipfs/community/blob/master/CONTRIBUTING.md#security-issues dedicated] to Security (29-7-2021).
=== Bugs/Exploits ===
* Consensys Diligence [https://consensys.net/diligence/blog/2022/09/the-forgotten-ipfs-vulnerabilities/ privately disclosed] multiple vulnerabilities in the InterPlanetary File System (IPFS) to the Protocol Labs Security Team in 2021.


== Tech ==
== Tech ==
Line 22: Line 26:
=== How it works ===
=== How it works ===


* [https://decrypt.co/62037/missing-or-stolen-nfts-how-to-protect From] [[Decrypt]] (19-3-2021):
* From the [[Filecoin (FIL)|Filecoin]] [https://docs.filecoin.io/about-filecoin/ipfs-and-filecoin/#:~:text=Filecoin%20is%20built%20on%20IPFS,and%20get%20paid%20for%20it docs] (4-8-2022):
 
''"IPFS users usually persist the data they want on their own IPFS [[Node|nodes]]. This is called [https://docs.ipfs.io/concepts/persistence pinning]. Sometimes the data may be pinned using a third-party pinning service or through groups of individual IPFS users (like IPFS Collaborative Clusters). The data exists in the network as long as one user is storing it and can provide it to others when they request it.''


''"Williams [from Arweave] said; “IPFS is just saying: ‘Once you have the link, once you have the content ID [CID], you will always be able to find the data if the data is there.’” IPFS, he said, is “a system of addressing data, but not storing data.''
''IPFS alone does not include a built-in mechanism to incentivize the storage of data for other people. This is the challenge Filecoin aims to solve. Filecoin is built on IPFS to create a distributed storage marketplace for long-term storage. Nodes with a large storage capacity can rent their storage to users and get paid for it.''
 
''The Filecoin network ensures that data is safely stored. However, the processes of storing, verifying, and unsealing (referred to as sealing, proving, and retrieving, respectively) are computationally expensive and can take time. This is especially relevant for the retrieval of data, which should happen as fast as possible. For this reason, Filecoin enables an additional retrieval market where dedicated nodes can help quickly deliver content from the network for payment by keeping unsealed, cached copies. This delivery mechanism may make use of IPFS but is still in design. See ResNetLab’s Decentralized Data Delivery Market research for more information on delivery mechanisms.''


''[[Ian Darrow]], operations lead at Protocol Labs’ Filecoin project, responded to Decrypt, “It's definitely true that this isn't—and nothing is—a magic box that your stuff gets stored there and you never have to think about it again.''
''Filecoin aims to add longer-term persistence to safely store large batches of data, while IPFS optimizes for the quick retrieval and distribution of content.''


''To make the most of IPFS, Filecoin’s Darrow recommends “pinning” data to IPFS. “It's taking that content hash and saying, ‘I'm going to keep storing this file, I'm going to make sure that it's available, anyone that can talk to me on the IPFS network will be able to get this file from me.” Several services do this for you, including Pinata and Infura. IPFS has really moved away from the permanent storage, 'permanent everything’ branding, because it’s just a very hard guarantee to make.”''
''Filecoin and IPFS are powered by the same technology at many levels:''


# ''[https://ipld.io/ IPLD] specifies data formats for content-addressed data like the blockchain or the way in which IPFS stores files.''
# ''[https://libp2p.io/ libp2p] provides peer-to-peer network capabilities, connection security and key discovery and data distribution features like the Distributed Hash Tables (DHT)) and Pubsub.''
# ''[https://multiformats.io/ Multiformats] define future-proof identifiers and data-types.''
# ''[https://github.com/ipfs/go-graphsync Graphsync] and [https://github.com/ipfs/go-bitswap Bitswap] enable fast and efficient IPLD data transfers between nodes."''
* From the [https://ipfs.io/#why website] (29-7-2021):
* From the [https://ipfs.io/#why website] (29-7-2021):


Line 41: Line 53:


''If you add a new version of your file to IPFS, its cryptographic hash is different, and so it gets a new CID. This means files stored on IPFS are resistant to tampering and censorship — any changes to a file don't overwrite the original, and common chunks across files can be reused in order to minimize storage costs. However, this doesn't mean you need to remember a long string of CIDs — IPFS can find the latest version of your file using the IPNS decentralized naming system, and DNSLink can be used to map CIDs to human-readable DNS names."''
''If you add a new version of your file to IPFS, its cryptographic hash is different, and so it gets a new CID. This means files stored on IPFS are resistant to tampering and censorship — any changes to a file don't overwrite the original, and common chunks across files can be reused in order to minimize storage costs. However, this doesn't mean you need to remember a long string of CIDs — IPFS can find the latest version of your file using the IPNS decentralized naming system, and DNSLink can be used to map CIDs to human-readable DNS names."''
*[https://decrypt.co/62037/missing-or-stolen-nfts-how-to-protect From] [[Decrypt]] (19-3-2021):
''"Williams [from Arweave] said; “IPFS is just saying: ‘Once you have the link, once you have the content ID [CID], you will always be able to find the data if the data is there.’” IPFS, he said, is “a system of addressing data, but not storing data.”''
''[[Ian Darrow]], operations lead at Protocol Labs’ Filecoin project, responded to Decrypt, “It's definitely true that this isn't—and nothing is—a magic box that your stuff gets stored there and you never have to think about it again.”''
''To make the most of IPFS, Filecoin’s Darrow recommends “pinning” data to IPFS. “It's taking that content hash and saying, ‘I'm going to keep storing this file, I'm going to make sure that it's available, anyone that can talk to me on the IPFS network will be able to get this file from me.” Several services do this for you, including Pinata and Infura. IPFS has really moved away from the permanent storage, 'permanent everything’ branding, because it’s just a very hard guarantee to make.”''


=== Fees ===
=== Fees ===

Latest revision as of 02:30, 13 October 2022

Basics

  • Inter Planetary File System
  • Started in 5-2014.
  • Created by Protocol Labs (same company that does Filecoin, libp2p, multiformats & IPLD)
  • Distributed Web
  • A peer-to-peer hypermedia protocol to make the web faster, safer, and more open.
  • Aims to replace HTTP
  • “IFPS brings together a collection of key ideas: distributed hash tables, block exchanges, git, and self-certified file systems. “The contribution of IPFS is simplifying, evolving, and connecting proven techniques into a single cohesive system, greater than the sum of its parts. IPFS presents a new platform for writing and deploying applications, and a new system for distributing and versioning large data. IPFS could even evolve the web itself.”
  • INFURA is trying to provide “secure, stable, fault tolerant, and scalable Ethereum and IPFS nodes.”

History

Audits & Exploits

  • The website does not talk directly about audits, but does have a Github page dedicated to Security (29-7-2021).

Bugs/Exploits

  • Consensys Diligence privately disclosed multiple vulnerabilities in the InterPlanetary File System (IPFS) to the Protocol Labs Security Team in 2021.

Tech

  • Whitepaper can be read here.
  • Code can be found here.

How it works

"IPFS users usually persist the data they want on their own IPFS nodes. This is called pinning. Sometimes the data may be pinned using a third-party pinning service or through groups of individual IPFS users (like IPFS Collaborative Clusters). The data exists in the network as long as one user is storing it and can provide it to others when they request it.

IPFS alone does not include a built-in mechanism to incentivize the storage of data for other people. This is the challenge Filecoin aims to solve. Filecoin is built on IPFS to create a distributed storage marketplace for long-term storage. Nodes with a large storage capacity can rent their storage to users and get paid for it.

The Filecoin network ensures that data is safely stored. However, the processes of storing, verifying, and unsealing (referred to as sealing, proving, and retrieving, respectively) are computationally expensive and can take time. This is especially relevant for the retrieval of data, which should happen as fast as possible. For this reason, Filecoin enables an additional retrieval market where dedicated nodes can help quickly deliver content from the network for payment by keeping unsealed, cached copies. This delivery mechanism may make use of IPFS but is still in design. See ResNetLab’s Decentralized Data Delivery Market research for more information on delivery mechanisms.

Filecoin aims to add longer-term persistence to safely store large batches of data, while IPFS optimizes for the quick retrieval and distribution of content.

Filecoin and IPFS are powered by the same technology at many levels:

  1. IPLD specifies data formats for content-addressed data like the blockchain or the way in which IPFS stores files.
  2. libp2p provides peer-to-peer network capabilities, connection security and key discovery and data distribution features like the Distributed Hash Tables (DHT)) and Pubsub.
  3. Multiformats define future-proof identifiers and data-types.
  4. Graphsync and Bitswap enable fast and efficient IPLD data transfers between nodes."

"Here's what happens when you add a file to IPFS — whether you're storing that file on your own local node or one operated by a pinning service or IPFS-enabled app.

When you add a file to IPFS, your file is split into smaller chunks, cryptographically hashed, and given a unique fingerprint called a content identifier (CID). This CID acts as an permanent record of your file as it exists at that point in time.

When other nodes look up your file, they ask their peer nodes who's storing the content referenced by the file's CID. When they view or download your file, they cache a copy — and become another provider of your content until their cache is cleared.

A node can pin content in order to keep (and provide) it forever, or discard content it hasn't used in a while to save space. This means each node in the network stores only content it is interested in, plus some indexing information that helps figure out which node is storing what.

If you add a new version of your file to IPFS, its cryptographic hash is different, and so it gets a new CID. This means files stored on IPFS are resistant to tampering and censorship — any changes to a file don't overwrite the original, and common chunks across files can be reused in order to minimize storage costs. However, this doesn't mean you need to remember a long string of CIDs — IPFS can find the latest version of your file using the IPNS decentralized naming system, and DNSLink can be used to map CIDs to human-readable DNS names."

"Williams [from Arweave] said; “IPFS is just saying: ‘Once you have the link, once you have the content ID [CID], you will always be able to find the data if the data is there.’” IPFS, he said, is “a system of addressing data, but not storing data.”

Ian Darrow, operations lead at Protocol Labs’ Filecoin project, responded to Decrypt, “It's definitely true that this isn't—and nothing is—a magic box that your stuff gets stored there and you never have to think about it again.”

To make the most of IPFS, Filecoin’s Darrow recommends “pinning” data to IPFS. “It's taking that content hash and saying, ‘I'm going to keep storing this file, I'm going to make sure that it's available, anyone that can talk to me on the IPFS network will be able to get this file from me.” Several services do this for you, including Pinata and Infura. IPFS has really moved away from the permanent storage, 'permanent everything’ branding, because it’s just a very hard guarantee to make.”

Fees

Upgrades

Other

Roadmap

Usage

  • From their 2021 blog (11-1-2022):
  1. NFTs stored on IPFS: 15M+
  2. Unique weekly active IPFS nodes: 230K+
  3. ipfs.io Gateway Users per week: 3.7M+
  4. ipfs.io Gateway Requests per week: 805M+

"IPFS claims to have 2 million unique weekly users, some 200,000 network nodes, and about 125TB worth of gateway traffic per week."

Projects that use or built on it

  • For a full list, check here (29-7-2021).
  • Audius; Using IPFS integrations to store and retrieve data, Audius can ensure that there are no broken links to tracks and that all music is delivered to the user without reliance on centralized servers.
  • Balanc3. Is being used by Balanc3
  • Dash. Will be used in Evolution (Dash) "Your application’s historical state transitions are stored in IPFS, which also propagates your application data to other nodes in our network."
  • Brave; Users are allowed to access content stored on the protocol by resolving IPFS addresses natively (2021).
  • Decentraland. Used by Decentraland; "The platform uses IPFS network to store data and links in the consensus layer to retrieve it."
  • Everipedia. Used by Everipedia.
  • Humanode; From the announcement (4-12-2020):

An IPFS public cluster, which becomes a permissionless public protocol for trusted asset and data transfer maintained by human nodes. It has a cost-based fee model and flexible guaranteed persistence of data."

Team