Lfor the purpose of developing SputnikVM is create a new EVM (Ethereum Virtual Machine) for Ethereum Classic.
To achieve this, SputnikVM implements the functionalities of the EVM original Ethereum maintaining compatibility. However, its design and coding has changed to suit the objectives of its developers: efficiency, portability and low consumption of computational resources. Thanks to this, the developers aim to create a VM capable of adapting and developing new devices and production enabled with blockchain technology.
Another additional point among the functionalities of SputnikVM, is its compatibility with other block chains. Certainly, the project is under the tutelage of Ethereum Classic, but its developers have made the decision to make it compatible with Ethereum and other projects based on your code. This opens the possibility of using SputnikVM in other blockchains, such as PoA Network.
Without a doubt, a great development with enormous possibilities, especially in industrial, business and home cases.
Among the most relevant characteristics of this project, we can highlight:
Independent execution architecture. This means that it can be started as a standalone process or integrated into other applications, unlike EVM which is monolithic. This allows the ability to run SputnikVM in a more modular way.
Universal development. SputnikVM has the ability to operate on different blockchain compatible with Ethereum EVM specification. This provides the possibility to use SputnikVM on other compatible blockchains. It also means that its portability to other Ethereum-compatible projects is very simple, as is the case with the PoA Network.
Thought to be fast and efficient. SputnikVM is intended to be an efficient implementation of EVM. This seeks to minimize the impact on the excessive use of computational resources and guarantee an appropriate execution and response to smart contracts at all times.
IoT compatible. This means that SputnikVM can be integrated into very low computing power devices. This seeks to diversify and expand the reach of Ethereum Classic in different devices, especially those aimed at the IoT.
Written in Rust. Rust is a programming language focused on security and performance. Because of this, SputnikVM can enjoy both features natively.
How does SputnikVM work?
SputnikVM, like any virtual machine, seeks to create a level of abstraction between the written code and the execution of said code. Making sure that under any concept, the written code always performs the same actions under any execution scenario. In other words, virtual machines seek to standardize and ensure the processing and execution of the code provided to them. All this, independently of other elements that are part of the platform on which it runs.
This is very important in blockchain technology. Well, this guarantees a high modularity and resilience of all the parties involved in the execution of smart contracts y DApps.
At this point, the operation of SputnikVM does not differ at all from that of Ethereum Virtual Machine (EVM). Both virtual machines have the same objective: execute the code of smart contracts safely. But to accomplish this, they both use different approaches to the solution. At this point, there is no doubt that EVM is an excellent development but its structure makes it unsuitable for use in IoT. To solve these failures, different implementations have been created, with SputnikVM being one of the most promising.
But to understand a little more how SputnikVM works, it is best to review some of the most important parts of it.
First of all, SputnikVM can make use of the programming language Solidity o Rust for your smart contracts. With this they seek to maintain compatibility with the already created smart contracts. On the other hand, the new interface in Rust greatly improves their efficiency and security.
The opcodes or opcodes, They are a instruction set that serve to execute specific tasks. EVM has a wide variety of opcodes. These allow you to compute almost anything, with sufficient resources. At this point, the SputnikVM approach is different. For this it offers a reduced support with 75 opcodes at the moment. The purpose behind this is to offer a smaller but sufficient support to execute smart contracts on IoT devices.
This approach has two positive points:
It makes the SputnikVM code base easier and smaller compared to EVM. This makes security and portability reviews easier to perform.
Minimizes the use of resources by the virtual machine, making it possible to use it on devices with very little power.
Ability to run on embedded systems
This is one of the biggest running features of SputnikVM. The ability to run as part of an embedded system is unique to this development. This, for example, would allow SputnikVM to be an integral part of a sensor assembly on a production line. From there, the virtual machine can be constantly running its smartcontract. Checking that your schedule is respected at all times. In addition to generating the corresponding actions that are then stored in the company's blockchain for review and audit.
EVM certainly has similar capabilities, but its computational cost is much higher due to its complexity.
A clear example of this utility is the project SputnikVM on Rux. Rux is a microkernel designed for IoT systems and that has the quality of being highly modular and open source.
Another big difference in the way SputnikVM works is its ability to run tasks in parallel. This provides a qualitative leap in executing the code of smart contracts, speeding up the process. This taking into account that EVM performs this process sequentially, which obviously has a negative impact on performance.
Despite this, the parallelization in SputnikVM avoids creating security risks in the treatment of transaction states. Ensuring at all times that they will be treated effectively and without setbacks.
Usage example for SputnikVM
The main use cases of SputnikVM are mostly focused on embedded devices. A good example of the usefulness of this development can be the following:
A yogurt production company has decided to set up a new production line. Among its requirements, it has decided to use blockchain technology to closely monitor quality control. To do this, it will create a network of sensors that will feed the company's blockchain, with measurements on the quality of water and milk, temperature of fermentation tanks, concentration of sugars, and state of fermentation at all times. This in order to have a first-class quality control, together with a complete and auditable history of the actions in said production line.
At this point, given the simplicity and low power needs of the SputnikVM, it can be integrated with each sensor within the production line. This reduces costs by avoiding more elaborate and powerful sensors and hardware. In addition, once the sensors have been programmed with a smart contract, they can monitor the task to which they were assigned at all times. If something goes wrong or well on the line, it will be immutably registered on the blockchain. In this way, the company's quality control improves considerably. As a result of this, the final product will maintain the quality that the company wants for its consumers.
How much do you know, cryptonuta?
Does SputnikVM have the ability to radically change the use of blockchain in the IoT?
SputnikVM's ability to integrate with low-cost, low-power IoT devices is its main draw for mass adoption. This thanks to allowing tokenize different business, industrial or household aspects, while companies save on such implementations. All this due to the low cost in the design of hardware and software for this purpose.
Despite the great advances that SputnikVM represents in bringing blockchain technology to the IoT, this development currently has several limitations, including:
It is in an early stage of development. Many of its capabilities are not yet fully tested and polished.
Currently offers incomplete support for EVM opcodes. This situation may lead many developers to think that SputnikVM is not suitable for their projects. However, the development status of SputnikVM may change this as the project matures, just to offer 100% compatibility and support.
Its parallelism capability is only available under Rust programming. A situation that limits the development of smart contracts with the ability to parallelize this language. Solidity and EVM do not currently support this feature.