社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  区块链

什么是区块链的“智能合约”

蓝狐笔记 • 8 年前 • 236 次点击  

前言:关注区块链就会经常听到“智能合约”的术语,那么如何理解“智能合约”?它从何而来,它如何运作?它有什么优缺点?……本文适用于初学者,作者是CoinBundle Team,文章来源于medium.com,由蓝狐笔记社群“Leo”翻译。

 

我们经常会听到区块链技术的流行语,如“去中心化网络”“智能合约”等。有些人投资的时候,可能不会去关注项目的复杂细节,但不少成功的投资者对于“智能合约”等重要术语非常熟悉,对加密货币背后的具体技术理解透彻。

 

我们可以从智能合约的历史到智能合约的应用一一阐述。首先要提到的是,本文不涉及任何投资建议。本文主要是阐述智能合约的关键部分以及它对区块链和加密货币的潜在重要性。

 

智能合约的历史

 

在全面阐述什么是智能合约之前,我们先回顾一下它创建的历史背景,有助于理解它的重要性。

 

1994年,计算机科学家和密码学家Nick Szabo首次提出“智能合约”概念。它早于区块链概念的诞生。Szabo描述了什么是“以数字形式指定的一系列承诺,包括各方履行这些承诺的协议”。虽然有它的好处,但智能合约的想法一直未取得进展——主要是缺乏可以让它发挥出作用的区块链。

 

直到2008年,第一个加密货币比特币才出现,同时引入了现代区块链技术。区块链最初是以比特币的底层技术出现的,各种区块链分叉导致发生很大的变化。智能合约在2008年依然无法融入比特币区块链网络,但在五年后,以太坊让它浮出水面。从此,涌现出了各种不同形式的智能合约,其中以太坊智能合约使用最广。

 

智能合约的概念可以追溯到1994年,由Nick Szabo提出,但直到2008年才出现采用智能合约所需的区块链技术,而最终于2013年,作为以太坊智能合约系统的一部分,智能合约首次出现。

 

什么是智能合约

 

上面提到了历史背景,下面从多个角度继续探讨。智能合约是一种特殊协议,旨在提供、验证及执行合约。具体来说,智能合约是区块链被称之为“去中心化的”重要原因,它允许我们在不需要第三方的情况下,执行可追溯、不可逆转和安全的交易。

 

智能合约包含了有关交易的所有信息,只有在满足要求后才会执行结果操作。智能合约和传统纸质合约的区别在于智能合约是由计算机生成的。因此,代码本身解释了参与方的相关义务。

 

事实上,智能合约的参与方通常是互联网上的陌生人,受制于有约束力的数字化协议。本质上,智能合约是一个数字合约,除非满足要求,否则不会产生结果。

 

智能合约如何运作?

 

很多区块链网络使用的智能合约功能类似于自动售货机。智能合约与自动售货机类比:如果你向自动售货机(类比分类账本)转入比特币或其他加密货币,一旦输入满足智能合约代码要求,它会自动执行双方约定的义务。

 

义务以“if then”形式写入代码,例如,“如果A完成任务1,那么,来自于B的付款会转给A。”通过这样的协议,智能合约允许各种资产交易,每个合约被复制和存储在分布式账本中。这样,所有信息都不能被篡改或破坏,数据加密确保参与者之间的完全匿名。

 

虽然智能合约只能与数字生态系统的资产一起使用,不过,很多应用程序正在积极探索数字货币之外的世界,试图连接“真实”世界和“数字”世界。

 

智能合约根据逻辑来编写和运作。只要满足输入要求,也就是说只要代码编写的要求被满足,合约中的义务将在安全和去信任的网络中得到执行。

 

编程语言和程序

 

为了编写智能合约,你必须使用智能合约语言(SCL)。这些是直接编写智能合约或编译成智能合约的编程语言。Solidity是一种编写智能合约的编程语言,它在以太坊虚拟机上运行。它是一种面向合约的高级语言,其语法类似于JavaScript,主要针对以太坊EVM。

 

以太坊虚拟机(EVM)是以太坊上智能合约的运行环境。它实际上是完全隔离的,这意味着在EVM上运行的代码无法访问网络、文件系统和其他进程。智能合约对其他的智能合约的访问权也有限,在区块链网络上单独运作。

 

