Using Blockchain to Decentralize the Internet of Things Network

in #elastos6 years ago

More than 20 years ago, the PC era evolved into the Internet age, and many aspects of human life entered the virtual digital world. As the cost of smart devices continues to fall, the Internet age is about to evolve into the era of the Internet of Things, and human Internet life moves from the virtual world to the world of Internet of Things.

A dynamic Internet of Things ecosystem requires digital currency as a lubricant, and digital currency requires a vibrant IoT ecosystem to reflect its value. That is, in the context of decentralization, the flow of property rights and the two-way nature of digital currency flows. To put it plainly, one hand pays the money, and the other hand delivers it.

Blockchain technology makes it possible to decentralize information and transactions for the Internet of Things. After all, blockchain technology is mainly embodied in unchangeable "accounting" applications, such as recording financial transactions and recording the ownership of property rights.

Today's Internet of Things applications are mostly centralized, that is, mobile terminals need a central website to access IoT devices. Using IoT and blockchain to implement a unified decentralized application platform, we are bound to build a unified decentralized Peer to Peer network covering all mobile terminals, IoT gateways, and blockchain nodes. .

We know that books and audiovisual games in real life are also objects. Consumers can trade privately or even barter. However, on today's Internet e-commerce platform, consumers cannot purchase property rights for e-books or film and television works. They can only purchase their lifetime use rights, and they must not trade privately or give gifts.

Using blockchain technology we can achieve decentralized rights trading of multimedia works. But how to read, play, and run these multimedia solutions based on real rights is a very challenging topic.

We know that the platform on which the software application runs is often referred to as the operating system. In the face of the decentralized application ecology brought about by the Internet of Things and blockchain, a new type of decentralized distributed operating system technology naturally emerges.

The Elastos open source project has been cultivated in the field of network operating systems for many years. It hopes to take advantage of the blockchain tide to become an open source decentralized digital asset logistics platform and serve many blockchain entrepreneurial teams.
微信图片_20180422230426.png

The above scenario is different from familiar browsers and web sites. There are no IP addresses for vending machines and peripherals. How does the mobile terminal establish a direct data channel with the device's two-dimensional code? This requires a unified decentralized peer-to-peer network, and the costs are directly recorded in the blockchain.

Without passing through the central website, the vending machine equipment directly pushes the JavaScript program to the mobile terminal, or the mobile terminal directly downloads the JavaScript program from the vending machine, both of which are examples of decentralized applications. For the AR glasses game, perhaps because the execution efficiency of the JavaScript language is too low, perhaps because the Internet of Things is too large and complex, its implementation language may be Java, and it may be a CPU native instruction language, such as C/C++.

Due to the proliferation of malicious code and network attacks on the Internet, browsers generally only allow Internet applications to be written in the JavaScript language and executed in JavaScript engines with strictly controlled permissions.

Back in the early 1990s, when the Java language was invented, its authors were looking for the 1992 TV set-top box market and the 1995 browser market to expect Java programs to be "written once and run everywhere" in a Java VM virtual machine. Although the Java language has achieved great success, because of the Java language's execution efficiency, code granularity and other issues, the Java language has not been able to independently bear the burden of large-scale and efficient application software. Instead, it invokes Windows, Linux, and other operations through the Java Native Interface (JNI). System native operating platform. Because of this, JavaVM virtual machines have a leaky container that cannot be managed or managed. In the past 25 years, the grand blueprint of “write once and run everywhere” has been lost.

As for the native object code modules compiled by C/C++, they can't stand the scrutiny: It's not difficult to push binary modules through email, dynamic crawling, and real-time pushing. But who dares to run these codes on Windows or Linux? Virus spread, privacy leaks, and cyber attacks can break out at any time.

With regard to this, it is not difficult for us to reach a consensus: If we want to use the C/C++ class native language to write decentralized applications and use the traditional operating system as an operating platform, we must find a way out.
微信图片_20180422225439.png
At its I/O conference in May 2016, Google revealed the “Instant App” R&D program, which is expected to be launched in the next one to two years. The application clicks to run without software installation, regardless of whether it is local, peripheral, or in the cloud. Since the software application is also like a web page of the World Wide Web, there is no version number and it is updated at any time. The software on all websites and cloud disks forms a green ecosystem and lives endlessly.

It is easy for everyone to think that real-time applications must be decentralized: applications that are discovered in the immediate vicinity, that is, non-local, non-cloud applications.

Unlike traditional Windows applications running on the Windows operating system and Android applications running on the Android operating system, the target application runtime environment is difficult to predict.

