正本清源:彻底弄懂区块链和智能合约

原创
1160 天前
12656

一文弄懂区块链和以太坊智能合约的由来和运行原理。

如果提到区块链和以太坊智能合约,相信大家都会很开心的表示我听说过!但是你真的了解它的由来和运行原理吗?今天小编就来为大家解答。

区块链、比特币、以太坊、智能合约,这四者的关系是:

区块链公认诞生于比特币白皮发布之后,即区块链技术中的大多数理念,都是由比特币而来。

所以说比特币技术是区块链技术的开端,而设计这一令人惊叹的开发者中本聪的真实身份至今仍是个谜。

在区块链技术发展的早期阶段,区块链技术中仅有少数的几个币种同时其属性基本上只有一个—虚拟货币。这极大的限制了区块链技术的发展。

而以太坊的出现带来了智能合约,自从有了智能合约之后,人们有了在区块链上进行创造的工具,可以开发自己Dapp,开发游戏,发展DeFi等等。

因此以太坊是区块链技术进一步发展的产物,而智能合约则是进步的工具,使得人们第一次有了抓手可以在区块链链世界中方便快捷的进行创作。

让我们再来看看区块链的运行原理。现代区块链从比特币中应运而来,所以,了解了比特币的基本原理,就可以从中窥见区块链的基本原理。

早在2008年,一位自称是Satoshi Nakamoto的人,在网络上发布了“bitcoin:a peer-to-peer electronic cash system”一文,这标志了比特的正式诞生。

比特币的设计初衷以及解决的问题是:在一个互不信任且匿名的网络环境中,通过非对称加密、哈希函数、签名等一系列手段解决人与人之间的信任问题。

现有的区块链平台中,根据接入标准的不同可以分为三大类平台:

公有链:即任何人可以无任何限制的加入这条区块链并获取其中的所有数据。

联盟链:针对某些群体进行有限开放,且加入后所有权限不同,内设专门的记账节点和普通节点等。

私有链:个人或少数群体的本地区块链。

而公有链中的代表,其中应用最为广泛的是比特币和以太坊。

我们以比特币交易的一个过程,如图所示来讲解区块链的运行原理。

比特币运行原理

当一个身处比特币网络的A发出一笔交易请求后,他会向全网进行报播,让全世界的电脑或矿机来争夺这笔交易的记账权,即形成一个新的区块,当然一个区块中往往不止有一笔交易。

那么交易是如何被打包记账并记录进新的区块中的呢?在此之前,我们首先要了解一个区块都由哪些部分组成。

如图二所示,一个区块主要由区块头和交易列表组成。

区块的组成

首先A会向全网报播这里有一个区块需要打包,此时经过特定算法(SHA256)将交易信息和数据进行重新包装的同时得出一个重要的哈希值—Merkle树根的哈希值。

关于Merkle树根哈希值,它可以用于验证交易信息和数据不被篡改,是区块中的一个重要参数。

任何两个交易信息或数据组成可以表示为一个哈希值,此时我们把这两个哈希值看成一棵树上的两个片叶子。

两片叶子连接的部分称为叶根,此时,叶根也可以表示为一个哈希值,这个哈希值显然是由两笔交易的信息和数据的哈希值决定的,而Merkle树根很形象的理解为多个交易两两组成哈希值,像树一样有很多叶子。

然而树根只有一个,即交易信息和数据的哈希值对应叶子,Merkle树根哈希值对应树的根部。

而Merkle树根的哈希值还有一个特点:任何交易信息和数据变动都会引起Merkle树根哈希值的巨变,只要有一片叶子,即一笔交易信息和数据被篡改,那么Merkle树根的哈希值一定会发生改变。

所以经过一系列的包装打包,交易信息就已经被打包成块,等待被记录在区块链的一个新块中了。

此时对矿工来说,抢夺记账权以获得第一个打包区块上链的区块奖励是对其主要的激励手段。

因为区块中的第一笔交易信息是这个地址或节点因为第一个找到随机数,系统给了它一定数量的比特币,即是你打包区块后获得的奖励,也就是我们俗称的Mining。

比特币网络是通过让所有的矿工参与计算一个随机数,如图所示,来判定到底是谁有这个记账权。

随机数的计算

即矿工需要找到一个随机数nonce让他与Merkle哈希值和其他区块必要信息组合起来进行哈希计算后,得出一个符合难度要求的哈希值。

由于SHA256算法是非线性的,只有运用穷举法,即不断的选取随机数进行计算直到计算出来的哈希值满足难度要求。

而谁先计算出来一个随机数nonce并经过其他矿工的验证,谁就拥有了记账权而可以获得区块奖励,这其中需要消耗巨大的计算能力,这也就是我们常说的工作证明。

链金研究员总结

区块链技术的简单工作原理是运用分布式账本、非对称加密、SHA256等密码学技术,对现实中存在的各种信息和交易进行包装重组。

通过POW或POS等证明方式使得矿工或者记账员将信息记录在唯一的区块链上,使得信息有了不可篡改性和拥有全网的共识机制,即全部的参与者都认为这笔交易真实可信且不可篡改。

因此区块链技术也被称为去中心化的技术革命,因为在区块链上不需要任何权威的机构或者个人,一切都是由共识或者证明决定并证实的。