为什么以太坊能成为区块链2.0的代表之作?
链客,专为开发者而生,有问必答!
此文章来自区块链技术社区,未经允许拒绝转载。
区块链的学习进入到第四天,前三天学习比特币,分别从比特币的前世、货币属性和背后的区块链技术学习。
比特币是区块链的1.0版本,而以太坊正是区块链的2.0版本。从1.0走向2.0,为什么以太坊能成为2.0版本的代表?创新在哪里?与比特币相比,以太坊标志性的创新即智能合约。因此,对于以太坊的学习,先从智能合约开始。
什么是智能合约?继续寻找其来有自,它在解决什么问题。继续从比特币和区块链说起。
『正文』
在本系列1和3两篇文章,我们已经认识到:
比特币背后的区块链技术相当于分布式账簿系统,系统拥有记账总账簿,这个账簿对所有节点(所有满足规则要求的计算机)公开,所有节点拥有读写及下载拷贝的权力(即分布式计算、存储),包括第一次交易信息在内的所有交易信息都会按时间顺序(也即时间戳)被一个不落地记录在这个账簿(区块)上,账簿信息定期更新确认(分布式存储)并形成连续账簿(区块链),账簿信息的更新确认不再经过中心。
从而实现由中心向分布式的计算与存储转变,点对点的数据传输,公开透明,无法篡改,而且可追溯,陌生人在不经过任何第三方信用背书的情况下,依赖此系统建立了彼此信任关系,使得交易成为可能。
基于上述内容,可以简化理解为:区块链技术解决了由“点对点”带来的信任问题,比特币的账簿(区块链)是把所有的关于比特币的支付信息都记录了下来。
1、智能合约
从1.0到2.0,升级来自于哪里?从上面的内容来看,升级的空间在于:
应用场景的拓宽:除了支付之外,还有哪些场景存在“点对点”的可能性?账簿的内容除了交易信息外还能记录什么?
拓展下我们的想象力,当这个账簿上记录的不是交易信息,而是一组可以运行的程序和基于这个程序运行后的账户状态时,这个账簿会是什么样子?
在想像账簿记录的是运行程序是什么样子之前,先看一个词——合约。
合约:类似于我们平时的合同,约定了合同方在一定条件下的责权利体系。一旦触发条件,合同将会被执行。就像违约合同或者竞业合同一样,当你出现违约行为时,依据合同对方可以对你索赔。这是传统的合约及执行方式。
如果这个合约不是人工执行,而是可以被程序自动执行的呢?这正是我们今天所要讨论的智能合约。
程序:是当你输入符合规则的内容时,电脑依据已设定的规则进行运算,从而得到相应的输出结果。
智能合约是一个编程程序,程序内有相应的触发条件,一旦触发,合约程序会被自动执行,并且所有执行都将记录在账簿上。同时,还可以给这个程序设置个账户,类似于人的账户,合约执行完毕后会有相应的账户状态(有点类似于账户余额概念)显示。这个程序我们称之为智能合约。
众所周知的是,任何程序都需要在一个操作系统中完成,而上述的智能合约程序也不例外。以太坊正是充当操作系统的角色,用户可以在以太坊系统中运用以太坊提供的编程语言编写这个程序。
如果仅仅只是提供一个新的系统和编码程序,那以太坊还不足以称之为区块链的2.0代表。这里,更重要的是,这些程度是在这个系统中运行执行的,所谓的运行执行也就是当智能合约触发条件发生后,合约将会自动执行,更改状态状态,这个过程将会被记录下来形成区块和区块链。区块记录是由矿工(分布式节点)完成, 矿工挖矿类似于比特币系统有以太坊币的奖励。
比特币可以说是创造了一个潜在的货币,对现有的金融体系可能是一大冲击,具有极大的意义。那智能合约又能有什么作用呢?
2、智能合约的应用
我们来看两个例子:
两个人关于明天的天气打个赌。我赌明天天晴,你赌明天下雨。我们约定输家必须给赢家100美元。我们如何打这个赌,还要确保输家会履行诺言呢?我能想出以下三种不同方法:
1、互相信任
最简单的方法是互相信任。如果我们已经是老朋友了,很容易信任对方。我知道你的家庭住址而你知道我的黑历史。然而,如果我们是陌生人的话,那就难办多了。你没理由信任我,我也没理由信任你。
2、签署法定合同
另一个可行的方法是根据我们之间的赌约制定一份法定合同。我们双方会签署一份详细规定了赌约条款的合同——包括关于输家违约的规定。该合同会让我们有向赢家支付赌金的法律义务,却不具实用性。因为如果通过法律途径强迫对方履行合同,其代价高出赌金本身。
3、寻求共同朋友的帮助
我们可以找一个双方都信任的共同朋友,各交100美元在他/她那里保管。第二天,他/她会查看天气情况,将这200美元都交给赢家。这种方式简单明了,除非出现一种情况:要是这位可信的朋友卷款而逃该怎么办呢?
现在我们有三种不同的打赌方法,不过各有都缺陷。因为我们是陌生人,无法互相信任。迫使对方履行法定合同的成本太高,此举并不可行。寻求共同朋友的帮助又会引发信任问题。
以太坊的智能合约在这种情况下就可以派上用场了。智能合约就像是寻求共同朋友的帮助,不过是被编写成了代码。通过以太坊,我们可以编写一款软件,向两方各收取价值100美元的以太币。第二天打开接入天气应用的API查看天气情况,并将总价值为200美元的以太币转给赢家。
再举一个例子:
前段时间极其火爆的ICO,也就是首次公开募币就是基于以太坊的一堆智能合约。发币者设立一个账户及智能合约程序,这段程序可以实现募资的全流程。程序将自动识别募资的进行状态,在申购者发起申请后,程序依据兑换比例等已设置好的规则将发行的新币添加在申购者的账户,将申购者支付的以太币添加到发行者的账户中。并且可以记录全部的兑换信息,当ICO结束时,智能合约程序可自动销毁。
通过智能合约程序,可以实现兑换比例计算、不同币种的兑换划转等的自动化,而这是比特币系统所无法实现的。比特币系统里只能记录关于比特币的交易信息,它无法兑换不同的币种,也无法记录不同币种之间的交易信息。
相比较于固化的比特币系统,在以太坊的系统上,所有的人都可以依据自己的需求设计不同的程序,对于程序赋予不同的规则,之后一切的操作都变得自动化,而这将带来安全与高效。
三、小结
通过上述两个例子,我们能看到,以太坊或者说智能合约的好处。
比特币实现了几乎无风险的点对点支付,而以太坊则是把这一特性扩展到几乎所有的场景里。只要在场景中,“点对点”运作方式会有风险。那么就可以通过智能合约这样的程序,来实现公平且无风险的履约。
以太坊创建了一个虚拟底层操作系统,大家可以在这个虚拟操作系统上自行设立与运行多个智能合约,而这极大了提高了这个系统的适用性和灵活性。
因此,自2017年以后,以以太坊为基础的智能合约如雨后春笋般产生,而且是走向区块链技术商业运用里程碑事件。
相关文章:
(转)搭建企业内部yum仓库(centos6+centos7+epel源)
搭建企业内部yum仓库(centos6centos7epel源) 原文:https://www.cnblogs.com/nulige/p/6081192.html https://www.linuxidc.com/Linux/2017-11/148723.htm---------部署yum仓库与定制rpm包 1. 创建yum仓库目录mkdir -p /data/yum_data/cd /data/yum_data/#可以上传rp…

