Dialogue Jolestar: Starcoin is one of the public chains with the most thorough on-chain governance implementation
More and more projects are entering the public chain track. Starcoin is a recent representative of emerging public chains in China, founded by several former senior executives from domestic internet companies, developed based on Facebook's Move language, and has recently launched its mainnet.
This time, Starcoin's Chief Technical Advisor in China, Jolestar, shared insights on the current development of the public chain track, as well as Starcoin's competitive advantages and its development language Move, in the Catcher Academy, hoping to inspire you.
**Catcher: ** Please briefly introduce the development history of Starcoin.
**Jolestar: ** Starcoin is a blockchain project designed for distributed finance with a layered architecture. The Starcoin community was established in the second half of 2018, with a team coming from internet companies and technology communities. Initially, some tech enthusiasts interested in blockchain organized a blockchain study group, regularly holding technical sharing sessions.
Later, the main members gradually left internet companies to join the blockchain industry and formed the core development team of Starcoin.
At the end of 2018, the Starcoin white paper version 1.0 was officially released. After a year of exploration, we experimented with layer two networks on the Lightning Network and Ethereum.
By the end of 2019, we successfully achieved the Stargate prototype and officially announced that Move would be used as the smart contract language, jointly developing the Move ecosystem with Libra.
On April 9, 2020, we released Starcoin v0.1 and launched the Halley test network.
On May 18, 2021, the mainnet was launched.
**Catcher: ** The competition in the public chain space is extremely fierce. What competitive advantages do you think Starcoin has by entering the public chain track at this time?
**Jolestar: ** In my view, the various public chains are not in competition with each other. Because the entire blockchain ecosystem is still quite small, and we are not competing for the existing market, but rather opening up new spaces together.
Recent developments in various public chains, especially in the DeFi sector, show that the combined throughput capacity of all current public chains is still far from meeting the demands of the DeFi market.
New chains aimed at DeFi generally have two directions: one is based on Ethereum EVM development, which can quickly accommodate the overflow traffic from Ethereum due to congestion. The advantage of this direction is full compatibility with Ethereum, low switching costs for DeFi applications, and the ability to reuse tools from the Ethereum ecosystem. The downside is that it is difficult to make significant improvements, and it will inherit existing flaws from Ethereum.
The other direction is based on new technical solutions, such as introducing new state models and programming languages. The advantage of this direction is that it allows for significant improvements at the state model and smart contract layers, while the downside is that the surrounding ecosystem needs to be rebuilt, which takes a longer time.
Both directions have their pros and cons, and we chose the second direction, which is more suitable for our team's long-term roadmap.
**Catcher: ** The smart contract programming language of Starcoin is Move. Why is there a need for a new programming language?
**Jolestar: ** This question actually consists of two parts. Why do smart contracts on the blockchain need a new programming language? And why not use existing smart contract programming languages?
First, to answer the first question, the main differences between smart contract programming languages and traditional programming languages are twofold:
Smart contracts manage the state of the program. In traditional programming languages, the state needs to be maintained by the developer writing it into a database or file. Smart contracts simplify state management and abstract an external state representation.
Smart contracts manage the scheduling of the program. In smart contracts, there is no need to consider issues like concurrent scheduling. Traditional programming languages have mechanisms like threads, coroutines, and locks to solve concurrency issues.
In other words, traditional programming languages are oriented towards the abstractions provided by the operating system, whether it be files, networks, or scheduling.
When these concepts are not considered, most existing programming language libraries are actually unusable. Reusing existing programming languages does not provide any advantages; it only adds compatibility costs.
Now, to answer the second question: why not use existing smart contract programming languages, such as Solidity?
As mentioned earlier, smart contracts manage the state of the program. However, there is currently no unified system standard for how to express external states within contracts, similar to a file system in an operating system.
If we want to modify the state model, we definitely need to change the smart contract programming language. To experiment with a new state model, we need a new programming language to express it.
**Catcher: ** What are the characteristics and advantages of the Move programming language?
**Jolestar: ** The key reason we chose Move is that its state model aligns very well with our design.
First, it splits the contract's state under accounts rather than hosting everything within the contract, clarifying the ownership of the state.
Second, based on this, it uses a linear type mechanism to track ownership, ensuring the security of assets (they cannot be implicitly discarded), while also providing a more flexible asset programming model.
The secure and flexible asset programming model can be illustrated with a previous PPT slide of mine:
The first level of asset resource abstraction treats all assets and tokens as equal; STC and other tokens have no difference in security level.
It protects resources through data abstraction rather than interfaces, without a dynamic dispatch mechanism.
It utilizes programming language features such as data visibility and ability (drop, store) to protect resources, fully leveraging the capabilities of compile-time checks in programming languages.
In the above example, Solidity's contracts operate on a bookkeeping model, where everyone's assets are recorded in the contract's ledger, while Move uses a box model, where assets are encapsulated in boxes formed by objects. However, the finer distinctions can only be truly appreciated through hands-on coding experience.
**Catcher: ** I heard that there are not many developers in China who understand the Move language. Could this negatively impact your efforts to build an application ecosystem?
**Jolestar: ** Move is a new language and does have a learning curve, so there are indeed not many developers.
However, the blockchain space is still in its early stages, and the number of smart contract developers is still a relatively small group compared to internet developers.
I believe that in the future, a large number of internet developers will enter the blockchain smart contract field. At that time, for them, all smart contract languages will be new languages with learning costs, so the difference won't be significant.
**Catcher: ** How do you view the importance of the DeFi ecosystem to public chains? How will Starcoin build its DeFi ecosystem moving forward?
**Jolestar: ** DeFi is one of the most suitable DApp types for public chains. Before Layer 2 matures, the applications that can run on Layer 1 are mainly DeFi. Our design from the beginning has been oriented towards financial scenarios, which aligns with Libra's vision.
The DeFi ecosystem requires collaboration between core developers of the chain and DApp developers. The infrastructure of public chains, including wallets, block explorers, and development tools, will be the primary focus of our core developers.
In our economic model, a significant portion is reserved for the ecosystem, which will be distributed through on-chain governance rather than solely through miners.
We believe that for public chains in the DeFi category, the DApp ecosystem is extremely important. As the upper-layer application ecosystem grows, miners can also gain more rewards.
**Catcher: ** NFTs were very popular recently and are an easily relatable concept. Does Starcoin support NFTs?
**Jolestar: ** The resource model of Move is very suitable for expressing NFTs. It is very similar to Flow's Cadence contract language, both using linear types to track ownership (Flow is a public chain specifically designed for NFTs).
Starcoin's NFT standard has not yet been released; we are currently working with community developers to develop the NFT standard on Move.
Additionally, Starcoin will support using any token as gas fees, which will lower the acceptance cost for NFT users outside the blockchain and DApps.
**Catcher: ** What value and application scenarios does the native token STC of Starcoin have within the public chain ecosystem?
**Jolestar: ** STC is the native token on Starcoin, and its main scenarios are:
Paying for transaction gas fees, similar to most public chains.
Serving as a governance token for on-chain governance, with one token equating to one vote.
It can be said that Starcoin is one of the public chains that implements on-chain governance most thoroughly. Anyone can propose improvement suggestions and execute them through community on-chain voting.
The main governance options include:
Adjusting key parameters on the chain, such as block rewards.
Upgrading the Stdlib, which contains the core consensus logic and economic model.
Applying for withdrawals from the treasury for ecosystem development.
**Catcher: ** Many people oppose on-chain governance, believing that voting governance will introduce too much political atmosphere, leading to a less pure community. How was the introduction of on-chain governance considered in Starcoin?
**Jolestar: ** In fact, whether or not there is on-chain governance, a mechanism is needed to resolve community differences.
Governance models like Bitcoin's BIP and Ethereum's EIP essentially belong to off-chain governance models. The general process involves proposing a suggestion, community discussion, core developers developing and releasing a version, miners upgrading nodes, and the code stipulating that new features will automatically activate at a certain block height.
In most cases, this governance model operates well, but once irreconcilable differences arise between developers and miners in the community regarding a certain feature, the chain and community face the risk of a hard fork, such as the DAO attack fork and the recent EIP1559.
Looking at the major disagreements faced by Bitcoin and Ethereum, we can identify two significant dilemmas in community governance:
There is no clear metric to determine which proposal has achieved a majority consensus in the community.
Off-chain negotiation agreements have no binding force on-chain.
Therefore, we attempt to implement on-chain governance in Starcoin to address these two dilemmas to some extent.
First, regardless of how the governance mechanism is designed, voting will ultimately produce a clear result, conveying a definite message to the community.
Second, on-chain governance postpones the decision-making timeline, allowing developers and miners to first fulfill their professional responsibilities, assessing the feasibility of proposals from a technical perspective, developing and upgrading nodes, and then deciding with community members whether to activate and when to activate new features.
Finally, once the on-chain vote produces a result, since the nodes have already completed the upgrades, the final voting result will be automatically executed on-chain, carrying binding force.
We propose the design principle of the governance mechanism: "Technology creates possibilities, the community decides trade-offs."
During the development and upgrade phases, developers and miners should maintain a technically neutral stance towards proposals. Once the upgrades are completed, during the voting phase, they can exercise their value judgment as community members to make decisions.
**Catcher: ** What is the future development roadmap of Starcoin? What are the recent operational focuses?
**Jolestar: ** The recent focus is preparing for a hackathon developer competition. At that time, we will organize a global developer competition together with Facebook's Move community to attract more attention to Move and develop blockchain applications based on Move.
Learn more about the Starcoin project
Starcoin Official Website: https://starcoin.org/
Github: https://github.com/starcoinorg/
Weibo/Official Account: Starcoin Blockchain
Twitter: @StarcoinSTC
Medium: Starcoin
Discord: https://discord.gg/UkfNMCpU