不同的区块链智能合约和区块链技术现在风靡一时。越来越多的人出于某种原因试图进入这个神奇的世界。如果你是这项技术的新手并正在寻找基于区块链的开发平台的快速入门,那么本指南非常适合你。我们将重点关注和比较的平台是:
- Ethereum
- EOS
- Hyperledger
- Cosmos
- Cardano
那么,为什么我们决定关注这5个平台?我们认为这几个平台提供了可用性和功能性的组合。是的,我们也知道其中一些项目并未完全上线,但我们仍然认为项目的潜力足以保证我们的名单上有它一个位置。我们将先介绍每个平台,然后在最后比较它们。
以太坊
毫无疑问,以太坊是智能合约平台的老大。以太坊背后的主要人物是Vitalik Buterin。Buterin对比特币非常着迷,但他意识到区块链技术比仅仅作为支付协议的推动者有更多的用途。他意识到可以使用区块链技术来创建去中心化的应用程序。于是他被启发创造了以太坊。
像比特币一样,以太坊是一种加密货币,然而,也就是这个地方还有些相似性。因为虽然比特币是“第一代”区块链,但以太坊通过成为有史以来第一个第二代区块链打破了局面。以太坊通过在区块链上引入智能合约,彻底改变了加密世界。
智能合约首先由Nick Szabo概念化。这个想法很简单,在双方之间有一套自动执行指令,不需要由第三方监督或执行。这个想法似乎很简单,对吧?然而,智能合约使以太坊能够创建一个环境,来自世界各地的开发人员可以创建自己的去中心化应用程序,即Dapps。
Dapps和智能合约
Dapp的创造是以太坊最重要的特征之一。除了去中心化之外,还有Dapp必须具备的某些其他功能:
- Dapp的源代码应该对所有人开放。
- 应用程序必须有某种代币来为自己提供支持。
- 应用程序必须能够生成自己的代币并具有内置的共识机制。
听起来很棒吧!那么,你究竟如何构建它们呢?你需要使用solidity对智能合约进行编码。
开发人员使用一种名为Solidity的编程语言,这种语言是一种有目的的简洁,松散类型的语言,其语法与ECMAScript(Javascript)非常相似。
除了创建智能合约外,你还必须拥有可以执行它的环境。但是,此执行环境必须具有一些属性。这些属性是:
1.确定性
如果程序每次都给予给定输入有相同的输出,则程序是确定性的。例如。如果3+1=4则3+1总是4(假设基数相同)。因此,当程序将相同的输出提供给不同计算机中的同一组输入时,该程序称为确定性。环境必须确保智能合约的执行始终是确定的。
2.可终止
在数学逻辑中,我们有一个称为halting problem(终止问题)的错误。基本上,它表明无法知道给定程序是否可以在一定时限内执行其功能。1936年,Alan Turing(阿兰·图灵)使用Cantor的对角线问题推断出,没有办法知道某个节目是否可以在一个时间限制内完成。
这显然是智能合约的问题,因为根据定义,合约必须能够在给定的时间限制内终止。因此环境必须能够停止智能合约的运作。
3.隔离
在区块链中,任何人和每个人都可以上传智能合约。然而,正因为如此,合约可能在知情和不知不觉中包含病毒和错误。
如果合约没有被隔离,这可能会妨碍整个系统。因此,将合约保持隔离在沙箱中以保护整个环境免受任何负面影响至关重要。
以太坊使用名为以太坊虚拟机(EVM)的虚拟机执行其智能合约。
人们必须了解的下一个核心以太坊概念是gas。
什么是以太坊gas?
还记得智能合约环境的“终止”属性吗?好吧,以太坊智能合约通过利用gas来实现这一特性。在智能合约中编码的每一行都需要一定量的gas才能执行。因此,当开发人员提交智能合约以供执行时,他们还会指定最大gas限制。
想想gas限制是你在开车前装满汽车的燃料,燃料耗尽的那一刻,汽车停止工作。智能合约中的每一行都需要一定量的gas