vs按f5没反应_《死神vs火影》中最受欢迎的游戏角色,仙鸣当之无愧上榜
hello!大家好,又到了一日一度的杨某讲游戏环节啦,赶紧系好安全带,准备上车吧。《死神vs火影》作为一款深受广大群众欢迎的街机游戏,自然而然地涌现出了一系列知名游戏角色。那么,大多数人心目中最喜欢&…
IEC61850笔记--IEC61850应用入门(二)
IEC61850标准学习和调试,测试的记录文档,主要参考了IEC61850标准文档,《IEC61850应用入门(第二版)》,开源代码libIEC61850及libIEC61850说明文档。 IEC61850标准内容参考IEC61850标准文档,以及IEC61850标准介绍文档《I…

区块链赚钱的9种方式
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 物联网火了一段时间,人工智能火了一段时间,无人驾驶火了一段时间。现在,通通被区块链的风头盖住了,都…

7、在对象内部尽量直接访问实例变量
本文概要: 1、首先给出结论是:除了几种特殊情况外,在读取实例变量的时候采用直接访问的形式,而在设置实例变量的时候通过属性来做。 2、讲解了使用getter、setter的好处。 3、列举了几种上面提到的特殊情况:有时不能使…

linux python2和python3共存_linux-Centos7安装python3并与python2共存
1.查看是否已经安装PythonCentOS 7.2 默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5。使用 python -V 命令查看一下是否安装Python然后使用命令 which python 查看一下Python可执行文件的位置可见执行文件在/usr/bin/ 目录下,切换到该目录…

