主页 > imtoken钱包下载2.0安卓版 > 对区块链和智能合约的各种误解的解释

对区块链和智能合约的各种误解的解释

imtoken钱包下载2.0安卓版 2023-01-17 05:00:49

根据谷歌趋势数据,目前,程序员对智能合约编程的兴趣处于历史最高水平,其中中国位居全球首位。 随着区块链技术的发展,相信未来智能合约将与我们的生活息息相关。 今天给大家介绍一下什么是智能合约。

智能合约的基本概念

Smart Contract,英文名称Smart Contract,由跨学科法学学者Nick Szabo博士于1990年代首次提出,几乎与互联网同龄。 然而,由于缺乏可信的执行环境,智能合约并未在现实生活中得到应用。 但由于区块链的诞生,它开始重新进入人们的视野,并逐渐开始被重视和应用。

不同于法律意义上的合约概念,区块链领域的合约表达的是一种可以“自主自理”的计算机协议。 这套协议具有自执行、自验证的属性。

从技术角度看,智能合约相当于一段预先指定逻辑和条款的计算机代码被激活并运行的状态。 同时,智能合约还提供了一个通用的用户界面,用户可以通过该界面与用户进行交互。

由定义可知,智能合约由多个协议组成,包括用户界面,可以表达用户承诺,可以安全高效地确定公网上的关系。

换句话说,智能合约是一种计算机处理的、可执行的合约条款交易协议,其总体目标是满足协议中设定的条件,如支付、抵押、保密协议等。 这可以减少合同欺诈造成的损失,降低仲裁和执行成本以及其他交易成本。

让我们用一个实际的例子来解释。 今年4月9日,中国建设银行上海分行开设了一家“无人银行”。 和两个机器人而不是传统的柜台。

这里的智能柜员机和外汇机器人可以看成是智能合约的一种表现形式。 用户在办理银行业务时,如办理大额汇款业务,程序中已经设定了业务流程和逻辑依据。 需要根据操作一步步进行,流程完成后即可获得收据。

在这里,“既定的业务流程、类似机器人的人机交互界面、相互约定和承诺”构成了智能合约的概念,甚至具有一定的法律效力。

Szabo提出的是智能合约的概念,我们举的例子都是智能合约的广义概念。 智能合约有多种实用形式,而区块领域的智能合约概念,我们实际上指的是基于区块链的形式。

开放网络在Saab的智能合约概念中提到,我们知道开放网络的基本要求是拜占庭容错。 通过上一篇的讲解,我们知道区块链天生就具有拜占庭容错的特性。 所以如果在区块链上实践智能合约的概念,两者会非常契合,天作之合。

比特币最早实践了智能合约的概念。 比特币脚本(bitcoin script)包含五个标准的交易脚本。 这些脚本的功能不仅提供了普通的单人支付,还提供了多方共同签署的支付脚本,我们称之为多签支付,多签支付可以看成是Saab语义下的智能合约。

除了比特币,发扬智能合约概念的区块链项目还有以太坊。 2013年底,以太坊创始人Vitalik发布白皮书《以太坊:下一代智能合约和去中心化应用平台》,并一直致力于让以太坊成为最好的智能合约平台,据说比特币引领区块链,以太坊重振智能合约。

智能合约和以太坊

以太坊项目的目标是打造一个去中心化的下一代互联网应用平台,称为Dapp平台。

这些Dapp基于以太坊智能合约虚拟机开发、编译、部署,可以自定义业务逻辑。 部署后,可以看到整个网络并自动执行。 理想情况下,不会出现停机、审查、欺诈或第三方干预。

以太坊的核心概念包括:智能合约虚拟机EVM和Solidity编程语言、账户模型、以太坊和Gas、交易和消息。

以太坊的核心概念首先是智能合约。 智能合约由两部分组成。 一部分是开发语言,主要基于Solidity。 Solidity与使用中的语言非常接近,大大降低了Dapp开发者的学习成本。

Dapp开发者写好代码后,使用Solidity编译成16进制字节码,然后部署到EVM上,即向全网广播合约,矿工打包后,形成一个运行的Dapp一年四季。

