felix-cao / Blog

A little progress a day makes you a big success!
31 stars 4 forks source link

Solidity 入门基础知识 #87

Open felix-cao opened 5 years ago

felix-cao commented 5 years ago

以太坊

以太坊(英文Ethereum)是一个开源的有智能合约(Smart contract)功能的公共区块链平台,通过其专用加密货币以太币(Ether)提供去中心化的虚拟机(“以太虚拟机” Ethereum Virtual Machine)来处理点对点合约。

智能合约(Smart contract)

是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于1995年由Nick Szabo首次提出。 智能合约的目的是提供优于传统合约的安全方法,并减少与合约相关的其他交易成本。

以太坊虚拟机

Ethereum Virtual Machine, 是建立在以太坊区块链上的代码运行环境,其主要作用是处理以太坊系统内的智能合约。

简单来说,以太坊虚拟机是一个完全独立的沙盒,合约代码可对外完全隔离并在 EVM 内部运行。由于 EVM 分散储存在每个节点的计算机上,所以希望创建智能合约的公司可使用类似 JavaScript 和 Python 等编程语言创建运行于 EVM 的应用程序;同时以太坊虚拟机又能与主网的其余部分隔离,运行时不影响主区块链的操作。出于这个原因,以太坊有时被形容为“世界电脑”。

账户

以太坊中有两类账户(它们共用同一个地址空间): 外部账户 由公钥-私钥对(也就是人)控制; 合约账户 由和账户一起存储的代码控制.

外部账户的地址是由公钥决定的,而合约账户的地址是在创建该合约时确定的(这个地址通过合约创建者的地址和从该地址发出过的交易数量计算得到的,也就是所谓的“nonce”)

无论帐户是否存储代码,这两类账户对 EVM 来说是一样的。

每个账户都有一个键值对形式的持久化存储。其中 key 和 value 的长度都是256位,我们称之为 存储 。

此外,每个账户有一个以太币余额( balance )(单位是“Wei”),余额会因为发送包含以太币的交易而改变。

Reference