9月20号作业
转载于:https://www.cnblogs.com/kangy123/p/5890515.html

区块链以太坊五大开发工具,你喜欢哪个?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 以太坊(Ethereum)是运行智能合约的最受欢迎的分布式平台之一。因为虚拟货币近年来的发展,以太坊以区块链为基础引…

sublime text 3 中改变.vue文件的颜色
1、按 CtrlShiftP 2、输入install,选择install Package 3、输入vue,选择 vue syntax hightlight 如果上述方法不起作用,可以选择在下面连接中下载文件,手动安装 如何让你的.vue在sublime text 3 中变成彩色? 转载于:https://www…

nodejs端口被占用。
I had the same issue. I ran: $ ps aux | grep node to get the process id, then: $ sudo kill -9 followed by the process id to kill the process.转载于:https://www.cnblogs.com/facial/p/5893138.html

戴尔电脑管家_2020年笔记本电脑推荐指南:笔记本电脑应该怎么选?什么牌子的笔记本电脑更值得入手?...
笔记本电脑已经成为家家户户必不可少的移动装置了,作为一名互联网行业从业者,无论是居家还是工作也得有一台性价比较高的笔记本,才能满足工作需要了。接下来,跟大家唠一唠笔记本电脑的那些事儿~我将从以下几个方面进行介绍&#x…

行走在区块链上的智能合约
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 我和你打一个赌,我赌明天是雨天,你赌是晴天,赌注100大洋。假设明天是晴天,然后你跑过来管我要100大洋…

安装 telnet
yum install telnet-server yum install telnet service xinetd restart 查询是否正常启动telnet netstat -tnl |grep 23 telnet服务默认使用的23端口 转载于:https://www.cnblogs.com/gaobo543013306/p/8922021.html

python中json dumps_python中json.loads,dumps,jsonify使用
search_info {id:132,user_role:3}print type(search_info) #输出 #转为string用dumpsprint type(json.dumps(search_info)) #输出 #string转 dict用 loads()print type(json.loads(json.dumps(search_info))) #输出 如果前后台通过接口交互时,返回给前台json格式数…

区块链中的智能合约是什么?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 “智能合约是一套以数字形式定义的承诺,承诺控制着数字资产并包含了合约参与者约定的权利和义务,由计算机系统自动执行。”…

Python学习【第七篇】基本数据类型
基本数据类型 bytes数据类型 Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python 3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别…