另一部分是EVM。 EVM 是以太坊智能合约虚拟机。 我们可以把它等同地理解为Javascript、Python等脚本语言的执行引擎。

它是一个轻量级的虚拟机隔离环境。 它不提供对本地网络、进程和文件系统的访问。 它更像是一个封闭的容器。 在这个容器中安装了一个正在运行的Dapp,可以看成是一个无法与外界交互的Docker Container。

Dapp运行过程中,可以通过请求或者其他事件触发,然后执行相应的逻辑。 这些请求和事件是由以太坊上的交易产生的,而不是来自本地操作系统的事件。

Dapp运行过程中,状态每一次变化,都意味着全网同步更新,大家的计算结果是一致的。 这有两个特点:

1.所有Dapp的计算结果均通过全网共识。 一旦确认,几乎不可能被伪造和篡改;

2. 由于必须经过全网的共识,这就限制了全网的容量。

智能合约示例代码

这里我们从生活中常见的两方打赌场景入手,编写一个简单的合约代码。 例如,张三和李斯打赌周末拜仁慕尼黑和皇马的足球比赛谁会赢。 如果拜仁赢了,张三给李斯100元; 反之,李四给张三100元。 如果有平局,则既不赢也不输。

张三和李四都怕对方不认账,所以要找双方都信任的人来做公证,两人都给了公证人100块钱。 那么,如果拜仁赢了,公证人会将200元全部交给李斯; 皇马赢了,全给张三; 如有平局,各退100元。

上面这个模型各方面都不错,但是有个问题,“公证人”跑了怎么办? 因为他们只押了100元,公证人没必要为了200元跑路。 但是,如果 10,000 人将他们的赌注交给公证人呢? 如果张三和李四的赌注是100万呢? 公证人的人性将受到极大的挑战。 他还有那么可信吗? 对于这个问题,只需要将双方的对赌协议写入智能合约,通过智能合约执行这个问题即可解决。

合约代码如下:

目前,Solidity 是最流行的智能合约编程语言。 如果你致力于区块链智能合约的开发比特币具备智能合约功能,可以学习Solidity。

对区块链和智能合约的误解

误区一、区块链技术的主要受益者是犯罪分子

当区块链技术首次进入公众视野时比特币具备智能合约功能,它主要被描述为犯罪中心,尤其是在暗网上。 尽管区块链作为一种安全的商业解决方案越来越被接受,但人们仍然对允许犯罪分子匿名开展工作的区块链抱有负面联想。

然而,恰恰相反,大多数公共区块链是完全可追溯且安全的,因为该技术允许公司跟踪他们与客户之间的所有信息交换。

误区二、区块链不可更改,不可破解

虽然区块链是企业可用的最安全的选择之一,但没有任何系统可以 100% 免受黑客攻击和更改。

理论上,区块链网络中的任何个人或组织都可以聚集足够的矿产资源来夺取控制权,尽管这种情况发生的可能性很低。

误区 3. 政府可以关闭区块链网络

事实上,区块链网络的去中心化性质使得几乎不可能关闭其中任何一个,除非每个网络参与者都停止使用它。 无法关闭是使区块链技术成为安全业务解决方案的绝佳选择的众多因素之一。

误区 4. 智能合约是具有法律约束力的合约

事实上,智能合约只是程序中的一段代码,根据交易双方的约定执行。 不具有法律约束力,只能存在于区块链网络中。 与其将智能合约视为真正的合约,它们更像是某种安全工具。

误区 5. 智能合约操作是完全自主的

一些人认为智能合约是完全自主的,能够分析其环境并对任何修改做出响应。 事实上,智能合约成为安全解决方案的原因之一是它们仅在收到交易或消息时执行。

误区 6. 所有智能合约都具有相同的特征

很多人对区块链技术和智能合约存在误解,认为世界上只有一种区块链技术或只有一种智能合约。 事实上,根据其所依赖的区块链网络,智能合约的功能特性是完全不同的。