以太坊 简介
该手册仅供技术学习,挖矿以及虚拟货币交易均为违法行为!!!
什么是区块链?
对区块链最好的描述是将其描述为一个公共数据库,它由网络中的许多计算机更新和共享。
"区块"指的是数据和状态是按顺序批量或"区块"存储的。 如果你向别人发送 ETH
,需要将交易数据添加到一个区块中才算成功。
"链"指的是每个区块加密引用其父块。 换句话说,区块被链接在一起。 在不改变所有后续区块的情况下,区块内数据是无法改变,但改变后续区块需要整个网络的共识。
网络中的每台计算机都必须就每个新区块和链达成一致。 这些计算机被称为“节点”。 节点保证所有与区块链交互的人都有相同的数据。 要完成此分布式协议,区块链需要一个共识机制。
与比特币一样,以太坊目前使用工作量证明 (PoW
) 作为共识机制。 这意味着,任何人想要在链上添加新的区块,都必须解决一个困难的难题,该难题需要大量的算力来解决。 解决了这个难题,就 "证明"你已经花费了算力资源。 这种操作被称为挖矿。 挖矿通常充满了粗暴的尝试和错误,但是成功添加区块会得到 ETH
奖励。
新的区块会被广播到网络中的节点,经过检查和验证,同步更新状态。
综上所述,当你向别人发送 ETH
时,这笔交易必须被打包并包含在一个新的区块中。 然后将更新后的状态与整个网络共享。
以太坊简介
在以太坊网络中,有一台规范化计算机(称为以太坊虚拟机,或 EVM
),其状态得到以太坊网络中所有人的一致同意。 每个参与以太坊网络的人(每个以太坊节点)都会保存一份这台计算机的状态。 此外,任何参与者都可以广播请求这台计算机进行任意计算。 每当广播这样的请求网络时,网络上的其他参与者就会验证、确认并进行(“执行”)计算。 这个命令会导致 EVM
的状态变化,并且在整个网络中传播。
计算请求被称为交易请求;所有交易的记录以及 EVM
的当前状态都存储在区块链中,而区块链又由所有节点存储并达成一致。
加密机制确保了一旦交易被验证为有效并添加到区块链中后,之后就不会被篡改。 同样的机制还确保所有交易都以适当的“权限”签名和执行(除了 Alice 本人,任何人都不能从 Alice 的账户发送数字资产)。
什么是以太币(ETHER)?
以太币 (ETH
) 是以太坊上的的原生加密货币。 为什么要有以太币的存在?目的是为了允许算力市场的存在。 这种市场为参与者提供了一种经济激励,以验证并执行交易请求,为网络提供计算资源。
任何广播交易请求的参与者也必须向网络提供一定数量的以太币作为奖励。 这笔奖金将颁发给最终验证交易、执行交易并将其提交到区块链,并在网络中广播的任何人。
支付的 ETH
数量对应于进行计算所需的时间。 这类奖励也可以防止恶意参与者通过请求执行无限循环或资源密集型脚本来故意堵塞网络,因为这些参与者将为自己的计算时间付费。
什么是智能合约?
实际上,参与者不会每当在 EVM
上请求计算时都编写新代码。 而是应用程序开发者将程序(可重复使用的代码片段)上传到 EVM
存储中,然后用户通过不同的参数请求执行这些代码片段。 我们将这些上传至网络并由网络执行的程序称为智能合约。
简单来说,你可以把智能合约想象成一种自动售货机:通过特定参数调用脚本后,如果满足某些特定条件,就会执行一些操作或计算。 例如,如果调用者将以太币发送给特定的接收者,通过简单的卖方智能合约就可以创建和分配数字资产所有权。
任何开发者都可以创建智能合约并在网络上公开,并使用区块链作为其数据层,向网络支付费用。 然后,任何用户都可以调用智能合约来执行其代码,并再次向网络支付费用。
因此,通过智能合约,开发者可以任意构建和部署面向用户的复杂应用程序和服务,例如市场、金融工具、游戏等。
术语
Blockchain 区块链
所有已在网络历史上提交给以太坊网络的区块的序列。 如此命名,是因为每个区块都包含对前一个区块的引用,这有助于我们在所有区块间(同时在精确的历史记录)上保持顺序。
ETH 以太币
以太坊的原生加密货币。 用户向其他用户支付以太币,使自己的代码执行请求得以满足。
EVM 以太坊虚拟机
以太坊虚拟机是一个全局虚拟计算机,以太坊网络每个参与者都会存储并同意其状态。 任何参与者都可以请求执行 EVM
上的任意代码;代码执行会改变 EVM
的状态。
Nodes 节点
存储 EVM
状态的实体机器。 节点间相互通讯传播关于 EVM
状态变化和新状态更改的信息。 任何用户还可以通过广播来自节点的代码执行请求来请求代码执行。 以太坊网络本身就是所有以太坊节点及其通信的集合。
帐户
存储以太币之处。 用户可以初始化帐户,将以太币存入帐户,并将以太币转给其他用户。 帐户和帐户余额储存在 EVM
中的一个大表格中,是 EVM
总体状态的一部分。
交易
“交易请求”是在 EVM
上执行代码请求的正式术语。“交易”是指已完成的交易请求和相关的 EVM
状态变化。 任何用户都可以从节点向网络广播交易请求。 为了使交易请求影响 EVM
的一致状态,就必须由其他节点对其进行验证、执行和“提交到网络”。 执行任何代码都会导致 EVM
的状态更改;一旦提交后,该状态更改将广播到网络中的所有节点。 以下为一些交易示例:
- 从我的帐户发送 X 个
ETH
到 Alice 的帐户。 - 将一些智能合约代码发布到
EVM
内存中。 - 使用 Y 参数执行
EVM
中 X 地址的智能合约代码。
区块
交易量巨大,因此交易分批或分区块“提交”。 区块通常包含数十至数百笔交易。
智能合约
是开发者发布在 EVM
内存中的可重用代码片段(程序)。 任何人都可以通过提出“交易请求”来请求执行智能合约代码。 因为开发人员可以通过发布智能合约将任意可执行应用程序写入 EVM
(游戏,市场,金融工具等),所以这些通常也称为 dapp
或去中心化应用。
更多建议: