LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资讯 > Ethereum开发速成课程Part One

Ethereum开发速成课程Part One

2020-10-29 明明很爱你y 来源:区块链网络

下面的一系列文章

将是Ethereum生态系统的总体概述,它是如何工作的,以及你如何使用它。

Part One

在本系列文章的第一部分, 我们将介绍Ethereum的基本知识, 什么是Ethereum, 它是如何工作的, 以及Ethereum的基元和结构是什么。

什么是Ethereum????

Ethereum是一个开源的分布式账本,最初是在2013年底提出的,然后在2015年由一个叫Vitalik Buterin的加拿大人向公众发布。他原本出生在俄罗斯,然后小时候就移民到了北美。用超过150的智商和强大的技术思维,他分析了比特币区块链后,提出了Ethereum的想法,并质疑是否可以进一步将事情做得更进一步,让区块链成为图灵完备的区块链,从而能够以不可信的方式读取代码脚本和运行应用。

图灵完备--意味着计算机或机器可以解决一个数学方程,给定正确的算法以及必要的时间和内存。

Ethereum是如何工作的???

Ethereum作为一个p2p去中心化协议,网络中的所有参与者将通过互联网相互连接,以共享和检索区块链的状态。

Ethereum建立在一个名为EVM(Ethereum Virtual Machine)的虚拟机上,它允许智能合约被编译成EVM兼容的字节码并部署到区块链上执行。而EVM本身是一个256位的寄存器堆栈,它的设计是为了一次又一次地完全按照预期运行相同的代码。

一旦一段代码被部署到Ethereum区块链上,它就会以字节码的形式永远存在于那里,并且可以通过一个独特的合约地址进行访问,该地址被赋予给每一个部署到区块链上的合约。
当你向合约地址发送交易时,它将被传播到矿工网络,然后他们必须竞相执行一个数学方程式,结果在一定范围内。这就是所谓的共识机制,也就是通常所说的工作证明(PoW),一旦矿工达到所需范围内的数字,他们就可以将自己的区块添加到链上,以最终确定该区块内的所有交易。对于Ethereum区块链上发生的所有交易,都会进行同样的操作,除非因为gas费或要求错误而被还原。

节点/矿工???? ?

节点和矿工在操作方式上非常相似,除了一个因素采矿。挖矿节点会相互竞争,竞相寻找一个数字,让他们有权利向链上添加一个新的区块。在Ethereum中,有3种节点,你可以用Go-Ethereum软件(geth)或Parity软件同步,go-ethereum节点是Ethereum生态系统中最常用的,而Parity仍然是Ethereum的重要组成部分,社区非常倾向于用Go-Ethereum开发。

所有类型的节点都被认为是网络中的参与者,并将持有来自创世区块(链中的第一个区块)的区块链的完整副本或区块链的精简版本,据此,节点的状态将只持有区块链的当前状态,并在同步模式下从完整存档节点的merkle树中检索必要的数据。

