Glossary
#
BlockA block in a Blockchain contains a number of transaction records. Blocks are paired up with the previous block according to the timestamp and the cryptographic hash of the previous block contained in each block header, thereby creating a chain of blocks, or a blockchain.
#
WalletA wallet is a cryptographic public/private key pair which is used to sign and authenticate database transactions that occur on the Neo network.
#
Account (Address)Similar to your bank account, a blockchain account is used to transfer or receive assets in a transaction. The address is generated by the script hash through some operations, and can be converted back to the script hash. In Neo Legacy, the address starts with A, and in Neo N3, the address starts with N.
#
Private Key/Public KeyThe private key is a 256-bit random number that is kept by users themselves, without disclosing to others. It is a proof of the user's right to use the account and ownership of assets in the account. Each private key has a public key paired with it.
#
TransactionA Neo transaction is a signed data package with an instruction for the network, for example a user indicating that he wants to transfer assets to another address. Each Neo block in the blockchain ledger contains one or more transactions, making each block a transaction batch.
#
ScriptA script is a piece of code that consists of opcodes and operands. Each account is a contract with a script. A standard account script is composed of the public key and the OpCode that verifies the signature. The format is as follows
PUSHDATA1 03ac765294075da6f7927c96bfe3d3f64ae3680c5eb50f82f55170a9f1bea59dadSYSCALL Neo.Crypto.VerifyWithECDsaSecp256r1
#
Script HashThe script hash is generated from the smart contract script with the RIPEMD-160 algorithm. Each script has a unique script hash. Any change made in the script of the contract will cause the script hash to change. The script hash length is 20 bytes (160 bits). The script hash is generated unidirectionally by the script, and cannot be reversed to the script. The script hash and address can be converted to each other.
#
OpcodeOpcodes are similar to instructions in assembly language. For all OpCode, refer to OpCode source.
#
Cryptographic private keyCryptographic private key refers to the encryption of the private key through the wallet password, which is more secure than the plaintext private key. In this way, you can write the cryptographic private key on paper and keep the password in your mind.
#
Smart ContractFrom the blockchain perspective, a smart contract is a set of promises, specified in digital form, including protocols within which the parties perform on these promises.
#
NEP-17The NEP-17 proposal outlines a token standard for the Neo blockchain that will provide systems with a generalized interaction mechanism for tokenized smart contracts.
#
SysCallThe system call is a special operation code, through which you can call the interoperable service layer interface. By calling the interoperable service layer interface, NeoVM can access data such as block, transaction , contract, and asset information that are required for running smart contracts. For more information refer to the files in Neo smart contract module starting with ApplicationEngine.
, such as ApplicationEngine.Contract.cs
, ApplicationEngine.Blockchain.cs
.
#
Dynamic CallA special system call that invokes another contract within a contract. It can be wrote as Contract.Call(scriptHash, method, params)
. For more information refer to Invoking Smart Contracts.
#
StorageEach smart contract deployed on the Neo blockchain has a private storage area for storing application data. When creating a smart contract or transaction to use this contract, the contract code needs to read and write its storage. Each contract can declare a storage area. For more information refer to Storage.
#
NEFNEF is short for Neo Executable Format. The smart contract compiler compiles the source code and eventually generate NEF files and Manifest files (see below).
Magic | 4 bytes | Magic header |
---|---|---|
Field | Length | Comment |
Compiler | 32 bytes | Compiler used |
Version | 16 bytes | Compiler version (Mayor, Minor, Build, Version) |
ScriptHash | 20 bytes | ScriptHash for the script |
Checksum | 4 bytes | Sha256 of the header (CRC) |
Script | Var bytes | Var bytes for the payload |