未来的智能合约? Vyper和Plutus

作为开发人员,您应该意识到的一件事是持续教育的重要性。加密货币和区块链的世界处于不断发展的状态。一年前的规范可能与现在完全不相关。因此,本着不断变化的精神,我们将为您提供Vyper和Plutus智能合约和代码的外​​观。以太坊计划将Vyper用于其未来的合同,而Cardano选择了Plutus作为其智能合约编程语言的选择.

未来的智能合约? Vyper和Plutus

到目前为止,Solidity是以太坊选择的智能合约语言。 Solidity由Gavin Wood,Christian Reitwiessner,Alex Beregszaszi,Hiichi Hirai和几位以太坊前核心贡献者共同开发,以实现在以太坊等区块链平台上编写智能合约.

它受到许多流行的程序和编程概念的影响。它具有面向对象编程,Web开发,汇编语言等元素,涵盖了广泛的用例。然而, 审核 固守合同可能非常困难,因为它们可能极为宽松和复杂.

Vyper是一种基于Python的语言,专门为提高可读性和简化性而构建。由于python本身是最容易理解和广泛使用的编程语言之一,因此希望非技术人员能够跳入并开始编写自己的智能合约。 Vyper已开发为一种简约,简单的语言,专注于琐碎的用例(例如,它不能用于编写复杂的Dapp),并且不像坚固性那样灵活.

因此,尽管这可能会限制合同的灵活性, 提供更多

“用于读写智能合约的一种简单,实用,易于审核的机制,试图清楚地抓住编写代码的人的意图。”

看起来以太坊和以太坊经典大佬完全落后于Vyper,原因有两个:

#Crypto ExchangeBenefits

1

Binance
Best exchange


VISIT SITE
  • ? The worlds biggest bitcoin exchange and altcoin crypto exchange in the world by volume.
  • Binance provides a crypto wallet for its traders, where they can store their electronic funds.

2

Coinbase
Ideal for newbies


Visit SITE
  • Coinbase is the largest U.S.-based cryptocurrency exchange, trading more than 30 cryptocurrencies.
  • Very high liquidity
  • Extremely simple user interface

3

eToro
Crypto + Trading

VISIT SITE
  • Multi-Asset Platform. Stocks, crypto, indices
  • eToro is the world’s leading social trading platform, with thousands of options for traders and investors.

  • 以太坊的分片实现和Casper FFG已经在Vyper中进行了编码.

  • 维护和开发以太坊经典版的以太坊联邦还表示,他们希望采用Vyper作为默认的智能合约语言.

Vyper的极简主义方法消除了继承,状态修饰符递归调用和运算符重载,而后者让位给气体限制矢量攻击。此外,它还具有大量的溢出检查功能,可用于大型算术运算。由于采用这种方法,Vyper不仅资源效率高,而且在审核过程中不发现恶意代码就很难编写恶意代码。.

Vyper智能合约

#CRYPTO BROKERSBenefits

1

eToro
Best Crypto Broker

VISIT SITE
  • Multi-Asset Platform. Stocks, crypto, indices
  • eToro is the world’s leading social trading platform, with thousands of options for traders and investors.

2

Binance
Cryptocurrency Trading


VISIT SITE
  • ? Your new Favorite App for Cryptocurrency Trading. Buy, sell and trade cryptocurrency on the go
  • Binance provides a crypto wallet for its traders, where they can store their electronic funds.

#BITCOIN CASINOBenefits

1

Bitstarz
Best Crypto Casino

VISIT SITE
  • 2 BTC + 180 free spins First deposit bonus is 152% up to 2 BTC
  • Accepts both fiat currencies and cryptocurrencies

2

Bitcoincasino.io
Fast money transfers


VISIT SITE
  • Six supported cryptocurrencies.
  • 100% up to 0.1 BTC for the first
  • 50% up to 0.1 BTC for the second

让我们来看看Vyper智能合约礼貌 硬币学生. 这是一个简单明了的ERC-20合同.

#活动

传输:事件({_from:索引(地址),_ to:索引(地址),_ value:uint256})

批准:事件({_所有者:已索引(地址),_ spender:已索引(地址),_ value:uint256})

#状态变量

名称:public(bytes32)

符号:public(bytes32)

totalSupply:公共(uint256)

小数点:public(int128)

余额:int128 [地址]

允许:int128 [地址] [地址]

#构造函数/合约实例化

@上市

def __init __(_ name:bytes32,_symbol:bytes32,_decimals:uint256,_initialSupply:uint256):

self.name = _name

self.symbol = _symbol

self.decimals = _decimals

self.totalSupply = _initialSupply * convert(10,’uint256’)** _十进制

self.balances [msg.sender] = convert(self.totalSupply,’int128’)

# 账户余额

@上市

@持续的

def balanceOf(_owner:地址) -> uint256:

