NEO Blockchain And Smart Economy Goals

Tram Ho

China’s Ethereum is what people compare to the NEO Blockchain . Surely everyone will be wondering about the reason, right, today we are going together to find out if NEO is any good.

1. NEO design goals: Smart Economy

NEO uses blockchain technology and identifies digital assets with real assets. It uses smart contracts to manage assets, like other types of blockchain, the property identifier will usually be an address and confirm the asset with a private key. This can create vulnerabilities that allow anonymous people to make illegal transactions. NEO is different from that it will identify the asset with real user information which helps the asset to be transparent and this aims at NEO ‘s goal of creating a smart economy.

1.1 Digital Assets (Digital Assets)

Digital assets are a form of conversion and digitalization from real assets and are identified by electronic data on the Blockchain network. The digitalization of assets is carried out in a decentralized, reliable, easy-to-follow and transparent manner in the management process.

In Digital Assets are divided into 2 categories:

  • Global assets : according to NEO’s white paper, it’s an asset that can be recorded in system space and can be verified by any smart contract or client.
  • Contract assets : are assets stored in the smart contract’s private storage and want to interact with it, users need to authenticate as the owner of that smart contract.

A little popular definition is that Neo Blockchain will help define and convert “a bicycle” -> 1 NEO Coin. To do so, the registrant, the user will have to perform identification through the NEO system.

After identifying assets 1 NEO = 1 bicycle, the NEO on Blockchain will represent 1 bike. That means whoever owns that NEO owns that bike.

Seeing as simple as that but developing and turning it into reality is another story. It seems that this road block is very long and difficult.

1.2 Digital Identity

Digital identification is the identification of an individual, an individual, an organization or a device that becomes a data in digital form, stored and distributed widely on Blockchain technology. Digital identifiable assets on NEO will be verified and protected by law.

To make it easier to understand, when you go to work at the company, you officially go to work and you will be led by a staff to get fingerprints on the timekeeper. That’s how you sign up with your company and password that is exactly the fingerprint to. So if you just get your fingerprints every morning, the company will confirm you are at work. That is referred to collectively as IDENTIFICATION or IDENTIFICATION.

In the same way, the identification technique here is just that you will register with the Blockchain and that data will be distributed everywhere on the Blockchain and used for the purpose of identifying you, of course the password only you have.

A bit more imagination if you already have an identity, then when you have a Blockchain, that place you can be identified, and then you will be monitored by Blockchain. This technique is suitable for deploying to the police, preventing crime quickly.

2. Deployment technology

2.1 Smart Contract

The smart contract was first proposed by cryptographer Nick Szabo in 1994, just 5 years after the World Wide Web was created. Blockchain technology provides us with a highly reliable, decentralized, anti-fraud system in which smart contracts are very useful. NEO has its own smart contract: NeoContract

Developers do not need to learn new programming languages ​​but can use C #, Java, Python, … in their familiar IDE environment (Visual Studio, Eclipse, etc.) to develop smartcontract, fix bugs and compile . NEO uses a very light and versatile NeoVM, its advantages are reliability, synchronization and high scalability. This allows millions of developers around the world to quickly start developing smart contracts

  • Verification Contract

    Unlike Bitcoin’s public-key account system, NEO’s account system uses a contract account system. Each NEO account will correspond to a smart contract and the verification contract hash code will be the account address.

  • Application Contract

    The Application Contract will be activated by a special contract, which can access and modify the global state of the system and the private state of a contract during the time it runs. For example, you can create a global digital asset in a contract, vote, save data and even automatically create a new contract while the contract is running.

  • Function Contract

    The function contract is used to provide some public or commonly used functions, which can be called from other contracts. As such, smart contract code can be reused, and the developers’ job now is to develop more complex logic. Each function contract when deploying can choose to have a private storage area that can read or write to data in the future contract.

  • programming language

    Developers can use most of the good programming languages ​​to develop smart contracts such as C #, VB.Net , F, Java, Kotlin, C, C ++, GO, Python, JavaScript. This helps developers not need to learn new languages ​​but can always code in languages ​​they are familiar with. This helps develop smart contracts quickly

  • Fee

    Deploying smart contracts on the NEO network requires a fee, currently ranging from 100 to 1000GAS depending on the capacity of the contract. This fee is collected by the system and is recorded as an increase of the system. Future fees will be adjusted according to the actual operating costs in the system. Smart contracts deployed on blockchain can be used repeatedly, until the contract is destroyed by the developer.

    NEO provides a reliable execution environment for smart contracts, and contract implementation requires the consumption of computer resources for each node, so users must pay to implement smart contracts. Fees are determined by the computing resources consumed with each performance and the unit price is also in GAS. If the smart contract implementation fails due to lack of GAS, the cost of consumption will not be returned and this prevents malicious attacks on the consumption of network energy.

    For most contracts, they can be done for free, as long as the implementation cost remains below 10 GAS, thus significantly reducing costs for users.

  • Cross-chain Interoperability

    NeoContract provides support for the implementation of cross-chain interoperability, ensures consistency in cross-chain asset exchange, cross-chain distribution transactions, and implementation of smart contracts on different blockchains.

  • Oracle Machines

    In blockchain, oracle machines open the door to the outside world for smart contracts, enabling smart contracts to use information in the real world as a condition for contract performance.

    NeoContract does not provide the ability to directly access external data, such as accessing resources on the Internet, as this will result in indeterminate behavior, resulting in inconsistencies between nodes in real time. show contract. Deploying Oracle Machines in NeoContract requires external data to be sent to the blockchain by a trusted third party, integrating these feeds as part of the blockchain ledger, thus eliminating indeterminacy. .

  • Ethereum DAPP

    In theory, all DAPPs on Ethereum can be easily paired on NeoContract platform, in the form of a NEO application.

