什么是智能合约?
智能合约是对协议的翻译,包括将条款和条件转换成计算机代码。区块链开发者用JAVA、C++和其他编程语言编写脚本,不会引起歧义或误解。这段代码翻译了一组自动执行和验证的规则。
双方的合同代码被上传到区块链,以检查合同的有效性并启用所需的步骤。从初始化开始,智能合约将自动执行。智能合约与传统合约的主要区别在于,智能合约不依赖于第三方,加密代码自动执行。
区块链是一个链接数据的结构,它包含数据和指向以前数据的散列指针。通常,事物是相互关联的。每一笔交易都在区块链记录并公布。我们之前看到的属性确保了区块链内交易的安全性。
从区块链到智能合约
智能合约在分布式区块链中定义和执行。每笔交易和合同的执行都必须在区块链环境上进行。实现这种智能合约执行有几个步骤:
1.区块链开发者使用编程语言编写智能合约。在编码部分,开发人员实现契约背后的逻辑,以便当给定的操作或事物发生时,脚本支持以下步骤。
2.智能合约代码编写完成后,脚本将被发送到区块链。分布式网络用于执行代码。正常情况下,每一台可以用于计算的计算机都可以执行契约,对于相同的输入,无论计算机在哪里执行,契约的输出都应该是相同的。
3.可以对多个条件进行编码,最终的智能合约用户可以选择该智能合约所需的条件。
Hyperledger Fabric:在Fabric中,Chaincode是部署在网络上的程序代码, 在共识过程中由链验证器一起执行和验证。
NXT:这是一个公共区块链平台,包含有限的智能合约模板选择。你必须使用给定的东西,你不能编写自己的代码。
编写和部署智能合约的工具
Mist Browser——它是一个浏览和使用dApp的工具。它是一个单独的浏览器,可用于浏览dApp并与之交互。
Truffle Framework——Truffle是一个流行的以太坊开发框架。它具有内置的智能合约编译、链接、部署和二进制管理。
Metamask——MetaMask是一座桥梁,允许人们今天在他们的浏览器中访问明天的分布式网络。它允许用户直接在浏览器中运行以太坊dApp,而无需运行完整的以太坊节点。
Remix——Remix是一个基于Web浏览器的IDE,允许用户编写Solidity智能合约,然后部署和运行智能合约。
编写以太坊智能合约的编程语言
Solidity和Serpent是编写以太坊智能合约的两种主要语言。
Solidity:它是一种面向合约的高级语言,其语法类似于JavaScript,旨在针对以太坊虚拟机(EVM)。
Serpent:Serpent是一种用于编写以太坊合约的高级语言。它与Python非常相似,但截至2017年9月,Solidity是以太坊开发人员的首选开发语言。
尽管Solidity是目前最流行的智能合约语言,但有一些即将推出的智能合约语言在未来可能会变得很重要。
即将到来的编程语言:
Viper:Viper有一个类似Python的缩进方案。它侧重于安全性和语言以及编译器的简单性。
Lisk:Lisk使用javascript作为智能合约语言,这使得开发人员更容易编写应用程序。
Chain:Chain提供企业级区块链基础设施,带有Ruby、Java和NodeJS等流行语言的SDK。
合约的执行是以点对点的方式进行的,非常接近于去中心化。连接到互联网的简单用户通常可以是客户端。他们必须在计算机上安装客户端。我们称这个原理为挖掘。用来运行程序的计算机叫做节点。
通常,每个人都可以创建一个智能合同,并将其上传到区块链的特定交易中。根据所使用的技术,特定的虚拟机将执行该代码。例如,以太坊智能合约在以太坊虚拟机上执行。合同获得资金支持,与传统支付方式一样,根据特定协议,可以使用一些API来公开合同,以便自动执行交易。
Compared with traditional contracts,smart contracts have three characteristics:
1.The contract content is open and transparent
The smart contract is deployed on the blockchain,and its contract content is naturally open and transparent.
2.The contents of the contract cannot be tampered with
Similarly,the content of the smart contract cannot be modified because it is deployed on the blockchain.
3.Permanent operation
The smart contract running on the blockchain is also jointly maintained by the network nodes on the blockchain.As long as the blockchain is in place,the smart contract can run forever.There is a feeling of brotherhood that"the chain is in the contract".
Compared with traditional contracts,smart contracts with the three characteristics of blockchain have the following advantages:
1.Trust.
As the smart contract is based on the blockchain,the contract content is open and transparent,and cannot be tampered with.Code is law.Based on the trust of code,traders can trade safely and safely in a distrustful environment.
2.Economical and efficient
Compared with traditional contracts,disputes often arise due to differences in understanding of contract terms;Smart contracts can avoid differences well through computing language,rarely cause disputes,and the cost of reaching consensus is very low.On the smart contract,the arbitration result comes out and takes effect immediately.Therefore,compared with traditional contracts,smart contracts have economic and efficient advantages.