什么是区块链?
对区块链最好的描述是将其描述为一个公共数据库,它由网络中的许多计算机更新和共享。
“区块”指的是数据和状态是按顺序批量或”区块”存储的。
如果你向别人发送 ETH,需要将交易数据添加到一个区块中才算成功。
“链”指的是每个区块加密引用其父块。
换句话说,区块被链接在一起。
在不改变所有后续区块的情况下,区块内数据是无法改变,但改变后续区块需要整个网络的共识。
网络中的每台计算机都必须就每个新区块和链达成一致。
这些计算机被称为“节点”。
节点保证所有与区块链交互的人都有相同的数据。
要完成此分布式协议,区块链需要一个共识机制。
以太坊采用权益证明共识机制。
任何想在链上添加新区块的人都需要往存款合约里至少质押 32 个以太币并运行验证者软件。
然后,他们会被随机选择去提议区块,其他验证者检查区块并将其添加入区块链。
在这种模型中,通常只有一条链,但由于网络延迟和不诚实的行为,可能导致多个区块存在于链头部附近的同一位置。
为解决此问题,一种分叉选择算法会选择一组规范区块。
选择的区块是构成权重可能最大的链的区块,“权重”是指认可区块的验证者数量(并以验证者质押的以太币加权)。
还有一种奖罚制度,大力鼓励参与者尽可能诚实并在线。
如果想查看区块链如何哈希数据以及上一个区块如何引用所有过去的区块,请务必查看 Anders Brownworth 的本次演示并观看以下随附视频。
以太坊简介
以太坊是一条区块链,其中嵌入了计算机。
它是以去中心化、无需许可、抗审查的方式构建应用程序和组织的基础。
在以太坊宇宙中,有一台规范化计算机(称为以太坊虚拟机,或 EVM),其状态得到以太坊网络中所有人的一致同意。
每个参与以太坊网络的人(每个以太坊节点)都会保存一份该计算机的状态。
此外,任何参与者都可以广播请求这台计算机进行任意计算。
每当广播这样的请求时,网络上的其他参与者就会检查、验证并进行(“执行”)该计算。
该执行会导致以太坊虚拟机的状态变化,并且在整个网络中传播。
计算请求被称为交易请求;所有交易的记录以及以太坊虚拟机的当前状态存储在区块链中,而区块链又由所有节点存储并达成一致。
加密机制确保一旦交易被验证为有效并添加到区块链中后,之后就无法被篡改。
同样的机制还确保所有交易都以适当的“权限”签名和执行(除了 Alice 本人,任何人都不能从 Alice 的帐户发送数字资产)。
什么是以太币 (ETH)?
以太币 (ETH) 是以太坊上的原生加密货币。
以太币的目的是允许计算市场化。
这种市场为参与者提供了一种经济激励,以验证并执行交易请求,为网络提供计算资源。
任何广播交易请求的参与者还必须向网络提供一定数量的以太币作为奖金。
网络将把这种奖金奖励给最终验证交易、执行交易、将其提交到区块链并广播到网络的任何人。
支付的以太币数量对应于进行计算所需的时间。
这类奖励也可以防止恶意参与者通过请求执行无穷计算或资源密集型脚本来故意堵塞网络,因为这些参与者必须为自己的计算时间付费。
以太币还用于通过以下三种主要方式为网络提供加密经济安全性:
1) 作为一种奖励方式,奖励提议区块或指出其他验证者不诚实行为的验证者;
2) 由验证者抵押,作为遏制不诚实行为的抵押品 — 如果验证者试图行为不端,它们的以太币可能会被销毁;
3) 用于对新提议的区块的“投票”进行加权,并影响共识机制的分叉选择部分。
什么是智能合约?
实际上,参与者不会每次在以太坊虚拟机上请求计算时都编写新代码。 相反,应用程序开发者将程序(可重用的代码片段)上传到以太坊虚拟机状态,用户发出请求以使用不同参数执行这些代码片段。 我们将这些上传至网络并由网络执行的程序称为智能合约。
简单来说,你可以把智能合约想象成一种自动售货机:通过特定参数调用脚本后,如果满足某些特定条件,就会执行一些操作或计算。 例如,如果调用者将以太币发送给特定的接收者,简单的卖方智能合约就可以创建和分配数字资产所有权。
任何开发者都可以创建智能合约,并使用区块链作为其数据层,将其公开给网络,但要向网络支付以太币。 然后,任何用户都可以调用智能合约来执行其代码,并再次向网络支付费用。
因此,通过智能合约,开发者可以任意构建和部署面向用户的复杂应用程序和服务,例如市场、金融工具、游戏等。
参考资料
https://ethereum.org/zh/developers/docs/
https://ethereum.org/zh/developers/docs/intro-to-ethereum/