当前位置: 首页 > 编程日记 > 正文

行走在区块链上的智能合约

链客,专为开发者而生,有问必答!

此文章来自区块链技术社区,未经允许拒绝转载。

在这里插入图片描述

我和你打一个赌,我赌明天是雨天,你赌是晴天,赌注100大洋。假设明天是晴天,然后你跑过来管我要100大洋的赌金,我装疯卖傻就是不承认我们之间的赌约,面对这种你看不惯却又干不掉我的情况你又能怎么做呢?
  假设我们俩在打赌的时候,就制定一份合约,存放在某个平台,等第二天打赌结果一出来,赌金就自动打到你的账户上,这样是不是很完美?

这就是今天的主角——智能合约。

通俗的理解智能合约

所谓智能合约,就是数字化的纸质合约,不需要人去执行,而是能被计算机自动执行的合约条款。

智能合约被视作区块链2.0的产物,但是智能合约的诞生至少可以追溯到1995年,是由跨领域法律学者尼克·萨博(Nick Szabo)提出来的。他给智能合约的定义是:"一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。"定义中很值得关注的一个词是数字形式。现在智能合约与区块链几乎是如影随形,我们就来看看基于区块链的智能合约的构建及执行步骤:

1、智能合约的构建:由区块链内的多个用户共同参与制定一份智能合约;

2、智能合约的存储:智能合约通过P2P网络扩散到每个节点,并存入区块链;

3、智能合约的执行:智能合约定期进行自动机状态检查,将满足条件的事务进行验证,达成共识后自动执行并通知用户。

通俗地讲,就是合约制定者将合约制定以后,将合约内容转化为编程语言存在区块链平台上(需要用区块链返给制定者的私钥进行签名),合约通过P2P的方式在区块链全网中扩散,每个节点都会收到一份(相当于无数个人保存并监督这份合约的内容),当时间合适且满足合约内容时,就会自动执行这一份合约。

行走在区块链上的智能合约

单纯地看智能合约,明明可以惠及万民,为什么没有从一开始就吸引投资创业者的眼球,而是潜伏到现在才开始被大众所熟知呢?

这就跟我们看科幻作品一样,我们现在所生活的环境在大家看来是没有什么神秘性的,但若是放到二三十年前呢?同样的道理,那个时候的客观环境不支持智能合约的实现。

首先智能合约是数字化的合约,智能合约提出的时候,互联网才刚刚起步,互联网的发展都还具有不确定性,拿什么来谈实现智能合约呢?其次,智能合约的执行需要的是数字资产。

那可能就有人提问:互联网现在发展的这么好,我们也有数字资产了,实现智能合约就非得基于区块链吗?

答案是否定的。拿大家很熟悉的信用卡自动还款服务来说,信用卡自动还款可以看做是用户和银行在某个平台上签订的智能合约。当还款条件满足时,计算机系统会自动完成这笔交易,这些服务是基于计算机系统完成的,并不是基于区块链的。

可能有人会说,是不是可以从计算机的世界来实现智能合约,为什么非得研究区块链?

因为信任。在计算机的世界里,存在着提供服务的第三方,而智能合约虽然是数字化的,但还是存在于计算机系统中,别说担心被黑客攻击,就连第三方会不会篡改用户的合约内容也没有谁可以保证。在理想状态下,区块链的基本属性就决定了它是一个高可靠性的系统,不可篡改、去中心化、分布式,并且都是由一串串的指令实现的,数据是冰凉的但却最值得信任,因此用户不用担心合约被篡改或不被执行等问题的发生。

因此,不是说智能合约不是非基于区块链不可,但是目前区块链一定是最适合智能合约实现的平台。

智能合约和区块链,相辅相成

有人说智能合约是区块链进化产物,其实,二者仅算是相辅相成。区块链的出现让智能合约的实现有了可能性,而区块链在智能合约的应用,让区块链跨过了数字货币的局限,以新的姿态出现在大众的眼中。

智能合约加快了区块链的传播速度,在一定程度上也使得投资方向从数字货币,部分转移到其他项目的投资,智能合约使得区块链得到了简化和重构,它不是使已经复杂的事情更加复杂,而是把去中心化的好处提炼成更简单、更便利的形式,这能让区块链得到更广泛的接纳。

从智能合约的运行原理来看,对区块链节点的存储空间的需求会越来越大,而区块链不是一个软件,这个问题不会因为升级就能得到解决。除去存储空间这一问题,关于区块链也好,智能合约也好,疑惑太多,也许唯一的解惑方式就是——去做。静候各位大咖的佳音吧。

