Fermat, the Internet of People and the Person to Person Economy
This is our vision about a decentralized and connected human species. It is also a plan on how to get there. Decentralization makes humans more resilient and eventually free. We offer an alternative to the current path where all humans will be connected to a matrix-like entity that will control it all.
The Fermat Project
We envision a world where people can freely interact electronically without unnecessary third party interferences. Both for social and commercial interactions. No spying, no censorship, no taking a cut on private transactions between individuals, no mining of private information, no unnecessary middlemen. A world where people are more important than entities like companies and states, a world where people have the choices and the means to interact directly between each other.
We have been living inside an ongoing trend towards centralization of power and control. In present time a handful of entities (giant companies or conglomerates and some states) dictates what a huge percentage of the world population can or cannot do. In this current path it is not difficult to predict that someday in the future some entity will control it all and there is when things can go really bad. Fermat is a community of people standing up against this trend, aiming to create a future where humans will be connected between them but in a decentralized way.
We need direct device to device communication, with data being stored at end user devices and apps built to interact with each other directly, over the Internet but without going through the web or requiring any service from any company or institution. We need Person-to-Person Apps that can run independent of any entity. This is the Fermat Project vision.
The project is 27 months old. The first year a handful of people joined forces to forge the vision and design the system architecture. The second year more than a hundred people collaborated to prove the concept was viable. We are now at the beginning of the third year, already producing production quality code. Over the course of the next 12 months we expect to release all the Internet of People components (there are many, and it is a technically challenging project). From there we will move on to bootstrapping the P2P economy, creating tools and client-side infrastructure to easily develop device to device P2P Apps.
This next featured post is a good starting point to learn about the Internet of People in the context of the blockchain industry.
Bitcoin, Ethereum and the Internet of People
16 min read only
The concepts of Bitcoin, Ethereum and the Internet of People share a lot of similar properties. But if you take a closer look, you will find some major differences. Here we explore those differences and learn how any decentralized app can take advantage of the individual services these networks provide.
What is Bitcoin?
In the beginning, Bitcoin only had a white paper, which defined a protocol to create a p2p electronic cash system. If you read that white paper, you will find the following sections:
Introduction, Transactions, Timestamp Server, Proof-of-Work, Network, Incentive, Reclaiming Disk Space, Simplified Payment Verification, Combining and Splitting Value, Privacy, Calculations, Conclusion.
In short, Bitcoin’s concept works like this: We have a server which processes transactions that run on top of a p2p network. These transactions include the accounts from and to which the coins are sent. They also include a very basic script language which is interpreted by the server. Because of this script some people called bitcoin programmable money.
Then there is a consensus mechanism called Proof-of-Work (PoW) that enables the network to agree on the status of the public ledger, storing all transaction information. This ledger is called a blockchain. There is also an incentive to run these servers which is split in two parts: 1) issuing of new coins and 2) transactions fees paid by clients.
This system has the following properties:
- Decentralized: Like the internet, the Bitcoin network is not owned by anyone in particular. Any individual can own nodes and participate, but not the whole network itself.
- Open Standard: It is possible for anyone to implement the network protocol. This protocol was defined by its anonymous founder, Satoshi Nakamoto, and was later improved by the community.
- Open System: Different wallets can interoperate between each other with ease, since they are all speaking to the same network with the bitcoin protocol. This explains why there are many different wallets on the market and they all can transfer bitcoins between each other.
- Permissionless: Anyone can run a Bitcoin network node. Anyone can use the network. Anyone can write bitcoin wallet software. All that is possible without permission of any third party.
- Dumb: It is a dumb network that pushes innovation to the edge, giving end-users control over the pace and direction of innovation.
- Shared Asset: The resulting network is a shared commons asset anyone can use. The transaction costs and time is almost nil.
- Incentivized: There is an economic incentive to run a network node and support the bitcoin network. In fact there are two: Earning transaction fees and generating newly issued coins.
Putting all these properties together at the same time is very important, since those properties allow permissionless innovation while attracting users by an economic incentive, derived from cheaper transactions as a result of disintermediation.
The most popular implementation is called “Bitcoin Core”. At the beginning it had it all together: it was a client (wallet), and also a network node, and also a transaction server. Their operators were then rewarded by the two incentives: transaction costs and mining new coins. This was the first generation blockchain based system and from there everything else evolved.
What is Ethereum?
Ethereum is a second generation blockchain system, a Bitcoin child. It inherits the same basic properties from bitcoin and generalized the concept in this way: Do you remember the script on each transaction that elevated bitcoin to a programmable money status? If you allowed the script to be an individual program of arbitrary complexity, then you would enable the system not only to process financial transactions but to process almost any type of transactions that depend on pre-defined circumstances. Ethereum called these programs smart contracts.
These changes opened the door for a whole new type of clients applications, too: They are not limited to money transactions and wallets, but can be any kind of application for different use cases. Clients can then post smart contracts to be autonomously executed by the network in a trustless execution environment (aká trustworthy). Today, with such an infrastructure in place, people are now able to create any type of decentralized application. Ethereum evolved by adding more components to their system, like some to pass messages from client to client and maintaining decentralized storage.
Ethereum inherited all properties of the bitcoin network. The project is younger than bitcoin, but it already has 1/10 of its market cap. Ethereum’s mission is to enable p2p applications by allowing clients to interact through Ethereum system components, mainly by the means of smart contracts.
What is the Internet of People?
The Internet is the global system of interconnected computer networks that use the Internet protocol suite (TCP/IP) to link devices worldwide. A network of networks. On top of the Internet lies the Web:
The World Wide Web (abbreviated “WWW” or “Web”) is an information space where documents and other web resources are identified by Uniform Resource Locators (URLs), interlinked by hypertext links, which can be accessed via the Internet. These documents are served to client applications by a web server.
The Internet of Things (IoT), is the connection of physical devices, vehicles (also referred to as “connected devices” and “smart devices”), buildings and other items—embedded with electronics, software, sensors, actuators, and network connectivity, enabling these objects to collect and exchange data.
The Internet of People (IoP) is a network of networks of people overlayed on top the Internet. Different kinds of profiles are interconnected and each profile type inside the IoP defines a network of people who self-identify with that type of profile. All these interconnected networks form the Internet of People. IoP can be also defined as an information space constrained to a special type of document intended to store a person’s online profile and other associated resources. These documents are interlinked to define public relationships between these profiles.
The following table explains the differences between these concepts:
|Concept||Internet||World Wide Web||Internet of Things||Internet of People|
|Network of…||Computers/smart devices (phones)||Physical Devices||People’s Profiles|
|Standards Defined by||W3C||Internet of Things Consortium and others||Internet of People Consortium and others|
|Runs on Top of||Physical Infrastructure||Internet||Internet||Internet|
|Main Server Software||Web Server||Profile Server|
|Main Client Software||Web Browser||IoP Browser|
|Owned by||No One / Companies Own their own Individual Network||No One / Companies Own Web Servers and their Content||No One / Companies Own their Devices||No One / Node Operators Own their Nodes / People own their Profiles|
The IoP is also a second generation blockchain system, a bitcoin child, and Ethereum’s youngest brother. It too enables any type of p2p applications but with a different approach: Instead of generalizing bitcoin’s only use case (payment) by allowing a turing complete scripting language, IoP broke Bitcoin into pieces and then added more pieces respecting the fundamental rules of Bitcoin, allowing IoP to inherit all of Bitcoins properties plus adding more features with different use cases.
The first thing we did was to start from a fork of Bitcoin itself. Then we split it into these components:
- Token Server: This server is responsible only for processing transactions. It does not issue new tokens. This is a step forward from Bitcoin, since PoW has proven over time to centralize the network. PoW is replaced by a hybrid PoS/PoW consensus protocol. Token Servers are incentivized only by transaction fees paid by end users.
- Minting Server: Its responsibility is the issuing of tokens to the network. Reliable operators of full nodes are incentivized by receiving these newly issued tokens as well as other contributors to the IoP project voted by the community.
- Unstructured Network: This is a general purpose p2p network node creating an unstructured network. Any server in the system can run on top of it.
These first two servers are the foundation of the IoP system. This is where we differentiate ourselves from Ethereum: We do not generalize the script in transactions, so we don’t process smart contracts.
So basically, what we do is to solve the problems distributed applications have:
- How do we find other users of the same app or even of other apps in the network?
- How do we allow client apps to communicate with each other?
- Where should the app data be stored?
To solve 1.) we introduced the following components:
- Profile Server: This server is responsible to host end users’ profiles, of any type (depending on the app that uploaded the profile). Lots of different apps upload different types of profiles to the network, sometimes linking them together. This creates a network of networks of people, thus the name Internet of People. To adhere to Bitcoins basic properties, we incentivize this type of server via clients paying with minimal micropayments the Profile Servers hosting their profiles, like transaction costs we invent service handling costs. These fees cover also the next two components that must be running on the same machine.
- Content Address Network: This is needed to find content by its hash. When appropriate, Profile Servers push their profiles to this network.
- Location Based Network: This is needed to find people by their average geo-location. If you know your friend’s name and the city he lives in, that should be enough to find him.
To solve 2.) we introduced the following components:
- STUN Server: Enables two clients that are behind firewalls to connect to each other in a device to device p2p way.
- TURN Server: Relays data between two clients when a p2p connection using a STUN server is not possible.
- Latency Based Network: It is a p2p network organized by latency. It helps clients to pick up the best common node to use for example a TURN Server between them.
STUN and TURN Servers are incentivized by micropayments paid by clients in IoP tokens. This is critical to inherit all of the Bitcoin properties. Latency based network nodes run on the same machine as the TURN Servers. The incentive is the same as for the other servers since they are run by the same operator.
To solve problem 3) we diverged from our older brother and other projects that propose to store app data inside smart contracts, a decentralized storage, the cloud or so on. We believe that the most secure and private place to store data is at the end users’ own devices. This means that any IoP app (client app) stores its data on end users devices.
Certainly, this is not possible in all situations: end users devices, especially mobile ones, go offline every time you turn them off or don’t have data access. For other end users to access a user’s public data, the devices should be online at the time of the request.
To solve that, we allow client apps to attach some information about the user’s profile to the Profile Server. This way non-sensitive information can be kept online. The rest (sensitive info + info that does not need to always be available) is kept at end users’ devices. Finally we add to the Profile Server the responsibility to serve queries against that extra information, and the result is a system-wide discovery layer where anybody — users of any IoP app — can freely discover anybody else over a permissionless network either by their profile or by their extra info attached, which can be anything: Flats they are renting out, products they are selling, etc..
In an open network like this, anybody can find anybody else, but they also need to be able to interact with each other. We have to solve a whole new space of problems, like: What if I find another chat user, for example, and I want to chat with her, will I be able to do it? What if she is using a different IoP chat app than me?
To enable interoperability between IoP applications of the same type, we defined the concept of Application Services. These are specialized communication channels that can be either open or closed at end user devices. For example, all IoP chat apps using the standardized chat application service as a channel, can speak to each other, meaning that in IoP, one User can use an IoP chat app similar to Whatsapp and the other an app more similar to the Messenger. This interoperability is very powerful because it enables private networks of any kind to interact with other networks through the IoP, which is acting as the connecting tissue.
Finally the IoP concept is completed – when we add these two last components – which are very useful to clients IoP apps:
- Proximity Server: It allows some IoP apps to check in their profile at the closest proximity node, so as to enable other clients to query that node and learn about the people around them. This server is incentivized with micro-payments.
- Reputation Server: It allows people to rate other people’s profiles, so that anybody can check the reputation of anybody else on the different roles they play online. This server is incentivized with a fee paid by clients posting reputation info.
The main properties of the Internet of People
By strictly respecting blockchain properties while inheriting them, we end up having a system, called Internet of People, that is:
- Decentralized: It is a p2p decentralized network and like the internet not owned by anyone in particular.
- Open Standard: It is possible for anyone to implement the network protocol. This IoP protocol is to be defined by a standards organization called IoP Consortium in which anyone can participate.
- Open System: Different apps of the same type using the Internet of People can interoperate between each other as long as they follow the standard protocol.
- Permissionless: Anyone can run a network node. Anyone can use the network. Anyone can write apps that consume the network’s services.
- Dumb: It is a dumb network, that pushes innovation to the edge by giving end-users control over the pace and direction of innovation without third parties’ influence.
- Shared Asset: The resulting network of people is a shared asset anyone can use.
- Mobile First: The IoP allows mobile devices to connect to each other while overcoming the limitations of not being able to receive incoming TCP/IP connections which are blocked in many jurisdictions because of being behind firewalls.
- Incentivized: There are economic incentives to run every different type of server.
Finally, this table compares the properties of these 3 projects:
|Property||Bitcoin||Ethereum||Internet of People|
|Vision||Enable a Supranational Digital-Gold-like Currency||Enable Unstoppable Decentralized Apps Running as Smart Contracts||Enable Decentralized Apps based on Device to Device p2p Connections|
|Mission||Create Digital Cash System where parties don’t need to trust each other||Create Trustless Execution Environment, global Virtual Machine||Be a People Discovery Layer & Connectivity Facilitator for p2p apps + Proximity and Reputation Services for People.|
Trustless Transfer of Value
Trustless Execution of Smart Contracts (any)
Any Type of device to device p2p Apps
|Consensus Algorithm||PoW||Hybrid PoS PoW||PoS Filtered PoW|
|Standards||Community||Community + Foundation||Community + Consortium|
|Users as a Shared Asset||No||No||Yes|
|Network of People||No||No||Yes|
|People Proximity Service||No||No||Yes|
|People Reputation Service||No||No||Yes|
|Enables Clients Device to Device p2p Connections||No||No||Yes|
|Geolocalized p2p Networks||None||None||Many|
|Latency Based p2p Networks||Node||Node||1|
|Content Address Networks||Node||1||2|
|Main App Data Storage||Blockchain||Distributed Storage Layer||Client Devices|
We expect to be releasing the whole set of IoP components during the next months. In 2017 our work should complement the one already done by Ethereum and Bitcoin.
If you were about to design a decentralized app in the early 2017, what should you use? Bitcoin, Ethereum, or the Internet of People? You could use none of them, all of them, or any combination: It depends on what your app needs.
Does your app need to handle payments in cryptocurrency?
Fine, you will need to use bitcoin, as it is the most popular cryptocurrency and chances are high, that your target audience will know about it and have access to an exchange where they can buy them.
Does your app need part of its functionality to run on a trustless execution environment?
Fine, you need smart contracts. Today the most popular and advanced platform is Ethereum, so you should think about putting some of your app logic on a smart contract. A typical example is a p2p betting app. If I were to bet with you and the bet is recorded and executed only on our phones, then – once the result of the event we are betting about is known – any one of us can cheat, just by deleting the app and not paying the winner. In this situation we need a 3rd party execution environment that runs independently of you and me. If we don’t want to trust a 3rd party company, then we need a trustless execution environment. This is the case where we need Ethereum.
Does your app needs to connect device to device in a p2p way?
Fine, you need the Internet of People. IoP helps you easily create apps that connect device to device in a p2p way without using any centralized third party for any of the following: discovery of the remote device, the signaling processes involved (agreeing on communication details), or usage of a STUN or TURN server if needed.
For example, you can do all this without going through a private search engine or telling your end users to exchange their accounts, IDs or aliases via email, chat or other unsecure trustful networks. You can connect their devices directly without using Google push notifications, or any other company’s signaling, STUN or TURN servers.
Does your app need to know who is around and the reputation of those people?
Fine, you need the Internet of People. Let’s say you are building a taxi application that is p2p IoP ready, specifically the one that passengers use but without intermediary third parties involved. What unique advantages would using IoP bring to you in contrast with Ethereum or Bitcoin?
- Re-usage of the user base: As the IoP is a shared asset as a network of people, you might not need to even build the taxi app for drivers: if someone did it before, you can just reuse the current network of drivers already in the network. We are not talking here about reusing software, but a whole shared user base created by other individuals / entrepreneurs / companies.
- Proximity Service: IoP provides a proximity service that is perfect for the taxi use case. Instead of needing to scan the profile network, your passenger app just needs to connect to the physically closest IoP Proximity Node where all taxi drivers driving around are currently checked in. One query on one node and your app has the list of all taxi drivers around your end user, listing sorted by individual price offer or further service offers – any use case for different apps is possible here.
- Reputation Service: You might want your end users to know these taxi driver’s reputation. IoP Reputation Service for People provides just that.
This way, when your end users hit the request-taxi-button, your app will go to the closest Proximity Server Node, request there a list of all taxi drivers checked in, and to the Reputation Service to get reviews for these drivers. It would filter out those below a certain threshold and order the list, for example by proximity to your end user. Then it will connect to the profile server of each driver, and request a quotation for your trip over a p2p connection to the taxi driver’s device. After receiving the answers (automated by the taxi driver apps) it would reorder the list again, probably by price and proximity, as your app wishes. Finally, it would request the ride from the first on the list, having the rest as a fallback. In short, with the help of IoP, you created a decentralized marketplace around your end user on the spot, and of taxi drivers with no affiliation to any company at all. A Free Market – meaning disintermediation and cheaper rides – over a public infrastructure (IoP) with negligible costs. This is so powerful that you might be able to disrupt big players in any industry.
…“We will see an evolution from social to peer-to-peer,” says Molina.
because it is a device-to-device-based network…
“…it will provide a web solution without third-party interference,which gives the platform several advantages. Privacy, cost and the removal of “arbitrary rules”…”
“…Fermat is cryptocurrency-enabled to allow for the global exchange of value. Peer-to-peer by design, Fermat features built-in privacy controls…”
“…a new software development model that allows for collaboration and increased efficiency. It introduces the concept of “component ownership”…”
“…Fermat was designed to empower an ‘Internet of People’ in contrast to a ‘Web of Companies’ and to advance the P2P era and economy…”
“…A decentralized and blockchain-fueled app platform which has existed in proof-of-concept mode for two years, Fermat has now officially launched …”
“…Fermat (a name derived from a French attorney/mathematician) is comprised of a team of over 60 full-time … crafting a new “Internet of People”…”
“… The great thing about this Internet of People, in contrast with the current web, is the option of freedom from third parties …”
“…Imagine an on-demand service that requires no proprietary app to engage — food delivery for instance…”
“…Existe una cierta carrera mundial por ver quién produce la “killer app”, o la aplicación que masifique el uso de Bitcoin…”
“…almost any use case currently functioning on the web or on mobile can be created on the Fermat system in a p2p format…”
“…help businesses reduce their cost to develop applications by creating a platform where developers can sell pieces of code…”
Read the Draft of the Internet of People Whitepaper. This cover the short term vision of the Fermat project. Technical details are discussed at the Software Requirements Specification document.
Software Requirements Specification
Developers: Here you will find the technical details and definitions that are being implemented. Your suggestions and comments are welcome.
IoP Token Wallets
Luis Fernando Molina
Community & Chapters
Infrastructure | Community
Social Media | Community
IoP Token Mining
IoP tokens are currently mined by Fermat Local Chapters only. If you would like to mine IoP tokens you need to become a member of your local Fermat Community. All the information regarding IoP token mining can be found here.
Fermat Chapter Network
The Fermat Community is organized in Local Chapters. There is a chapter at every country and by contacting the local representatives you can have assistance in your local language. Find below the list of local chapters already running. You can participate in the project by joining a chapter or funding one if there is none in your reagion. Find here more information on the way we are organized. Here is the up-to-date list of local chapters.