注册
关闭
区块链大帝

区块链大帝

发布于 2020-01-13 阅读数 3105

2020,一起以太坊(一):与比特币的区别和应用

2020年的第一个系列,决定针对以太坊整理一些资料与个人理解,和大家分享下,偏技术和实操,不喜勿喷。

在讲以太坊之前,首先得理解区块链是什么,解决什么问题。

区块链是个记账体系或者说账本体系,解决的是点对点网络价值传输的问题,高大上一点可以称之为价值互联网。

与信息的复制粘帖不同,价值的转移涉及所有权的变更,比如我资产转给你,意味着从我的账户里扣除资产,而在你的账户里增加资产,也因此,我们需要一份账本记录这些资产的变更,而这个账本要安全、稳定可靠,区块链就是融合了密码学、计算机网络、共识算法等一系列技术知识点完成这套记账体系的综合统称。

而比特币Bitcoin是区块链技术的第一个应用,从数据结构上来说,在比特币系统中,每个交易被打包成一个个区块,在整个系统的运行中,特定时间内,每次都只能添加一个区块,并且每个区块包含了用于校验有效性的上一个区块的散列即哈希值,整个形态会成为类似链条的机构,所以叫区块链。整个架构师去中心化的,每个节点都可以在本地存储完整的账本,所以可以很博弈地、有效地防止数据被篡改以及追溯历史,具有很强的鲁棒性。

2020,一起以太坊(一):与比特币的区别和应用

 

而维持这统一的特性,需要特殊的算法来支撑,即共识机制,比特币采用的是PoW(工作量证明),特点时间内通过所有节点共同计算,先出结果先获胜原则俗称挖矿,选择有且仅有一个节点获得记账权,而获得记账权的节点也可以获得记账奖励,即比特币网络中的Token——BTC,其他节点对记账结果进行验证,通过后接受区块,同步记录。

以太坊是什么?

比特币出现以后,很多类似的项目催生,但基本都是改了一些比特币的代码,山寨了另一个网络体系,没有实质性的改变,就是一张又一张的类比特币网络。那用计算机的思想思考,能不能设计一种通用系统?底层架构一致,每个项目只要编写应用层数据来丰富系统,但很明显比特币是不具有这种扩展性的,所以19岁的Vitalik提出了以太坊的概念。

以太坊是一种能够被重编程用以实现复杂计算功能的区块链网络,即在比特币网络的基础上加入了可编程性。

以太坊是站在比特币肩膀上提出的项目,以太坊1.0采用的是和比特币一样的POW机制,即工作量证明共识。不同的是,以太坊的出块速度更快,具有更大的系统吞吐量和更小的交易确认间隔;以太坊支持智能合约,用户可以自己定义数字资产和流通的逻辑。

用计算机语言来说,在以太坊网络上发送的交易不仅仅可以是转账金额,还可以是调用一段代码,代码由用户定义。所以,以太坊的交易逻辑不再是单一的转账,而可能是任意的函数调用。那在以太坊账本里记录的不仅仅包括账户的余额,还有就是函数调用后变量的新状态,因此要设计一个不同的数据结构。

那怎么支持可编程呢?以太坊提出了以太坊虚拟机EVM的概念,每个节点都运行,它是一个图灵完备的虚拟机,用以发布、调用智能合约。

虚拟机在计算机世界里并不陌生,是指通过软件模拟的、具备完整硬件系统功能并运行在隔离环境下的完整计算机系统;比如虚拟化物理机 VMware、Java 虚拟机等。而以太坊虚拟机只是建立在以太坊区块链上的代码运行环境,其主要作用是处理以太坊系统内的智能合约。简单理解,以太坊虚拟机是一个完全独立的沙盒,合约代码可对外完全隔离并在 EVM 内部运行。由于 EVM 分散储存在每个节点的计算机上,所以希望创建智能合约的公司可使用类似 JavaScript 和 Python 等编程语言创建运行于 EVM 的应用程序;同时以太坊虚拟机又能与主网的其余部分隔离,运行时不影响主区块链的操作。出于这个原因,以太坊有时被形容为“世界电脑”。

为了减少资源耗费及保证系统性能,以太坊虚拟机并没有采用模拟完整计算机的模式,而是使用更为轻量级的虚拟机构架。其开发者团队表示,EVM 设计的目标是构建具有简单性、确定性、容易优化、节省空间、确保安全等属性且专用于区块链的系统。此外,2017 年召开的 Devcon3 会议上,以太坊开发者还推出了基于以太坊电子分布式代码合约的高级程序语言 Solidity,希望借此进一步扩大该技术的应用范围。

区块链网络有了、虚拟机有了,那就差智能合约了,所谓智能合约,就是一段在EVM上的可执行代码,熟悉面向对象的童鞋完全可以将智能合约实例理解为一个对象。用户编写一个智能合约类似于编写一个类,其中可以定义变量和函数。当用户将智能合约发布到以太坊网络中,相当于类生成对象,合约发布之后生成一个合约地址,相当于该合约对象的指针,当用户要调用这个智能合约,可以直接给这个合约地址发送交易。无论是发布还是调用智能合约,这些信息都被附在交易中,以交易的形式发布到网络中,以太坊网络中节点接收到这些交易后,EVM执行合约代码,最后通过共识机制,合约的内容和状态实现全网一致。

  • 0
区块链大帝
区块链大帝

0 条评论