Show / Hide Table of Contents

术语

区块

区块是区块链上的数据块,包含一批同时得到确认和存储的交易。区块与区块之间根据区块结构中包含的时间戳和上一个块的加密哈希等字段顺序相连,形成链表。

钱包

钱包的核心功能是加密公钥 / 私钥对,用于对区块链网络上出现的数据库交易进行签名和验证。

账户(地址)

相当于银行账户或银行卡号,用于交易时接收资产。地址是脚本哈希通过一些运算生成的,可以跟脚本哈希互相转换。在 Neo Legacy 中,地址以 A 开头,在 Neo N3 中,地址以 N 开头。

私钥/公钥

私钥是一个 256 位的随机数,由用户保管且不对外公开,是用户账户使用权以及账户内资产所有权的证明。 每一个私钥都有一个与之相匹配的公钥。

交易

Neo 交易是一个带有网络操作指令的签名数据包,例如,将资产转移到另一个地址。区块链账本中的每个 Neo 区块都包含有一个或多个交易,使得每个区块可以对交易进行批处理。

脚本

脚本就是一段代码,由操作码和操作数组成。每个账户都是一个合约,拥有脚本。标准账户的脚本由公钥和验证签名的 OpCode 组成,格式如下

PUSHDATA1 03ac765294075da6f7927c96bfe3d3f64ae3680c5eb50f82f55170a9f1bea59dad
SYSCALL Neo.Crypto.VerifyWithECDsaSecp256r1

脚本哈希

脚本哈希是智能合约的脚本通过 RIPEMD-160 算法生成的哈希。脚本哈希是合约的唯一标识,每段脚本都有唯一的脚本哈希,合约中任何脚本的修改都会导致脚本哈希的不同。脚本哈希长度为 20 字节(160 位)。脚本哈希由脚本单向生成,不能反推出脚本。脚本哈希和地址可以互相转换。

Opcode

操作码,与汇编语言中的指令类似。全部 OpCode 请参考 OpCode 源码

加密私钥

加密私钥是指将私钥通过钱包密码进行加密,比明文私钥更安全。比如可以把加密私钥写在纸上,把密码记在脑子里。

智能合约

从区块链的角度来看,智能合约是一组数字化的承诺,包括关于合约执行者履行这些承诺时达成的协议。

NEP-17

NEP17 协议是 Neo 补充协议中的第17号协议。其目的是为 Neo 建立标准的 token 化智能合约通用交互机制。NEP17资产是在合约存储区内记账,通过对存储区内不同账户 hash 所记录余额数值的变化,完成交易。

系统调用(SysCall)

系统调用是一种特殊的操作码。通过 SycCall 可以调用互操作服务层接口。 SycCall 打通了 NeoVM 与外部世界的通道。通过调用互操作服务层接口, NeoVM 可以访问智能合约执行时所需要的区块、交易、合约、资产信息等数据。请参考 Neo 智能合约模块 中里面以 ApplicationEngine. 开头的文件,如 ApplicationEngine.Contract.csApplicationEngine.Blockchain.cs

动态调用

动态调用是一种特殊的系统调用,是指在合约中调用另一个合约。其写法为 Contract.Call(scriptHash, method, params) 。详情请参见 调用合约

存储区

每个被部署到 Neo 区块链上的智能合约程序,都拥有一个私有存储区用于存放应用程序的数据。当创建一个智能合约或者交易使用这个合约时,合约的代码需要读写它的存储空间。每个合约都可以声明一块存储区,声名方式为在合约的类上添加一段自定义特性。详情请参见 存储区操作

NEF

NEF 全称 Neo Executable Format(Neo 可执行格式)。

智能合约编译器会将源码编译,最终生成 NEF 文件和 Manifest 文件。