InterPlanetary File System

Last updated

InterPlanetary File System
Original author(s) Juan Benet and Protocol Labs [1]
Developer(s) Protocol Labs
Initial releaseFebruary 2015 (y) [1]
Stable release
0.28.0 [2] / 15 April 2024;25 days ago (15 April 2024)
Repository github.com/ipfs/ipfs
Written in
  • Protocol implementations: Go (reference implementation), JavaScript, C (obsolete) [3] , Python
  • Client libraries: Go, Java, JavaScript, Python, Scala, Haskell, Swift, Common Lisp, Rust, Ruby, PHP, C#, Erlang
Available in Go, JavaScript, Python
Type
License MIT license, Apache license 2.0
Website ipfs.tech

The InterPlanetary File System (IPFS) is a protocol, hypermedia and file sharing peer-to-peer network for storing and sharing data in a distributed file system. By using content-addressing, IPFS uniquely identifies each file in a global namespace that connects IPFS hosts, creating a resilient system of file storage and sharing. [4] [5]

Contents

IPFS allows users to host and receive content in a manner similar to BitTorrent. As opposed to a centrally located server, IPFS is built around a decentralized system of user-operators who hold a portion of the overall data. Any user in the network can serve a file by its content address, and other peers in the network can find and request that content from any node who has it using a distributed hash table (DHT). [6]

In contrast to traditional location-based protocols like HTTP and HTTPS, IPFS uses content-based addressing to provide a decentralized alternative for distributing the World Wide Web. [5] [7] [8]

IPFS is widely used in decentralized applications, scientific data sharing, and content archiving, serving as a foundational layer for the emerging decentralized internet. [9] [10] [11]

Design

The InterPlanetary File System (IPFS) is a decentralized protocol, hypermedia, and peer-to-peer (P2P) network for distributed file storage and sharing. By using content-addressing, IPFS uniquely identifies files in a global namespace that interlinks IPFS hosts, creating a hypermedia system that enables efficient and reliable data distribution. [12]

IPFS allows users to host and receive content in a manner similar to BitTorrent. As opposed to a centrally located server, IPFS is built around a decentralized system of user-operators who hold a portion of the overall data, creating a resilient system of file storage and sharing. Any user in the network can serve a file by its content address, and other peers in the network can find and request that content from any node who has it using a distributed hash table (DHT). In contrast to BitTorrent, IPFS aims to create a single global network. This means that if two users publish a block of data with the same hash, the peers downloading content from one user will also exchange data with those downloading it from the second. [13]

Key features of IPFS include:

IPFS aims to replace protocols used for static webpage delivery by using gateways that are accessible with HTTP. [14] Users may choose not to install an IPFS client on their device and instead use a public gateway. A list of these gateways is maintained on the IPFS GitHub page. [15]

Beyond providing an alternative for web hosting, IPFS is widely used in decentralized applications, scientific data sharing, and content archiving, serving as a foundational layer for the emerging decentralized internet. [16] [17] [18]

History

IPFS was created by Juan Benet, who later founded Protocol Labs in May 2014. [5] [19] An alpha version was launched in February 2015, and by October of the same year was described by TechCrunch as "quickly spreading by word of mouth." [1] Network service provider Cloudflare started using IPFS in 2018 and launched its own gateway in the system in 2022.

In March 2020, the Opera browser provided access to the centralized resources of the Unstoppable Domains provider by hosting content in IPFS.

Applications

Anti-censorship

Malware

Phishing attacks have also been distributed through Cloudflare's IPFS gateway since July 2018. The phishing scam HTML is stored on IPFS, and displayed via Cloudflare's gateway. The connection shows as secure via a Cloudflare SSL certificate. [34]

The IPStorm botnet, first detected in June 2019, uses IPFS so it can hide its command-and-control amongst the flow of legitimate data on the IPFS network. [35] Security researchers had worked out previously the theoretical possibility of using IPFS as a botnet command-and-control system. [36] [37]

See also

Related Research Articles

Gnutella is a peer-to-peer network protocol. Founded in 2000, it was the first decentralized peer-to-peer network of its kind, leading to other, later networks adopting the model.

<span class="mw-page-title-main">Peer-to-peer</span> Type of decentralized and distributed network architecture

Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the network, forming a peer-to-peer network of nodes.

