智能合约本质上是一段部署(Deploy,即发布)到区块链上的程式码【I8I-项目2591-开发3365】因为区块链上的程式码(严格来说是二进位码)可以被检视,所以具备公开透明的特性。智能合约被部署到链上后会产生一个合约地址,存在于链上的区块之中。以下用Pelith开发部署之CryptoCow智能合约为范例做解说。
智能合约的技术运作原理解析
如何部署智能合约?
我们从智能合约的诞生谈起。
开发者将程式码开发完成后,要透过发送一笔接收地址为“0x0”开头的交易(一般交易的接收地址为0x开头,后面接一串字),并在交易的Input Data内放上开发完成的程式码。矿工看到接收地址为0x0的交易就会知道交易的发送者想要部署智能合约,随后便会将Input Data内的程式码部署到区块链上,并生成一个合约地址。
智能合约的技术运作原理解析
然而我们会发现Input Data充满了看不懂的文字,似乎跟我们印象中的程式码不太一样,原因是在以太坊上储存的合约逻辑是以Bytecode的形式,所以开发者以Solidity开发的原始码必须先被编译成Bytecode才能部署上链。
目前大多数开发者使用的开发工具,如:Remix本身都具备编译的功能,开发者开发完原始码后只要一键进行编译的动作便能取得Bytecode。
智能合约其实不是合约也不智能,只是它能跑着区块链上的代码。
二、智能合约语言
Solidity
Solidity是和JavaScript相似的语言,你可以用它来开发合约并编译成以太坊虚拟机字节代码。它目前是以太坊受欢迎的语言。
Serpent
Serpent是和Python类似的语言,可以用于开发合约编译成以太坊虚拟机字节代码。它力求简洁,将低级语言在效率方面的优点和编程风格的操作简易相结合,同时合约编程增加了独特的领域特定功能。Serpent用LLL编译。
Lisp Like Language(LLL)
Lisp Like Language(LLL)是和Assembly类似的低级语言。它追求极简;本质上只是直接对以太坊虚拟机的一点包装。
Mutan(弃用)
Mutan是个静态类型,由Jeffrey Wilcke开发设计的C类语言。它已经不再受到维护。
DAPP公链代币合约质押挖矿项目系统开发
广州网站/软件服务相关信息
11月19日
11月19日
11月15日
11月11日
11月11日
11月11日
11月11日
11月11日
11月9日
11月9日