The technical route and programming model of Microsoft's Windows 10 operating system are completely different from those of Windows XP, and they claim to support the "Universal App". The same application can run on mobile devices such as mobile phones, computers, TVs, game consoles, HoloLens glasses, etc. It does not distinguish whether the CPU is X86 or ARM, and it also supports automatic adaptation of various input methods. With cloud storage as a unified, persistent storage, a seamless and continuous user experience can be supported between devices.

Windows 10 is also known as Microsoft's last large-scale general operating system, that is, there will be no future Windows 11. We explain that an operating system adapts to all general-purpose computing environments, and there is no future branch, which means that Windows 10 will not be fragmented. Compared with Microsoft's previously incompatible operating systems such as WinCE, Win XP, XBox OS, Win Server, and XP Embedded, the Win10 Winbook is clearly easier to adapt to real-time applications. Microsoft is also ambitiously entering the Internet of Things and blockchain.

In contrast, today, Google, Apple, and Linux still have more than one operating system distribution, making instant applications at a loss.

On the matter, for the scene of the Internet of Things plus blockchain, JavaScript, Java, C / C + + and other programming languages ​​automatically adapt to the module between the invocation of the software running platform is bound to be the only choice for immediate application.

However, the biggest challenge for the Internet of Things is network security. Assuming that the traditional operating system is perfect (without a backdoor) and then assuming that the traditional network is perfect (without loopholes), the Internet of Things applications must send a large number of packets to a certain IP address and still transmit it correctly, which means that a DDoS attack is still initiated. Traditional OS patch and patch to put an end to the back door, do not make up for decades, who believes that will be completed in the future? Besides, the webcam attacked half of the United States a few days ago and attacked half of Germany a few days ago. If millions of IoT devices are maliciously rampant, cheap penetration of the market, and deep-throat lurking, then it is really hard to prevent.

Our proposed solution is to limit the role of IoT devices to “personal cloud peripherals” and strictly control the peripherals to not allow Internet access. In other words, today, more than two decades after the Internet, the Internet era has returned to the era of virtual PCs, where virtual PCs refer to personal cloud computing environments. The IoT device runs as a Web service in the personal cloud. Personal cloud is like a private website, and Internet of Things (IoT) services such as video can only be broadcast on demand and not allowed to broadcast outside.

All network communications (IP packet transceiving) between the Internet of Things application on the mobile terminal and the services on the personal cloud are only undertaken by the "new operating system as a network operator." Applications and services cannot send IP packets, making it difficult to reveal privacy and making it difficult to initiate DDoS attacks. Applications and services run in a container-like virtual environment, and the network and system software signatures are solidified. It is very difficult for viruses to penetrate the virtual machine and penetrate the system and network.

The technical details of the network operating system supporting instant applications are not covered here. It is only a conclusion. Compared to mature UNIX and its derived OS in the 1980s, today's OS technology has already made substantial breakthroughs. . We believe that this type of product is mature and the products of different companies will gradually occupy the mainstream market in the next three years.微信图片_20180422225504.png
In the field of blockchain, especially the Ethereum community, thousands of decentralized mining machines on the Internet form an abstract computer called the "world computer." The application running on it is called "DApp" (Decentralized App) literally translated as "decentralized application." Restate it: DApp is a name that refers specifically to a program running on a computer in the world.

Ethereum's definition can easily lead to misunderstandings by traditional software programmers who are new to the blockchain. To take a closer look at the name of the world's computers is also easy to worry about. After all, people can use the open source code of Taifang to build different world-wide computers of public chains, alliance chains, and private chains. In other words, there can be many world computers in this world. We believe that in fact, the world's computers called "blockchain computers" are simple and clear.

Here's a general overview of the computer industry: The rules for increasing the efficiency of distributed parallel computing are governed by Amdahl's law rather than Moore's law (see Wikipedia). A few thousand Bitcoin mining machines are not even parallel computers, but are computers that repeat their calculations and records. Their operating efficiency is less than that of a mining machine. In other words, using a world computer consisting of thousands of mining machines to complete "decentralized application calculations" is very inefficient.

The purpose of a single "virtual cloud computer" consisting of the world's computers and our common cloud computing servers is different, the concept is different, and there is no possibility of expansion. Ethereum plans to speed up blockchain read and write speeds using partitioned parallelism and the goal is to create a faster world computer that can't be changed. The expansion of cloud computing is to increase the so-called "elasticity" while running more distributed user virtual machines to improve computational efficiency.

Since the world computer is conceptually a single computer, the DApps running on it are repeatedly run on decentralized mining machines. However, in concept, DApps are executed serially one by one. Running a single application on a single computer, where does the "decentralization" concept begin? Therefore, it is questionable to say that "the world is running DApp on computers." "Smart contracts run on blockchain computers" are conceptually neat.