Uploading refers to transmitting data from one computer system to another through means of a network. Common methods of uploading include: uploading via web browsers, FTP clients, and terminals (SCP/SFTP). Uploading can be used in the context of clients that send files to a central server. While uploading can also be defined in the context of sending files between distributed clients, such as with a peer-to-peer (P2P) file-sharing protocol like BitTorrent, the term file sharing is more often used in this case. Moving files within a computer system, as opposed to over a network, is called file copying.

<span class="mw-page-title-main">Distributed hash table</span> Decentralized distributed system with lookup service

A distributed hash table (DHT) is a distributed system that provides a lookup service similar to a hash table. Key–value pairs are stored in a DHT, and any participating node can efficiently retrieve the value associated with a given key. The main advantage of a DHT is that nodes can be added or removed with minimum work around re-distributing keys. Keys are unique identifiers which map to particular values, which in turn can be anything from addresses, to documents, to arbitrary data. Responsibility for maintaining the mapping from keys to values is distributed among the nodes, in such a way that a change in the set of participants causes a minimal amount of disruption. This allows a DHT to scale to extremely large numbers of nodes and to handle continual node arrivals, departures, and failures.

BitTorrent, also referred to as simply torrent, is a communication protocol for peer-to-peer file sharing (P2P), which enables users to distribute data and electronic files over the Internet in a decentralized manner. The protocol is developed and maintained by Rainberry, Inc., and was first released in 2001.

An anonymous P2P communication system is a peer-to-peer distributed application in which the nodes, which are used to share resources, or participants are anonymous or pseudonymous. Anonymity of participants is usually achieved by special routing overlay networks that hide the physical location of each node from other participants.

A distributed data store is a computer network where information is stored on more than one node, often in a replicated fashion. It is usually specifically used to refer to either a distributed database where users store information on a number of nodes, or a computer network in which users store information on a number of peer network nodes.

<span class="mw-page-title-main">Content delivery network</span> Layer in the internet ecosystem addressing bottlenecks

A content delivery network or content distribution network (CDN) is a geographically distributed network of proxy servers and their data centers. The goal is to provide high availability and performance by distributing the service spatially relative to end users. CDNs came into existence in the late 1990s as a means for alleviating the performance bottlenecks of the Internet as the Internet was starting to become a mission-critical medium for people and enterprises. Since then, CDNs have grown to serve a large portion of the Internet content today, including web objects, downloadable objects, applications, live streaming media, on-demand streaming media, and social media sites.

A dark net or darknet is an overlay network within the Internet that can only be accessed with specific software, configurations, or authorization, and often uses a unique customized communication protocol. Two typical darknet types are social networks, and anonymity proxy networks such as Tor via an anonymized series of connections.

Content-addressable storage (CAS), also referred to as content-addressed storage or fixed-content storage, is a way to store information so it can be retrieved based on its content, not its name or location. It has been used for high-speed storage and retrieval of fixed content, such as documents stored for compliance with government regulations. Content-addressable storage is similar to content-addressable memory.

<span class="mw-page-title-main">Tribler</span> Peer-to-peer filesharing software and protocol

Tribler is an open source decentralized BitTorrent client which allows anonymous peer-to-peer by default. Tribler is based on the BitTorrent protocol and uses an overlay network for content searching. Due to this overlay network, Tribler does not require an external website or indexing service to discover content. The user interface of Tribler is very basic and focused on ease of use instead of diversity of features. Tribler is available for Linux, Windows, and OS X.

Peer-to-peer file sharing (P2P) systems like Gnutella, KaZaA, and eDonkey/eMule, have become extremely popular in recent years, with the estimated user population in the millions. An academic research paper analyzed Gnutella and eMule protocols and found weaknesses in the protocol; many of the issues found in these networks are fundamental and probably common on other P2P networks. Users of file sharing networks, such as eMule and Gnutella, are subject to monitoring of their activity. Clients may be tracked by IP address, DNS name, software version they use, files they share, queries they initiate, and queries they answer to. Clients may also share their private files to the network without notice due to inappropriate settings.

Peer-to-peer caching is a computer network traffic management technology used by Internet Service Providers (ISPs) to accelerate content delivered over peer-to-peer (P2P) networks while reducing related bandwidth costs.

Peer-to-peer web hosting is using peer-to-peer networking to distribute access to webpages. This is differentiated from the client–server model which involves the distribution of web data between dedicated web servers and user-end client computers. Peer-to-peer web hosting may also take the form of P2P web caches and content delivery networks.

