主页 > imtoken钱包下载安卓 > 什么是智能合约?

什么是智能合约?

imtoken钱包下载安卓 2023-12-06 05:07:28

文字 | 李伟志

什么是智能合约?

运行在区块链上的程序通常称为智能合约(Smart Contract)��。 因此以太坊智能合约是什么意思,编写区块链程序通常更名为编写智能合约。 虽然比特币上也可以写智能合约,但是比特币支持的语法只和交易有关,能做的事情比较有限。 因此,说到编写智能合约,通常指的是支持执行图灵完备程序的以太坊(Ethereum)区块链⛓。

智能合约能做什么?

目前最常见的智能合约是各种加密货币合约。 开发人员可以通过部署智能合约轻松提供在以太坊上运行的新加密代币。 如果这个智能合约兼容ERC20标准1,开发者不需要重新开发从挖矿到交易的整个代币生态,你的新加密代币可以直接用于支持以太坊的电子钱包接收和发送,大大降低创建新加密令牌的阈值。

智能合约也可以用来运营各种公开公平的自动化服务机构(DAO,去中心化自治组织)。 通过分布在全球各个节点上的智能合约,所有的操作和决策都是公开透明的,减少了交易的不确定性(uncertainty)。

智能合约与普通程序的区别

以太坊智能合约确实有一些不同于一般程序的特点。 下面整理出四个不同点。

1.易于整合现金流

一般应用集成金流非常困难,但智能合约集成金流系统非常容易(使用以太坊或自创新代币合约)。

2.部署和后续编写都需要成本

一般的应用程序需要提供网址供用户下载,一般的Web应用程序也需要运行在服务器上。 开发者需要维持服务器的运行来提供服务,这需要持续的成本(即使是免费的服务器或者网站空间也是厂商自己吸收的),而程序开始运行后,没有额外的成本其他比维护成本。

智能合约在部署时需要支付费用,这笔费用将分配给参与交易验证(挖矿)的人。 合约部署成功后,合约将作为不可更改的区块链的一部分进行分发,并存储在全球的以太坊节点上。 因此,智能合约部署后,无需提供定期维护费用,同时查询已写入区块链的静态数据也无需支付任何费用。 每次通过智能合约写入或读取计算时,只需支付少量交易费用。

三、存储数据的成本较高

一般应用将数据存储在本地机器或服务器上,需要数据时再从本地机器或服务器上读取,而智能合约将数据存储在区块链上,存储数据所需的时间和成本相对昂贵。

四、部署后不可更改

一般的应用程序修改可以通过安装新版本的程序来实现,Web应用程序也可以通过部署新版本的程序来实现。 智能合约一旦部署在区块链上,就无法更改智能合约。 当然,通过添加额外的智能合约,聪明的开发者也找到了绕过智能合约部署后无法更改的限制的方法。

如何编写智能合约?

以太坊上的智能合约需要用 solidity 语言编写。 之前还有其他语言可以用来写智能合约,比如Serpent(像Python),LLL(像Fortran),但是目前所有公开的智能合约都是用solidity写的。 官方宣传说solidity是一种类似JavaScript的语言,使用NPM提供围绕JavaScript的各种开发工具链,属于Javascript生态。

将智能合约部署到区块链的过程

编写好solidity代码(.sol)后,需要将程序代码编译(compile)成EVM(Ethereum Virtual Machine)可以理解的二进制Contract ByteCode以太坊智能合约是什么意思,然后再部署到以太坊区块链上执行。 部署在区块链上的合约都会有一个合约地址(Contract Address),其格式与钱包地址(address)相同。

以太坊智能合约代码_以太坊智能合约原理_以太坊智能合约是什么意思

智能合约可以在部署后自动执行。 后续调用智能合约时,用户可以使用部署合约的钱包地址(owner account),也可以根据书面智能合约的条件,允许其他钱包地址调用智能合约。 调用智能合约其实就是向这个合约地址发起交易,但交易的不仅仅是代币,而是智能合约提供的调用方式。

智能合约示例

以太坊智能合约代码_以太坊智能合约原理_以太坊智能合约是什么意思

倾销地址

**比特币:**1FcbBw62FHBJKTiLGNoguSwkBdVnJQ9NUn

**以太坊:** 0xF055775eBD516e7419ae486C1d50C682d4170645