在以太坊网络上编写智能合约有三个主要步骤:


1.     用以太坊高级语言编写

2.     用EVM编译器编译成字节码

3.     用以太坊客户端上传到区块链网络

 

对于智能合约和开源编码感兴趣的人,广为人知的资源之一是GitHub。这是开发人员托管软件代码的在线平台。你的每段代码会存在存储库中,存储库基本上是一个存储所有代码组件的文件夹。

 

很多人把其他人的存储库复制和粘贴到自己的账户中,然后进行微调整,变成自己的。通过搜索项目和存储库来浏览页面,可以帮你构建自己的项目。一旦找到你所需要的存储库,打开它并搜索内容,会包含大量有用代码的复杂内容。使用上述程序和资源,你也可以创建自己的智能合约。

 

智能合约是用SCL编写的,以太坊智能合约功能归功于以太坊虚拟机。这是以太坊上智能合约的运行环境。

 

智能合约的优缺点

 

就像任何其他新的系统协议一样,智能合约并不完美。使用智能合约有几个优点和缺点,包括更高的效率和缺乏监管。具体来说:

 

使用智能合约的一些主要优势包括在处理文档时的更高效率。这归功于它能够采用完全自动化的流程,不需要任何人为参与,只要满足智能合约代码所列出的要求即可。结果是,会节省时间,降低成本,交易更准确,且无法更改。

 

此外,智能合约去除任何第三方干扰,进一步增强了网络的去中心化。

 

另一方面,智能合约的使用也会产生不少问题。一些缺点包括:人为错误、完全实施有困难、不确定的法律状态。

 

虽然很多人把智能合约的不可逆转特性看作是它的主要好处,但也有人认为一旦出现问题无法修改。因为人类会犯错误,在创建智能合约时也一样,一些绑定协议可能包含错误,而它们是无法逆转的。

 

此外,智能合约只能使用数字资产,在连接现实资产和数字世界时会出现问题。最后也是最重要的是,智能合约缺乏法律监管,只受制于代码约定的义务。缺乏法律监管可能会导致一些用户对网络上交易持谨慎态度,特别是它很重要的话。

 

使用智能合约的优点是处理交易时效率更高,不可逆转,安全的交易以及全自动化流程。另外一个方面,缺点就是缺乏法律监管,人为的错误和实施有困难。

 

智能合约的应用

 

智能合约已在各种区块链网络中得以实施,其中最重要和最受欢迎的依然是比特币和以太坊。虽然比特币网络以使用比特币执行交易闻名,它的协议也可以用来创建智能合约。比特币实际上提供的是一种编程语言,允许创建自定义智能合约,比如支付通道。

 

以太坊则是目前为止最引人注目的智能合约框架,因为它是专门为支持智能合约的使用创建的。用Solidity语言编程,以太坊智能合约框架有助于促进去中心化网络,便于用智能合约处理交易。

 

除了加密货币之外,在不同行业的也有用户场景,例如选举、供应链优化、电子商务中可有效利用智能合约。

 

因此,加密爱好者看到了最近智能合约的发展,它与区块链技术携手合作,致力于改变数字化世界。

 

智能合约可以用比特币和以太坊创建。各行各业可以从智能合约发展中受益,包括选举、供应链和电子商务等。

 

结论

 

智能合约真的智能吗?它让区块链网络上执行的交易效率更高,同时,由于它是无法修改的,也由此要谨慎查看协议。

 

无论你如何看待智能合约,越来越多的项目正在寻找驾驭它的方法,它们很多是从以太坊智能合约开始的。随着对智能合约的研究不断推进,可以关注它取得的进展,但最重要的是,不要忘记智能合约在执行交易方面的重要性,交易在区块链网络上是安全的、无须信任和分布式的。


------

风险警示:蓝狐笔记所有文章都不构成投资推荐,投资有风险,投资应该考虑个人风险承受能力,建议对项目进行深入考察,慎重做好自己的投资决策。


本文已加入“POB.Network脑力挖矿”内容天使合伙人计划。


想要深入了解区块链,长按下面二维码关注“蓝狐笔记”区块链公众号:lanhubiji 或加入知识星球:https://t.zsxq.com/iaQNnIq


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/8Iuvq2g9rA
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/23166