2.2 NeoVM

NeoVM is a lightweight virtual machine to enforce NEO smart contracts. It is at the core of NEO, executing code and ensuring consistency among nodes in a distributed network, providing strong support for decentralized applications.

With the help of NeoCompiler, the source code written in Java, C # or other popular languages ​​can be compiled into a NeoVM script, thus achieving cross-platform. In addition, it reduces access time to allow developers to participate in application development in the NEO ecosystem without learning new development languages.

Infrastructure

  • ExecutionEngine : is the core of NeoVM, mainly responsible for downloading scripts and executing corresponding instructions, such as flow control, stack operation, bit operation, arithmetic operation, logical operation, cryptography, etc. Can interact with external data by interoperable service.
  • Stack : NeoVM has four types of stacks: InvocationStack, EvaluationStack, AltStack and ResultStack
    • InvocationStack is used to store all contexts execution that NEO will execute contexts to be numbered from 0 at the top of the stack and N being the bottom of the stack.
    • EvaluationStack stores the data used by the instruction during execution. Each execution context has its own EvaluationStack.
    • AltStack is used to store temporary data used by instructions during execution. Each execution context has its own AltStack.
    • ResultStack is used to store execution results after all scripts are executed.
  • Interoperation Service Layer : is the bridge between the VM and external data. By calling interoperation interfaces, NeoVM can access block information, transaction information, contract information, asset information and other data needed to implement smart contracts.
Execution Process
  1. Compile the smart contract source code into unified bytecode files by the corresponding compilers.
  2. NeoVM’s Execution engine loads the bytecode file and then constructs bytecodes along with the relevant parameters in the file as the execution context and pushes it into the invocation stack.
  3. Each execution engine receives a instruction from the current contexts and then performs the corresponding operations according to the instruction. Data generated during execution will be stored in the EvaluationStack and AltStack of the current context.
  4. After all scripts are executed, the result will be stored in the result stack

2.3 Consensus mechanism

The Byzantine Fault Tolerance mechanism is a universal solution for distributed systems. NEO has proposed to use the dBFT consensus algorithm (delegated Byzantine Fault Tolerance) based on the PBFT algorithm (Practical Byzantine Fault Tolerance). The dBFT algorithm that determines the validator is set according to real-time blockchain voting, which greatly enhances the efficiency of the algorithm and saves transaction confirmation time. dBFT2.0 is an upgraded version that was released in March 2019

The algorithm will ensure safety if the number of bad nodes in the consensus is not greater
⌊ (N − 1) / 3 ⌋ (where N = | R | is the number of nodes involved in consensus)

All consensus nodes are required to maintain a status table to record the current consensus status. The data set used for end-to-end consensus is called View. If the consensus cannot be reached in the current View, then a new View needs to be changed. We define each View by a number V

For each consensus round, one node will be elected as the speaker while the other nodes will be a delegate. Speaker p will be determined by the following algorithm: According to the hypothesis, the current block height is h , then ? = (ℎ – ?) ??? N , the range of p values ​​will be 0 ≤ ? <N.

In order to understand the details of this consensus mechanism, it is difficult to say a line or two, so I wrote a separate article about this mechanism: NEO’s Delegated Byzantine Fault Tolerance Mechanism

3. NEO management model

NEO has two types of tokens: NEO and NeoGas

  • NEO is the total assets of 100 million tokens
  • GAS is the fuel. The minimum unit of GAS is 0.00000001.
  • 100 million GAS, equivalent to 100 million NEO, will be generated through the decay algorithm in about 22 years to solve NEO holdings. If NEO is moved to a new address, the generated GAS will then be logged with the new address. The NEO network will set a threshold by voting to exempt GAS for certain transfers and smart contract operations to enhance the user experience. When a large number of spam transactions occur, NeoID can be used to prioritize transactions and smart contracts with qualified identities. Transactions and smart contracts do not have complete credentials if you want to be prioritized to pay GAS.

Distribution Mechanism

NEO’s 100 million tokens are divided into two parts. The first part is 50 million tokens distributed proportionally to NEO supporters during the crowdfunding process. This section has been distributed.

The second part is the 50 million NEO managed by the NEO Council to support NEO’s long-term development, operation and maintenance of the ecosystem.

  • 10 million tokens (10% total) will be used to promote NEO developers and NEO Council members
  • 10 million tokens (10% total) will be used to motivate developers in the NEO ecosystem
  • 15 million tokens (15% total) will be used to cross-invest in other blockchain projects, owned by NEO Council and used only for NEO projects
  • 15 million (total 15%) will be retained as backup

Summary

This article is my understanding after understanding the docs of the NEO guy. Surely people will not be able to understand the details about it but hope it can give everyone an overview of the NEO blockchain network. I will try to write an article about NEO development and development soon so that everyone can understand this guy better and if anyone interested can participate in its growing ecosystem.

Source : https://docs.neo.org/docs/en-us/index.html

Share the news now

Source : Viblo