欢迎来到我的小小世界

Change is a million times less painful than regret

0%

智能合约与solidity

以太坊

  以太坊(英语:Ethereum)是一个开源的有智能合约功能的公共区块链平台。通过其专用加密货币以太币(Ether,又称“以太坊”)提供去中心化的虚拟机(称为“以太虚拟机”Ethereum Virtual Machine)来处理点对点合约。 以太坊的概念首次在2013至2014年间由程序员维塔利克·布特林受比特币启发后提出,大意为“下一代加密货币与去中心化应用平台”,在2014年透过ICO众筹得以开始发展。 截至2018年6月,以太币是市值第二高的加密货币,以太坊亦被称为“第二代的区块链平台”,仅次于比特币。

智能合约

  智能合约(英语:Smart contract)是一种特殊协议,在区块链内制定合约时使用,当中内含了代码函数 (Function),亦能与其他合约进行交互、做决策、存储资料及发送以太币等功能。智能合约主力提供验证及运行合约内所订立的条件。智能合约允许在没有第三方的情况下进行可信交易。这些交易可追踪且不可逆转。智能合约概念于1994年由一名身兼计算机科学家及密码学专家的学者尼克·萨博首次提出。智能合同的目的是提供优于传统合同方法的安全,并减少与合同相关的其他交易成本。

solidity

  Solidity是一种合约导向式语言,被应用于各种不同的区块链平台,其主要开发者为加文·伍德,Christian Reitwiessner,Alex Beregszaszi,Liana Husikyan,Yoichi Hirai和其他几位早期以太坊核心贡献者。Solidity 可使程序开发人员能在区块链上(例如以太坊)编写智能合约。

历史

  Solidity的语法概念最早是由加文·伍德在2014年提出,后期则以Christian Reitwiessner所领导的以太坊团队Solidity接手开发。该语言是针对以太坊虚拟机(EVM)所设计的四种语言之一(其他的还有Serpent,LLL,Viper(实验中)和Mutan(已弃用))。有关这些语言的更多信息,请参阅以太坊编程语言。 Solidity是目前在以太坊及其他以太坊竞争平台中的主要编程语言,例如Monax及其BurrowHyperledger的区块链就是使用Tendermint完成共识机制。 SWIFT亦已经使用Solidity在Burrow上完成了概念验证。 康奈尔大学的研究人员指出,Solidity即是导致DAO在2016年被黑客攻击的部分原因之一。他表示:“这实际上并不是DAO合同本身的缺陷或漏洞;技术上来说,DAO确实是在EVM上如预期般地被运行,反而是Solidity将安全上的漏洞引入了合约之中,而这些漏洞不仅没被开发社区察觉,Solidity语言的设计者们也忽略了。

描述

  Solidity是一种静态类型的编程语言,用于开发在EVM上运行的智能合约。 Solidity被编译为可在EVM上运行的字节码。借由Solidity,开发人员能够编写出可自我运行其欲实现之商业逻辑的应用程序,该程序可被视为一份具权威性且永不可悔改的交易合约。对已具备程序编辑能力的人而言,编写Solidity的难易度就如同编写一般的编程语言。 Gavin Wood最初在规划Solidity语言时引用了ECMAScript的语法概念,使其对现有的Web开发者更容易入门;与ECMAScript不同的地方在于Solidity具有静态类型和0可变返回类型。而与目前其他EVM目标语言(如Serpent和Mutan)相比,其重要的差异在于Solidity具有一组复杂的成员变量使得合约可支持任意层次结构的映射和结构。Solidity也支持继承,包含C3线性化多重继承。 另外还引入了一个应用程序二进制接口(ABI),该接口(ABI)可在单一合同中实现多种类型安全的功能。
  以下为使用Solidity编写的程序示例:

pragma solidity ^0.4.0;
contract Helloworld{
    string  myName= "Helloworld";
    function getName()  public view returns(string){
        return myName;
    }
    function changeName(string _newName) public{
        myName= _newName;
    } 
    function pureTest(string _name) pure public returns(string) {
        return _name;
    }
}

  上述主要摘自维基百科,旨在初步了解智能合约的同学有一个初步的认识。

-------- 本文结束 感谢阅读 --------