Two PhD students from Princeton University founded the Blockstack project and community in 2014. The community is currently claimed to be the largest community of non-financial applications in the blockchain field, with 60,000 fans and dozens of developers. Their goal is to "build a new decentralized Internet", which will be described in more detail later. The meaning of the "Decentralized App" in the Blockstack community is not the definition of the Ethereum community but is closer to Google's concept of "immediate application."

Instant applications run on decentralized distributed computing platforms, that is, on a computer outside the blockchain computer, commonly known as off-chain.

Repeated calculations are performed on a blockchain computer, commonly known as completion within the chain. The purpose of a blockchain computer is at least three: Internet identity information and traceability, artificially created virtual digital assets are scarce, and smart contracts act as "robot brokers."微信图片_20180422225629.png

At present, the common blockchain miners run the Linux operating system and each independently maintains a copy of the blockchain general ledger. On top of Linux is a peer-to-peer (P2P) network that is responsible for broadcasting broadcast transactions. The consensus and reward algorithm runs on the P2P network; the virtual machine hosting the smart contract also runs on the P2P network. It is this specially customized P2P network that conceptually defines the blockchain computer.

So we think of the concept of "The Network is the Computer" proposed by SUN Micro in the early 1990s. The blockchain P2P network makes multiple mining machines form a single unit. Blockchain computer.

Blockchain computers support decentralized billing (such as finance, insurance, etc.) Smart contract applications dominate, but run multimedia virtual digital assets (such as playing movies) and Internet of Things transactions (such as smart locks Switch) is powerless.

Point-to-point playback of decentralized digital media technologies over the Internet has long been not news - BitTorrent (often referred to as BT download) is a typical example. The common Internet products such as live video, VoIP, Skype chat, personal cloud disks, home surveillance cameras, etc., are also commonly used in point-to-point decentralized or weak centers (the center is only assisted when connected) software technology.

Whether it is ZigBee, Bluetooth, or WiFi Internet of Things devices need to use the gateway (Gateway) or router to access the Internet. These gateways and routers are usually smart devices running Linux.

Combining the aforementioned concept of “network as a computer”, we propose to use a unified peer-to-peer network to cover the miner nodes of mobile terminals, home gateways, and blockchain computers to form a single “Internet of Things plus blockchain computer”. The applications running on the decentralized terminal, as well as the services running on the decentralized cloud disks and gateways, are all regarded as programs run on virtual machines supported by the “Internet of Things plus blockchain computer”. Above.

Just like the Internet or telecommunications networks, so-called peer-to-peer networks are made up of many different P2P protocols. Functions such as mobile phone short messages, telephone calls, and videos are completed by different network protocols. Highways, elevators, high-speed rail, indoor and outdoor network optimization also have their merits. Internet, TCP / IP, UDP, HTTP and other protocols will not say more. The decentralized peer-to-peer network will also encounter these conditions. Currently, the blockchain miners are basically the same. They are all connected via network cables and send messages of a specific length. This concludes that the network optimization strategy for blockchain computers will not be too high. complex.

We further suggest that those IoT sensors and cameras behind the smart home gateway should be used as the "Internet of Things plus blockchain computer" peripherals. See the "General Applications section" diagram. For popular science, computer peripherals are smart devices that cannot be accessed directly on the Internet, such as keyboards, mice, printers, and projectors. Devices that cannot access the Internet are safe and do not reveal privacy. The terminal uses a home gateway and other nodes to access the Internet of Things “peripherals” through decentralized Web services. For example, a home surveillance camera does not allow direct sending of IP packets to the Internet (outside network), but must be used as a home gateway. Web services are on demand.

The purpose of the IoT plus blockchain computer concept is only one: security. After all, finance is not a trivial matter. The Internet of Things platform involves various kinds of strange hardware and business combinations. Many security risk scenarios are much more complex than blockchain platforms.微信图片_20180422225639.png
The OS runtime library sandbox is a security barrier and guarantees the security of network hosting operations.
微信图片_20180422225648.png

The goal is grand and there are two necessary links, such as peer-to-peer network and OS runtime sandbox. Guarantees real-time application traceability, ensures that the virtual operating environment of the application is traceable, and ensures that wallets for consumers (whether anonymous or not) using instant applications are traceable. Application traceability includes code execution on virtual digital assets and IoT hardware devices.微信图片_20180422225655.png
Android-like programming model facilitates programmer programming and greatly enhances the ecological prosperity of decentralized applications微信图片_20180422225702.png

Official website address
https://elastos.org
Elastos telegram

(1)news channel
https://t.me/elastos_org
(2) English fan group
https://t.me/elastosfans
(3)Chinese group[]
https://t.me/elastoscn
(4)English group
https://t.me/elastosgrou
(5) South Korean community
https://t.me/elastoskorea
(6) Russian community
https://t.me/Elastos_RUS
(7) Twitter contact
https://twitter.com/clouds621518171