Torrent poisoning is intentionally sharing corrupt data or data with misleading file names using the BitTorrent protocol. This practice of uploading fake torrents is sometimes carried out by anti-infringement organisations as an attempt to prevent the peer-to-peer (P2P) sharing of copyrighted content, and to gather the IP addresses of downloaders.

<span class="mw-page-title-main">Twister (software)</span> Blog software

Twister is a decentralized, experimental peer-to-peer microblogging program which uses end-to-end encryption to safeguard communications. Based on BitTorrent- and Bitcoin-like protocols, it has been likened to a distributed version of Twitter.

<span class="mw-page-title-main">ZeroNet</span> Peer to peer web hosting

ZeroNet is a decentralized web-like network of peer-to-peer users, created by Tamas Kocsis in 2015, programming for the network was based in Budapest, Hungary; is built in Python; and is fully open source. Instead of having an IP address, sites are identified by a public key. The private key allows the owner of a site to sign and publish changes, which propagate through the network. Sites can be accessed through an ordinary web browser when using the ZeroNet application, which acts as a local webhost for such pages. In addition to using bitcoin cryptography, ZeroNet uses trackers from the BitTorrent network to negotiate connections between peers. ZeroNet is not anonymous by default, but it supports routing traffic through the Tor network.

<span class="mw-page-title-main">WebTorrent</span> Peer-to-peer web-based torrent client

WebTorrent is a peer-to-peer (P2P) streaming torrent client written in JavaScript, from the same author, Feross Aboukhadijeh, of YouTube Instant, and the team at WebTorrent and on GitHub, for use in web browsers, as well as a WebTorrent Desktop stand alone version able to bridge WebTorrent and BitTorrent serverless networks.

<span class="mw-page-title-main">Protocol Labs</span>

Protocol Labs is an open-source software research and development company, founded in 2014. It is best known for creating the InterPlanetary File System (IPFS), a peer-to-peer decentralized web protocol, and Filecoin, a decentralized file storage network.

The decentralized web is a network of independent computers that provide secure, censorship-resistant access to information and services without relying on central servers or clouds, using decentralized computing.

