首页 > 技术文章 > 以太坊 一、概述

lazyuan 2021-02-17 15:14 原文

1.区块链2.0
比特币和以太坊是两种最主要的加密货币,比特币被称为区块链1.0,以太坊被称为区块链2.0,以太坊在系统设计上,针对比特币的运行过程中出现的问题进行了改进,比如说出块时间,比特的的出块时间是十分钟,有人觉得这个出块时间太长了,影响到了响应时间,以太坊的出块时间大幅度降低到了十几秒,而且为了适应这种新的出块时间,以太坊还设计了一套基于GHOST协议的共识机制
 
2.改进点之挖矿
中本聪打造比特币的时候,设计的是使用电脑(包括家用电脑)来挖矿,主要依靠CPU去计算。但是随着比特币等数字货币的价值越来越高,挖矿成为了一个产业,竞争越来越激烈,挖矿难度也不断提升,于是就开始比拼硬件。
 
后来矿工发现,Intel、AMD的CPU虽然越来越强大,但是电脑CPU是通用处理器,综合能力强但单项计算能力并不如专用计算芯片,最简单的例子就是图形计算,在图形与3D计算方面CPU远不如GPU芯片。
 
比特币挖矿只是进行SHA256哈希值计算,功能单一,CPU虽然能计算,但是从成本、效率上考虑并不划算。所以矿机企业专门设计了用于SHA256(或其他算法)计算的ASIC芯片。
 
ASIC是Application Specific Integrated Circuit的缩写,是一种专门为某种特定用途设计的电子电路(芯片)。用于挖矿的芯片,就是矿机ASIC芯片了。因为被设计为只进行某一挖矿需要的特定算法,所以ASIC芯片的设计可以简单的多,成本也低的多。不过最重要的是,就挖矿算力来说,ASIC可以比同时代的CPU、GPU高出几万倍甚至更多。
以太坊做的另一个改进就是挖矿使用的mining puzzle,比特币的mining puzzle的是计算密集型,比拼的是计算哈希值的算力,这样造成的结果是挖矿设备的专业化,很多年以前用普通的PC去挖矿就已经是无利可图了,现在大家用的都是清一色的ASIC芯片的矿机,很多人认为这种做法和当初区块链所宣扬的去中心化的理念是不相符的,所以以太坊设计的mining puzzle对内存的要求是很高的,称之为memory hard puzzle,这样设计的目的是在一定程度上限制了ASIC芯片的使用(ASIC resistance)
 
以太坊还有一些更加革命性的改变,用权益证明(proof of stake)替代工作量证明(proof of work)
 
 
3.引入智能合约
①以太坊支持智能合约
比特币实现的是一种去中心化的货币,很多人思考,如果货币可以去中心化,还有什么可以去中心化?以太坊的出现,一个重要特性就是增加了去中心化合约(smart contract)的支持
 
②什么是智能合约
去中心化的合约是什么意思?首先我们阐明去中心化的货币是什么意思,货币本来是由政府发行的,货币的价值是建立在政府公信力的基础上,政府通过司法手段来维护货币体系的正常运行,比特币的出现,用技术手段把政府的职能取代,通过密码学技术、共识机制来维护加密货币体系的正常运行
 
去中心化的合约也是类似的意思,现实社会中,合约的有效性,也是应该通过司法手段,通过政府来维护,比如你跟别人签订一个合同,这个合同如果出现纠纷,通过打官司、通过法院判决,法院先看一下你这个合同是谁签的,有没有当事人的合法签名,当时这个合同是怎么规定的,是谁违反了合同,看看哪一方有错误,对于违约方,按照合同中的条款,应该给予什么样的处罚,这就是现实生活中的合约,通过司法手段维护合约的有效性,那么我们能不能也用技术手段,取代司法手段,这个就是以太坊智能合约的设计目的,如果合同中的内容是可以通过程序代码来实现的,把这个代码就可以放到区块链上,通过区块链的不可篡改性,来保证代码的正确运行,
 
当然。不是所有的合同的内容都可以用编程语言来实现,也不是所有的合同条款都是可以量化的,但是有些逻辑比较简单、清晰的合同是可以写成智能合约的形式的
③智能合约的作用
这种去中心化的合同,有什么好处?
 
我们现实中的合同题型已经用的很好了,为什么要搞一个去中心化的合同呢?去中心化的货币有什么好处,就比如跟法币相比,像美元、人民币都属于法币,把这些法币去中心化有什么好处?有什么应用场景?一个应用场景比如跨国转账,比如从美国转一笔账到中国,这个用法币是很麻烦的,时间很长、要办很多手续、交易的手续费也是很贵的,如果用比特币来转账就会好很多,这是比特币的一个优势,虽然说比特币每十分钟才出一个区块,在很多地方有很多不完美的地方,但真正用比特币进行跨国转账,要比法币方便很多
 
智能合约也有类似的应用场景,比如合同的签署方是来自世界各地的,没有一个统一的司法管辖权,这个时候如果要用司法手段来维护合同的有效性,就比较困难,像比如在网上搞一个众筹,众筹的参与方全世界哪都有,这些人可能彼此间根本都不认识,你打官司都不知道要到哪去打,那么这种情况下,如果通过事先写好的程序代码来保证,每个人都只能按照规则来执行,这是一种比较好的解决方法,其实就算合同的参与方都在同一个司法管辖权之下,你真正想通过司法手段来维护合同的执行,也是一个比较费时费力的过程,打官司本身要花好多时间和精力,就算你官司能打赢了,你也一定能拿到钱吗?你还需要申请冻结对方资产、申请强制执行之类的,所以最好是用技术手段,保证合同的参与方在一开始就不可能违约,而智能合约的一个好处就是,智能合约的代码一旦发布到区块链上,区块链的不可篡改性,就保证了谁也改不了代码,包括写代码的作者自己也无法修改,这样就保证了大家只能按照代码中的规则来执行

推荐阅读