web项目答辩总结_web实战项目遇到问题总结探索
最近在写一个django的web项目,后端代码基本都已经写好了,主要是前端,以前学过一段前端,只是对一些基本的方法知道,但还有很多东西不熟练,问题是在遇到表单数据时候,如何对参数整体打包发送后端接…

iOS----------计算一段代码执行时间
CFAbsoluteTime start CFAbsoluteTimeGetCurrent(); //在这写入要计算时间的代码 // do something CFAbsoluteTime end CFAbsoluteTimeGetCurrent(); NSLog("%f", end - start);转载于:https://www.cnblogs.com/KiVen2015/p/8926265.html

区块链热度不减 应用风险不容忽视
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 今年来,除了区块链本身之外,越来越多的业内人士也更加关注区块链在金融等方面的应用。 4月2日,由京东金融研究院…

POJ 3258:River Hopscotch (最大化最小值)
【题意】 牛要到河对岸,在与河岸垂直的一条线上,河中有N块石头,给定河岸宽度L,以及每一块石头离牛所在河岸的距离, 现在去掉M块石头,要求去掉M块石头后,剩下的石头之间以及石头与河岸的最小距离…

python获取文本光标_使用python readline时如何获取(并设置)当前bash光标位置?
我可以建议Python curses吗?The curses module provides an interface to the curses library, the de-facto standard for portable advanced terminal handling.While curses is most widely used in the Unix environment, versions are available for DOS, OS/2…

Gridview改变单元格颜色
if (e.Row.RowType DataControlRowType.DataRow) { e.Row.Cells[1].BackColor System.Drawing.Color.Red;//第二列的颜色 }转载于:https://www.cnblogs.com/objectxhy/p/5896970.html

区块链为什么这么热?有这么大热度的原因是什么
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 区块链的热度是超乎想象的。 在上地和西二旗密集的写字楼办公空间里,年轻人三五成群聚在一起,在午饭后或散步或聚在茶水间…
使用nmonchart把.nmon文件转换成html
转载:https://blog.csdn.net/zd470015321/article/details/68923280 我的环境 :centos6.6 下载地址 nmon: http://nmon.sourceforge.net/pmwiki.php?nSite.Download nmon analyzer: https://www.ibm.com/developerworks/community/wikis/home?langen#!/wiki/Power…

java web中文乱码处理笔记
一、发生中文乱码的情况有以下三种: 1.表单form的两种提交出现中文乱码 ① get提交 ② post提交 2.超链接(本质是get提交)出现中文乱码 3、sendRedirect(发生乱码) 二、乱码产生的原因: 浏览器编码 utf-8 发送请求给服务器是会产…

python websocket 客户端_aiohttp Websocket客户端和HTTP
我正在编写一个应用程序,它需要从两个来源接收事件。有些事件来自Websocket客户机连接,有些来自传入的HTTP请求。aiohttp是否可以在同一个应用程序中同时使用这两个侦听器,还是需要两个单独的可执行文件?在我目前有一个函数&#…

你关注区块链了吗?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 前言:关于什么是区块链的论述有很多,本文从公共数据库、印刷机、治理、经济学、组织方式等方面进行阐述,作者观点…

(转)记忆杭州中的(非杭户籍人)
非杭州户籍外来人员在杭州 一、为杭州所做的贡献 1.知识分子 科技创新(这个很简单明了,现在的国家已经不是八九十年代的国家了,飞速发展的今天离不开一群知识分子) 人才培养(光谈科技发展,也要有一群人教育…

ProgressDialog的使用-------------范例(学习笔记)
-------------------------------XML------------------------ <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android" xmlns:tools"http://schemas.android.com/too…

python自动化ppt_python自动化怎么操作ppt?
社会的不断进步,科技的不断发展,让每个人都越发趋向自动化的社会,大家有没有想过居然可以在工作软件上也实现自动化,是不是非常神奇呢?请大家在惊叹神奇之余,跟着小编一起来感受下吧~python-pptx模块简介1、…