In addition to IPFS and Filecoin, how does Protocol Labs improve the entire Internet - Multiformats

In addition to IPFS and Filecoin, how does Protocol Labs improve the entire Internet - Multiformats

Multiformats literally means "multi-format". It is not a software, but a set of self-describing protocol values ​​(source code and user interface conform to general naming conventions and structured programming conventions, so that ordinary users can understand and read source code and use systems and software without professional knowledge). These values ​​are useful for both the data layer (IPLD) and the network layer (libp2p). It is a system designed to be based on today in order to achieve a future-oriented system.


Simply put, Multiformats is a collection of protocols that aims to create a system that is usable now and in the future. Currently, it is mainly achieved by enhancing self-describing format values. It allows protocols to interoperate, keeps the protocols flexible, extensible, and upgradeable, and helps us avoid being locked in a value.


These protocols have some specific provisions for self-description:


  • They must be in-band (with a value); not out-of-band (within a context).

  • They must avoid lock-in and facilitate scalability.

  • They must be compact and have a binary packed representation.

  • They must have a human-readable representation.


Originally, Multiformats was built specifically for IPFS, but is now widely used in IPLD, libp2p, IPFS, and Filecoin projects .


To understand Multiformats, you need to start by understanding the various protocols that are its subsets. There are currently several types, and each project has a list of implementations in various languages.


  • multihash - self-describing hashes

  • multiaddr (in development) - self-describing network addresses

  • multibase (under development) - self-describing base encoding

  • multicodec - self-describing serialization

  • multistream (deprecated) - a self-describing streaming network protocol

  • multigram (in development) - a self-describing packet network protocol


Next, let’s take a closer look at what these protocols do and how they help the Filecoin network.

Multihash


Multihash is a protocol for distinguishing the outputs of various cryptographic hash functions while solving addressing and encoding problems. It is useful and important in writing applications to ensure the use of hashes by the system and allow multiple hash functions to coexist - especially for those systems that rely on cryptographic hash functions .


It consists of three parts: hash function encoding, hash value length, and hash content. This design and composition is designed for upgrades. If one day the hash function currently used is no longer secure, or a more secure hash function is available, the system can be quickly upgraded through Multihash .



Multiaddr


Multiaddr is a format for encoding addresses from a variety of mature network protocols. Applications are written to ensure their use of addresses and to allow multiple transport protocols and addresses to coexist.


In today’s Internet, many network addressing schemes are not self-describing, they come with interpretation and context, meaning they make assumptions that applications also make, leading to a lot of ad-hoc code that makes it impossible to update protocols in the future because the addressing blocks changes to new protocols.


Multiaddr enables building applications that work with future network protocols without rigidifying systems and stacks.



multibase


Multibase is a protocol for disambiguating binary encodings of base encodings (e.g., base32, base36, base64, base58, etc.) appearing in text .


When text is encoded as bytes, we can often use a one-size-fits-all encoding (UTF-8), since we always encode to the same set of 256 bytes (+/- NUL bytes). When that doesn't work, we can often infer the encoding from context.


But when bytes are encoded as text (using a base encoding), the basic choice of base encoding is often constrained by context. These constraints may also change depending on where the data appears in the text. This results in a base encoding for different use cases. And base encodings cannot be standardized because there is no encoding that works for all cases.


The purpose of Multibase is to tell developers what base encoding to use in what situation. It answers questions like "given data d encoded as text s, what base encoding is it in?"


Filecoin uses IPLD’s content identifiers (CIDs) to reference data, and when CIDs are printed as strings, they use multibase to identify the base encoding being used .



Multicodec


Multicodec is a codec table that is designed for binary representation, that is, using 1-2 bytes to determine the format of the data content, such as using the letter z to represent base58btc encoding, 0x50 to represent protobuf, etc.


In Multihash, it is used to identify a hash, and in machine-readable Multiaddr, it is used to identify components such as IP addresses, domain names, identities , etc.


Now, you should have a systematic understanding of Multiformats. The protocols in use have stable specifications and stable implementations, and Protocol Labs is also working hard to study more subsets of Multiformats and hope to put them into use as soon as possible.


The protocol interoperability and future-oriented considerations that Multiformats can provide will definitely have a real impact on today's Web3.


<<:  Wu said weekly mining information: 0411-0417

>>:  How to Find and Track Crypto Whale Wallets?

Recommend

Which boys are more likely to chase girls based on their facial features?

Which boys are more likely to chase girls based o...

V God's Pride and Prejudice

Overnight, BTC (Bitcoin) rebounded slightly to ar...

Comprehensive exploration of Bitcoin L2 ecosystem and projects

"Bitcoin Layer: Tapestry for the Age of Trus...

Smart palmistry for women

The length of the wisdom line is related to a per...

What does a mole on the left side of the chin mean?

In addition to one's own numerology, moles ca...

What does a triangle on the palm represent?

There are many kinds of miscellaneous lines on th...

Bitcoin miners' mining revenue increased 48% in November

According to on-chain analysis data from Coin Met...

What is a sad face? Check out the characteristics of a sad face

Some people often have many similar facial featur...

Will Genesis be the next to fall?

Today, a rumor about "Genesis going bankrupt...

Ungrateful man's face

Ungrateful man's face Men's narrow forehe...

How much do you know about flat nose?

1. People with flat noses are not enterprising. P...

Does a woman's crossed eyes refer to cross-eyedness? Fate interpretation!

Cross-eyed actually refers to cross-eyes, which c...