References

  1. 1 2 3 Case, Amber (2015-10-04). "Why The Internet Needs IPFS Before It's Too Late". TechCrunch . Archived from the original on 2022-02-05. Retrieved 2019-07-16.
  2. "Release 0.28.0". 2024-04-15. Retrieved 2024-04-23.
  3. "agorise / c-ipfs". git.agorise.net.
  4. Benet, Juan (2014-07-14). "IPFS - Content Addressed, Versioned, P2P File System". arXiv: 1407.3561 [cs.NI].
  5. 1 2 3 Finley, Klint (2016-06-20). "The Inventors of the Internet Are Trying to Build a Truly Permanent Web" . Wired . ISSN   1078-3148. OCLC   24479723. Archived from the original on 2020-12-15. Retrieved 2017-03-07.
  6. Krishnan, Armin (2020). "Blockchain Empowers Social Resistance and Terrorism Through Decentralized Autonomous Organizations". Journal of Strategic Security . 13 (1): 41–58. doi: 10.5038/1944-0472.13.1.1743 . ISSN   1944-0464. JSTOR   26907412.
  7. Youtube: Stanford Seminar - "IPFS and the Permanent Web"- Juan Benet of Protocol Labs Archived 2022-08-09 at the Wayback Machine Quote: "...The InterPlanetary File System (IPFS) is a new hypermedia distribution protocol, to complement--and eventually replace--HTTP. It improves the security, performance, operation modes, and data friendliness of the Web. In particular, it yields a powerful new model, where websites and web applications are decoupled from origin servers, are distributed trustlessly through the network, and are encrypted, authenticated, and executed safely..."
  8. Youtube: IPFS: Interplanetary file storage! Archived 2022-08-09 at the Wayback Machine
  9. Benet, Juan. "IPFS - Content Addressed, Versioned, P2P File System" (PDF). arXiv. 1: 1–21.
  10. "IPFS powers the distributed web" . Retrieved 2024-05-09.
  11. "What is IPFS?" . Retrieved 2024-05-09.
  12. Krishnan, Armin (2020). "Blockchain Empowers Social Resistance and Terrorism Through Decentralized Autonomous Organizations". Journal of Strategic Security . 13 (1): 41–58. doi: 10.5038/1944-0472.13.1.1743 . ISSN   1944-0464. JSTOR   26907412.
  13. "Content addressing". docs.ipfs.tech. Archived from the original on 2020-08-29. Retrieved 2020-08-29.
  14. "IPFS Gateway". docs.ipfs.tech. Archived from the original on 2020-08-29. Retrieved 2020-08-29.
  15. "Public Gateway Checker | IPFS". GitHub . Archived from the original on 2020-08-24. Retrieved 2020-08-29.
  16. Benet, Juan. "IPFS - Content Addressed, Versioned, P2P File System" (PDF). arXiv. 1: 1–21.
  17. "IPFS powers the distributed web" . Retrieved 2024-05-09.
  18. "What is IPFS?" . Retrieved 2024-05-09.
  19. "About". Protocol Labs. Archived from the original on 2021-04-28. Retrieved 2021-04-28.
  20. Johnson, Steven (2018-01-16). "Beyond the Bitcoin Bubble" . The New York Times . ISSN   1553-8095. OCLC   1645522. Archived from the original on 2021-12-21. Retrieved 2018-09-26.
  21. Orcutt, Mike (2018-10-05). "A big tech company is working to free the internet from big tech companies". MIT Technology Review . ISSN   0040-1692. Archived from the original on 2021-01-26. Retrieved 2020-04-21.
  22. ""Anna's Archive" Opens the Door to Z-Library and Other Pirate Libraries * TorrentFreak". TorrentFreak. Archived from the original on 2022-11-19. Retrieved 2023-01-08.
  23. "'Shadow Libraries' Are Moving Their Pirated Books to The Dark Web After Fed Crackdowns". VICE. Archived from the original on 2022-11-30. Retrieved 2023-01-08.
  24. "Web3 tech helps banned books on piracy site Library Genesis slip through the Great Firewall's cracks, but for how long?". South China Morning Post. 2022-04-16. Archived from the original on 2022-11-29. Retrieved 2023-01-08.
  25. "Internet Archive: Digital Library of Free & Borrowable Books, Movies, Music & Wayback Machine". archive.org. Retrieved 2024-04-16.
  26. oduwsdl/ipwb, ODU WS-DL, 2024-04-09, retrieved 2024-04-16
  27. Universal Access to All Knowledge: Decentralization Experiments at the Internet Archive . Retrieved 2024-04-16 via archive.devcon.org.
  28. "Brave Launches New Swag Store Powered by Origin". Brave (Press release). 2020-03-24. Archived from the original on 2020-04-25. Retrieved 2020-04-21.
  29. Porter, Jon (2021-01-19). "Brave browser takes step toward enabling a decentralized web". The Verge . Archived from the original on 2021-02-26. Retrieved 2021-01-29.
  30. "Opera introduces major updates to its blockchain-browser on Android". Opera (Press release). 2020-03-03. Archived from the original on 2020-04-02. Retrieved 2020-04-21.
  31. Balcell, Marta Poblet (2017-10-05). "Inside Catalonia's cypherpunk referendum". Eureka Street . Vol. 27, no. 20. ISSN   1833-7724. Archived from the original on 2021-09-15. Retrieved 2021-09-15.
  32. Hill, Paul (2017-09-30). "Catalan referendum app removed from Google Play Store". Neowin . Archived from the original on 2020-11-01. Retrieved 2017-10-06.
  33. Dale, Brady (2017-05-10). "Turkey Can't Block This Copy of Wikipedia". Observer . ISSN   1052-2948. Archived from the original on 2017-10-18. Retrieved 2017-12-20.
  34. Abrams, Lawrence (2018-10-04). "Phishing Attacks Distributed Through Cloudflare's IPFS Gateway". Bleeping Computer . Archived from the original on 2019-10-09. Retrieved 2019-08-31.
  35. Palmer, Danny (2019-06-11). "This unusual Windows malware is controlled via a P2P network". ZDNet . Archived from the original on 2019-09-06. Retrieved 2019-08-31.
  36. Patsakis, Constantinos; Casino, Fran (2019-06-04). "Hydras and IPFS: a decentralised playground for malware". International Journal of Information Security. 18 (6): 787–799. arXiv: 1905.11880 . doi:10.1007/s10207-019-00443-0. S2CID   167217444.
  37. Macabeus, Bruno; Vinicius, Marcus; Cavalcante, João Paolo; de Souza, Cidcley Teixeira (2018-05-06). Protocolos IPFS e IPNS como meio para o controle de botnet: prova de conceito. Workshop de Segurança Cibernética em Dispositivos Conectados (in Brazilian Portuguese). Archived from the original on 2021-01-17. Retrieved 2021-04-27 via SBC Open Lib.