相关文章:

安装 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?

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

你不应该关注区块链的“杀手级应用”

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 在每一次区块链大会上&#xff0c;人们无不讨论一个话题&#xff1a;区块链的下一个杀手级应用是什么&#xff1f;下一个获得大规模应用的成功案例是…

项目管理中问题与对策探讨

[摘要]以深圳市东深电子技术有限公司的项目管理现状为基础&#xff0c;剖析该公司在项目管理方面存在的弊端&#xff0c;并提出若干指导性建议。 一、存在问题 深圳市东深电子技术有限公司是一家以水行业计算机监控系统工程项目为主的公司。该公司成立于1997年&#xff0c;经过…

ssm启动报错cannot find class_SSM整合补充 RBAC(权限控制)过滤器

1. 什么是RBAC(1) 请简述什么是RBACRBAC(Role-Based Access Control)基于角色的访问控制RBAC认为权限的过程可以抽象概括为:判断 [Who 是否可以对 What 进行 How的访问操作(Operator)]Who:权限的拥有者或主键What:权限针对的对象或资源How:具体的权限Operator:操作.表明对 What…

EasyPusher实现Android手机屏幕桌面直播,实时推送操作画面,用于手游直播等应用

本文转自EasyDarwin开源团队成员John的博客&#xff1a;http://blog.csdn.net/jyt0551/article/details/52651194由于Android 5.0提供了捕获当前屏幕画面的SDK&#xff0c;基于该SDK&#xff0c;EasyPusher实现了实时推送手机屏幕画面的功能。经测试&#xff0c;效果很不错&…

区块链技术之以太坊ETH白皮书

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 基于中本聪区块链比特币1.0之后&#xff0c;天才少年Vitalik Buterin&#xff08;V神&#xff09;在2013年年末发布了以太坊白皮书&#xff0c;其实…

codevs1137 计算系数

1137 计算系数 2011年NOIP全国联赛提高组 时间限制: 1 s空间限制: 128000 KB题目等级 : 黄金 Gold题解题目描述 Description给定一个多项式(ax by)^k&#xff0c;请求出多项式展开后x^n y^m项的系数。 输入描述 Input Description共一行&#xff0c;包含 5 个整数&#xff0…

选择器优先级_CSS选择器优先级指北

来源&#xff1a;大前端FE(gh_f26dd6c6cfbf)欢迎大家一起来学习前端&#xff0c;期待你加入~相信大部分人刚开始写 css 的时候应该碰到过这样的问题。明明只改了一行样式&#xff0c;然后整个页面就变成了这样↓本文将小节一下 css的优先级&#xff0c;帮助解决碰到的样式重叠 …

区块链膨胀:以太坊客户如何解决存储问题

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 ​​​4,270个代币。27,358笔交易。数字小猫463,713。 以太坊最近举办了很多活动&#xff0c;虽然很多加密爱好者认为这是一个积极的信号&#xff…

Python之路-python(Queue队列、进程、Gevent协程、Select\Poll\Epoll异步IO与事件驱动)

一、进程&#xff1a; 1、语法 2、进程间通讯 3、进程池 二、Gevent协程 三、Select\Poll\Epoll异步IO与事件驱动 一、进程&#xff1a; 1、语法 1 简单的启动线程语法 2 def run(name): 3 time.sleep(2) 4 print("hello",name) 5 6 if __name__ __main__:…

python画圣诞帽_用Python给头像加上圣诞帽

原标题&#xff1a;用Python给头像加上圣诞帽随着圣诞的到来&#xff0c;大家纷纷官微给自己的头像加上一顶圣诞帽。我们有必要写一个程序来做这件事情。用到的工具OpenCVdlib流程一、素材准备首先我们需要准备一个圣诞帽的素材&#xff0c;格式最好为PNG&#xff0c;因为PNG的…

Python知识点进阶——生成器

生成器为什么要将列表转化为迭代器&#xff1f;因为列表太大的话用内存太大&#xff0c;做成迭代器可以节省空间&#xff0c;用的时候再拿出部分。生成器是不会把结果保存在一个系列中&#xff0c;而是保存生成器的状态&#xff0c;在每次进行迭代时返回一个值&#xff0c;知道…

以太坊开启区块链2.0时代

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 今天我们唠唠以太坊&#xff0c;这个开启区块链2.0时代的伟大项目。 前面我们说比特币实际上是一个大账本&#xff0c;从比特币白皮书里走出来的区…