要在您的机器上设置一个节点,请下载Go-Ethereum的二进制文件夹(https://geth.ethereum.org/install/)。下载完毕后,您可以开始在终端或powershell中使用以下命令开始区块链的实例。

Networks????

Ethereum中还有不同的网络,如Ropsten、Rinkeby和Kovan。Ropsten、Rinkeby和Kovan网络是用于试验和开发区块链的测试网络。Ropsten网络与主链采用相同的共识机制(Proof-of-work),但其他两个网络是Proof-of-Authority网络,这意味着只有某些节点可以开采放到链上的区块。要设置一个Ropsten,Rinkeby或Kovan节点,你将使用与主网相同的命令,尽管这次你需要用 "控制台 "来切换网络名称。

使用以下命令启动测试网络节点。

geth --testnet - for the ropsten network. ChainId - 3

geth --rinkeby - for the rinkeby network. ChainId - 4

geth --dev console - for a local developer console. ChainId - NONE

要访问kovan网络,您必须先下载Parity,然后使用。

parity --chain=kovan - for the kovan network. ChainId - 42

Ethereum的基本要素??

Ethereum拥有所有公有区块链的大部分共同基元,如公钥加密、加密哈希函数、梅克尔树和分叉。现在,你可能会觉得这些概念听起来有点技术性或可怕,但请不要害怕,因为智者在这里,引导你完成,一旦你理解了以下内容,你将顺利成为区块链的向导! 因为几乎所有的公共区块链都会使用这些基元。所以,从这里开始,在进行研究或者只是对最新的去中心化协议有一点了解的时候,事情应该不会太繁琐。

公钥密码学????

公钥密码学也被称为非对称密码学,为用户提供一个密钥对,即一个公钥和一个私钥,这些密钥来自椭圆曲线ecp256k1算法,该算法用于所有网络上运行的Ethereum地址。这些密钥对为用户提供了两个功能。

加密: 只有私钥才能解密用相应公钥加密的信息.
认证:认证。这样,公钥就能以数字签名的形式验证私钥的所有权。

公钥和私钥以十六进制的形式出现,看起来会是这样的

public key -

0x84c3492F47bF06C0F994E468C364CF52b3676d0d

private key -

83d01607d74d9b100d356d68ea2c7ac795aca429bf20f305f63d484313a1e60b

加密哈希函数????

加密哈希函数是一种哈希函数,它接受一个输入或 "信息",并返回一个固定大小的字母数字字符串。这个字符串被称为哈希值、信息摘要、数字指纹、摘要或校验和。

哈希函数有3个主要特性。

1:极易计算任何给定数据的哈希值。(便于计算转发)

2:从一个给定的哈希值计算一个字母数字文本,在计算上是非常困难的。(几乎不可能反向计算)

3:两个稍有不同的消息极不可能有相同的哈希值。(抗碰撞)

为什么要使用哈希函数?????

Ethereum使用哈希函数为区块链的用户提供匿名性,也给他们一定的隐私,让全世界都不知道那里的业务。散列函数给区块链提供了隐藏消息、身份和各种其他形式的重要信息的能力,人们可能不希望公开这些信息,散列函数还提供了一种方式来证明区块链上数据的完整性。这种情况是如何发生的,通过数字签名,加密密钥对将签署信息或数据被添加到区块链上。然后哈希函数将吐出一个哈希,其中有消息或数据和加密密钥对的公钥加密成摘要,以添加到区块链。然后当需要揭示数据或消息时,公钥/私钥的所有者就可以用他们的私钥解密文摘,给文摘被揭示的实体或个人一个真实性或所有权的证明。

Merkle树????

计算机科学和密码学中的Merkle树用于存储、处理和传输p2p网络中计算机之间的数据。
它们有助于确保从p2p网络中的其他对等体收到的数据是无损的、未被修改的,它们还可以检查以确保网络中的其他对等体没有恶意行为,没有在区块链上发送或创建虚假数据。
它们的工作原理是让每个叶子节点都标有数据块的哈希值,而每个非叶子节点都标有加密哈希值,如果其子节点的标签。哈希树允许对大型数据结构的内容进行高效安全的验证,这对Ethereum来说是很有用的,因为被添加到区块链的数据量确实有可能被黑客操纵。
但是在merkle树的情况下,如果一个哈希值发生变化,那么所有的哈希值都会发生变化,网络就会知道区块链的安全性受到了损害。

区块链分叉????

当谈到区块链时,有两种类型的分叉,硬分叉和软分叉。当发生分叉时,这意味着链数据已经通过网络上的操纵行为、黑客行为(如资金丢失或被盗)、网络节点双方决定链的不同操作方式,或者当两个区块同时被网络发现,但在不同的节点子集上传播。

对于Ethereum来说,最坏的情况或者至少是社区希望尽可能避免的情况是硬分叉,这是因为当硬分叉发生时,一个全新的链被启动,并将旧链抛在身后。当这种情况发生时,区块链的完整性就会受到影响,人们留下的链上的所有数据现在都无法在新分叉的链上访问。你可能听说过DAO的黑客攻击,导致价值7000万美元的**从合约中被盗走,这是因为一个递归调用的漏洞,开发人员没有看到,当时的黑客利用了这个漏洞。

http://hackingdistributed.com/2016/06/18/analysis-of-the-dao-exploit/

DAO黑客事件通过硬分叉解决了,被盗的ETH将返还给被盗的投资者。社区中的一些高调成员帮助从黑客账户中黑回一些被盗的ETH并带回社区。

另一方面,软分叉只有在协议中加入新的一段代码时才会发生,或者更常见的情况是,两个节点在地球的另一边挖矿,他们都创建了一个新的区块,并打出所需的范围数,将区块添加到链上。然后,新的区块将在网络中传播,并由所有连接的对等体陆续添加到链上,直到。你遇到了一个节点,你有一个节点试图添加两个来自不同矿工的相同编号的区块,发生的情况是,这两个区块都被添加到链上,但只有分布在更多的网络中的区块比其他区块将有下一个区块添加到上面。

现在你可能会想,如果有两个区块,但只有一个区块继续被挖矿,但另一个区块会怎样?

另一个区块将继续被开采,但直到网络中的采矿节点意识到链上有一个分叉,他们必须停止在最小的链上采矿。矿工们会通过他们使用的散列能力来意识到这一点,与网络中的其他节点相比。

同时,他们也将违反区块链挖矿的3条规则之一,即

1:矿工必须始终在他们最先得到的链条上采矿。

2:矿工必须总是在最长的链子上采矿。

3:矿工必须总是在一定范围内打出一个数字,然后再把下一个区块加到链子上。

Ethereum的结构????

Ethereum作为一个组织或基金会,拥有一个扁平化的层次结构,主要的指导点来自创建者Vitalik Buterin。Ethereum治理的主要目的是作为一个去中心化的自治组织或DAO运作,允许任何人提出建议(EIP's/Ethereum改进建议),为代码库做出贡献,并帮助社区项目,如Casper the friendly ghost也被称为Ethereum Proof-of-Stake(PoS)共识机制、Plasma、Sharding、State channels、Token-economics、zk-starks & snarks等。

Ethereum还创建了EEA(Ethereum Enterprise Alliance),这是一个非营利性组织,有超过150个成员和合作伙伴,其中包括区块链初创企业、财富500强企业和研究人员,如丰田研究院、J.P Morgan chase、三星SDS、ING、微软、英特尔、Consensys和万事达卡。这些公司中的一些公司可能和他们一样是企业,但有了大公司和有影响力的合作伙伴,EEA将能够成功地为世界带来去中心化的web3.0。伴随着无数新的创新机会,在一些地方和人们的生活中,这在Ethereum之前是不可能的。

这种结构也将为世界带来一种新的方式,通过链上治理和投票的概念,让世界与领导者和垄断者进行互动,据此,Ethereum基金会、EEA和整个地球的人口结构将不会像今天这样,但它将成为一个地方,世界人民将能够使用区块链对他们认为需要以迅速和勤奋的方式解决的事项或问题进行投票。

一如既往的感谢您的阅读,希望您能喜欢,请不要忘记拍手留评! ???? ????

敬请期待第二部分

—-

编译者/作者:明明很爱你y

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...