返回convert(self.balances [_owner],’uint256’)

#发送_token数量到地址

@上市

def传输(_to:地址,_amount:int128(uint256)) -> 布尔:

如果self.balances [msg.sender] >= _amount and

self.balances [_to] + _amount >= self.balances [_to]:

self.balances [msg.sender]-= _amount#从发件人减去

self.balances [_to] + = _amount#将其添加到接收者

返回True

别的:

返回False

#转让允许的令牌

@上市

def transferFrom(_from:地址,_to:地址,_value:int128(uint256)) -> 布尔:

如果_value <= self.allowed [_from] [msg.sender]和

_价值 <= self.balances [_from]:

self.balances [_from]-= _value#减少来自地址的余额.

self.allowed [_from] [msg.sender]-= _value#减少津贴.

self.balances [_to] + = _value#增加地址余额.

返回True

别的:

返回False

#允许_spender从帐户中提取最多_value金额.

@上市

def批准(_spender:地址,_amount:int128(uint256)) -> 布尔:

self.allowed [msg.sender] [_ spender] = _amount

log.Approval(msg.sender,_spender,convert(_amount,’uint256’))

返回True

#获取地址的余量

@上市

def津贴(_owner:地址,_spender:地址) -> uint256:

返回convert(self.allowed [_owner] [_ spender],’uint256’)

在此合同中:

  • 为了说明起见,“ self”方法用于显示其类的实例变量。.

  • @public和@private用于设置合同的可见性和公开性ABI(应用程序二进制接口)接口,该接口允许外部参与者(其他合同或钱包地址)调用它.

lut

卡尔达诺选择了Haskell和Plutus作为他们选择的语言。 Haskell将用于对Cardano进行编码,而Plutus将用于创建智能合约。它们都是功能语言.

那是什么意思?

两种语言(略走弯路)

当涉及到编程语言时,有两个系列:

  • 至关重要的
  • 功能性.

命令式编程语言

在命令式方法中,编码人员需要放下计算机要达到目标所需采取的所有步骤。我们所有的传统编程语言,例如C ++,Java甚至Solidity都是命令式编程语言。这种编程方法也称为算法编程.

让我们举一个例子说明我们的意思。让我们看一下C ++。假设我们要加5和3.

整数= 5;

int b = 3;

int c;

c = a + b;

因此,如您所见,加法过程分多个步骤,并且每个步骤都在不断更改程序的状态,因为它们都是依次依次执行的.

加法过程分为四个步骤,这些步骤是:

  • 声明整数a并为其分配值5.

  • 声明整数b并为其分配值3.

  • 声明一个整数c.

  • 将和的值相加并将其存储在c中.

功能编程语言

编程语言的第二族是功能语言。创建这种编程风格是为了建立一种解决问题的实用方法。这种方法称为声明式编程.

那么,函数式编程是如何工作的?

假设我们要使用一个函数f(x)来计算一个函数g(x),然后我们要使用它与函数h(x)一起使用。不必按顺序解决所有这些问题,我们可以将所有这些简单地合并到一个函数中,如下所示:

h(g(f(x)))

这使得函数方法更容易进行数学推理。这就是为什么功能程序被认为是创建智能合约的一种更安全的方法。这也有助于简化形式验证,这在很大程度上意味着更容易数学上证明程序的功能以及其工作方式。这为卡尔达诺提供了“高保证码”财产.

这就是为什么功能性方法如此理想的原因.

这正是Cardano使用Haskell为其智能合约编码其生态系统和Plutus的方式。 Haskell和Plutus都是功能语言.

回到Plutus

Plutus是Haskell的更高级别和简化版本。这意味着,与Haskell一样,它与数学相比具有更多的相似之处,而不是与编程相似。 lut是 故意的 供…使用

“金融机构,进行电子交易的场所以及其他此类具有风险的金融业务。”

因此,让我们看一些基本的Plutus编程。以下代码摘自 卡尔达诺文档.

这个简单的Plutus程序显示加法,乘法,阶乘和 斐波那契

添加:Nat -> 纳特 -> 纳特{

加零n = n;

加(Suc m)n = Suc(加m n)

}

mul:Nat -> 纳特 -> 纳特{

mul零_ =零;

mul(Suc m)n =加(mul m n)n

}

事实:纳特 -> 纳特{

fac零=成功零;

fac(Suc n)= mul(Suc n)(fac n)

}

fib:纳特 -> 纳特{

fib零=成功零;

fib(Suc零)= Suc零;

fib(Suc(Suc n))=加(fib n)(fib(Suc n))

}

您可以在代码本身中看到功能方法和命令方法之间的区别.

结论

不断变化的加密货币和 区块链 意味着我们需要经常保持警惕。对于所有赏金猎人和开发人员,掌握这些新的编程语言绝对至关重要.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me