Why does Starcoin use the Move language?
This article was originally published by the Starcoin community and is based on an interview with Hugo (a core Starcoin developer)
What is the value of Starcoin?
This question is probably of great concern to many of you, so let me say a few more words. As a developer in the open source community, I’d like to talk about my own personal feelings and understanding of Starcoin in the context of what I’ve learned about it.
Let’s start with the vision of Starcoin, which is in the white paper.
Starcoin, a new generation of layered smart contracts and distributed financial networks. There are several important messages implied in this.
Next, let’s understand the ‘vision’ behind these four words and what I consider to be their ‘value’. “Next Generation” is an adjective, so we’ll put it last. Let’s start with ‘layering’
Those who know blockchain may know that the public chain we often talk about can also be called a layer. In my opinion, the most important thing about a layer is the “value precipitation” and the “value empowerment” of these precipitations. From the technical point of view, Starcoin’s layer has many interesting designs: for example, enhanced PoW consensus, stateful billing, economic model for self-expression, complete on-chain governance DAO, scalable standard library Stdlib, new generation smart contract language Move, etc. All these features are designed for the purpose of “value sinking” and “value empowerment”. All these features are for better “value sink” and “value empowerment”, which is the value of Starcoin layer.
Here I will give a few examples to briefly explain how the Starcoin layer can achieve “value sink” and “value empowerment” through technology.
●The first example, PoW consensus: the value on the chain is the value of all people, not someone’s value, to serve the value of all people, I think PoW is more representative of each of us than PoS, of course, Starcoin’s PoW has a lot of interesting optimization, here do not expand, interested friends can go to understand.
●The second example, on-chain governance: the world is changing, and so is the blockchain. Starcoin can respond to future changes through “on-chain governance”. It can be said that Starcoin has the ability to “embrace change” and can continuously improve itself.
●The 3rd example, state billing: “value” is scarce. A layer should focus on the deposition of ‘value’ rather than the storage of ‘information’. Starcoin’s first layer easily solves the problem of exploding state caused by expired information by means of “state billing” to better realize The value is deposited.
●The fourth example, Move: Starcoin’s smart contract language Move is designed around “resources”, an important feature of resources is “value”, in other words, Move can more easily empower “value”. I’ll explain more about Move later, so I won’t expand on it here.
Starcoin has many other designs like this around “value”, so I personally believe that Starcoin’s first layer is very competitive and valuable.
Starcoin’s second layer is dedicated to “connecting everyone”. In common life scenarios, Starcoin hopes that through the second layer technology, everyone around can enjoy the dividends of blockchain technology very conveniently, such as micropayments, listening to music, watching movies, playing games, and other scenarios. From the technical point of view, there are already many solutions in the second layer, such as state channel, Rollup and side chain, etc. Starcoin hopes to unify these solutions, and then, shield these technical details from ordinary users, so that users can enjoy the convenience of blockchain in their lives like a faucet. This is the vision of Starcoin’s second layer, and I personally think it is a very valuable thing.
After talking about “layering”, next is the smart contract Move
As we mentioned earlier when discussing “value empowerment”, Starcoin’s smart contract language is Move, which is a language for “resource-oriented” programming. I personally believe that “resource-oriented programming” is a change in the language of smart contracts. Why do you say so? Our common programming is all about ‘information’ programming. Information can be pasted and copied at will to spread. For example, a tweet can be retweeted at will. This is also information. “Information” can be found everywhere. But “resources” are different. Resources have “value”, they are scarce and cannot be copied, so if one dollar is copied into two, it is a security breach. In a centralized scenario, “information” is used to express “resources”, and then a lot of human testing is done to ensure that the “information data” is correct. If it ends up being wrong, the bailout program, change the database well. But in a decentralized scenario, this is not feasible, so what to do? We need a resource-oriented programming approach to ensure that resources cannot be copied or changed from the virtual machine level, so as to better empower value. That’s what Move does, and that’s what Move does. So I think this is a very big step forward for smart contracts, and it’s certainly valuable.
The above is “smart contracts”, then let’s talk about distributed finance
We know that DeFi track is a very popular direction at the moment, and it is also the direction that Starcoin is concentrating on building. The next step is to let these values flow and realize “value reengineering”, which is Starcoin’s vision of distributed finance.
Old friends who have been following Starcoin should have noticed that many of Starcoin’s DeFi infrastructures and products are already being implemented in parallel, and it is expected that they will meet with you soon.
Personally, I think Starcoin’s DeFi is a valuable way to achieve “value reinvention”.
From “value precipitation” to “value empowerment”, then “value reengineering” through DeFi, and finally “connecting everyone” through the second layer, the blockchain is really close to our lives.
This is what I understand by “new generation” and what I think is the “value” of Starcoin.
Why does Starcoin use the Move language?
First of all, we need to realize that things are constantly evolving. We’ve evolved from binary to assembly to various high-level languages. Smart contracts, too, have taken a big step forward from Script for Bitcoin to Solidity for Ether, but does Solidity have the whole world covered? In fact, the endless security issues that have been plaguing us have largely limited the development of the industry as a whole, such as the attack on Poly Network that has been a hot topic for some time now. “Security” is more important than ever in the financial scenario, especially in the DeFi era, and we cannot turn a blind eye to these issues. If the blockchain industry continues to evolve, there will inevitably be better smart contract languages coming out.
With these premises in mind, a new smart contract language, Move, has been designed that is “resource-oriented” programming. I personally think that “resource-oriented programming” is a change in smart contract language, and frankly, smart contract language is another big step forward. Why do you say that?
As I said before, common programming is “information” oriented programming, where information can be pasted and copied at will, and modified at any time, just like sending a tweet. When programming, as long as there is a reference to a certain “information”, it can be copied or modified at will. This is possible in a centralized scenario where many details are not exposed. But in the blockchain era, facing the double pressure of DeFi and open source, many subtleties are overlooked and will be infinitely magnified. As a chestnut, simple addition and subtraction operations are likely to have major security risks, and real vulnerabilities such as, for example, fake top-ups, infinite increments, overflow vulnerabilities, and so on, are basically created in this way. This is a very big challenge for developers and business people alike.
Resource-oriented programming, on the other hand, can easily correspond to the security problems of many scenarios.
Let’s understand “resources” first. If something is given a realistic “value”, it means that it is not just available, and we understand it as a “resource”. For programming, programming for “resources” means that “resources” should not be copied and modified at will.
Let’s analyze it from a technical point of view first. Move, at the virtual machine level, ensures that “resources” can only be transferred, not copied, nor modified, nor even discarded at will. If they are forcibly copied, modified or discarded, the code will be compiled with errors and will not have a chance to run at all. In fact, Move was designed with valuable lessons learned from many historically real security breaches.
Then, let’s analyze it from a non-technical perspective. “Resources” are more like a real-life house that cannot simply be copied to build another house. If you want to build a house, you must have another “resource” of equal “value” to exchange, which is the real transaction scenario. Therefore, for finance or “value”, “resources” is a more relevant abstraction than “information”. So, we can also say that Move enhances the financial scenario through ‘resources’. To put it more plainly, Move is a smart contract language that does not affect the monetary function.
Starcoin also did a lot of research and comparison when choosing a smart contract, and even considered rebuilding a wheel. There are many other advantages of Move, such as formal verification, which we won’t go into here, but you can learn about it through the Starcoin community or follow the Move hackathon launched by Starcoin.
How can Starcoin public chain develop ecological applications?
This is a big question, so I will talk about it from the perspective of public chain infrastructure development.
We talked about Starcoin’s vision earlier, from “value precipitation” to “value empowerment”, then “value reengineering” through DeFi, and finally “connecting everyone” through the second layer. To some extent, this is the cycle of “value”, and Starcoin’s ecological development also follows this process to a certain extent.
Up to now, Starcoin has already achieved “value precipitation” and “value empowerment” to a large extent, such as Starcoin public chain, Stdlib, browser plug-in wallet StarMask, Starcoin block browser, Starcoin voting Dapp and so on, which have all been online and running stably for some time.
So, Starcoin is focusing on the stage of “value empowerment” to “value reinvention”. At this stage, there are already many open source communities involved. Here is a brief introduction of some of the major ecological applications that are currently being promoted.
●Cross-chain bridge: including cross other public chains and exchanges, the initial version has completed development and is being put online and further improved in phases.
●Oracle Prophecy Machine: Starcoin has developed a complete Oracle standard protocol and has implemented an Oracle according to the protocol to submit off-chain data to the chain, which will be deployed to the main network soon.
●NFT: Move has an inherent advantage in NFT, Starcoin has developed a mature NFT standard protocol and is already docking the corresponding NFT platform and will soon meet with you, StarMask will also soon support NFT demonstration.
●Swap: Swap is a powerful tool to provide liquidity, Starcoin ecology is also developing Swap and already has good results, is preparing for the launch.
●Lending: Lending is also a common DeFi scenario, and the Starcoin eco-application has basically landed and is being further tested and optimized.
●IDO platform: IDO is also a very important platform for a complete ecology, and Starcoin ecology has also accessed an IDO platform, which will soon meet with you.
There are many other applications that are being launched rapidly, both newly developed and accessed by well-known platforms, all of which are designed to achieve “value reengineering”, so we welcome you to continue to pay attention to the developments of Starcoin, and welcome you to add bricks to the Starcoin ecology.