【区块链笔记】ETH_智能合约(08)

Page content

这篇文章简单的整理了以太坊的权益证明相关的内容。

1.智能合约Smart contract

智能合约有很多种解释,大致就是按照写好的规定(代码逻辑)履行合约项。
智能合约中,没有用到人工智能之类的技术,感觉比起说智能应不如说自动合约或机器合约会更合适。
这么说比较抽象,举个例子我们常用的ATM取款机是一个很好的例子。
我们插入银行卡输入密码和取款金额,取款机就会出钱币。
这一过程就是我们按照约好的规定,履行合约项。
输入200元,你想返悔只要100元是不可能的。取款机只能出200元。

2.不可篡改性

智能合约最大的特性之一是不可篡改性。合约是用代码实现的规则。
所以我们可以定制合约。定制好的合约只要满足条件会自主的履行合约项。
这些执行过程都是很确定的,没有中间项,只有是或不是。
所以不需要第三方权威机构(比如法院)的担保(去信任)。
而且区块链上的合约是完全透明的,因为这些代码都是完全公开。

以太坊很有名的THE DAO事件, 还是人为的干预了该事件。
也证明了,智能合约毕竟也人开发的,没有绝对的不可篡改性。

3.优势

作为和编程的代码,智能合约有高度的定制型,可提供很多便捷的解决方案。
特别是在网上跨区域的协议上,不同国家之间的法律和规定不同的情况下,保障双方的权益是比较困难。

我们常说比特币等电子货币解决了不同国家之间的交易的不便
列如我们想买美国的物品,需要先用人民币换美元,然后需要转给美国账户。这是一个很漫长的过程。
但是我们用比特币买,最多需要等6个区块的确认时间就行了。

智能合约是解决了不同区域之间的协议
列如美国,埃及,瑞士,中国人一起合作,做项目。
当发生分歧时,该如何解决呢? 不同国家有不同的法律和标准,该如何解决这种分歧呢?
这时智能合约能发挥它的作用了。

但没必要把所有的协议都放在智能合约上,因为有些协议是时间的推移是需要修改的。
或是已经有成熟的场景能支持没必要非得用上智能合约。
比如地铁时间很准也很快,但是有些地方是骑自行车去会更快也更方便。
那没必要非得做地铁去了。

4.开发语言

4.1 Solidity

https://solidity-cn.readthedocs.io/zh/develop/index.html

Solidity适用于大多数智能合约平台,如Ethereum、Avalanche、Moonbeam、Polygon、BSC,等等。
这是由于大多数区块链都采用了以太坊虚拟机(EVM),而solidity就是为其而生的。

4.2 Vyper

Vyper是一种基于python的语言。它的应用不如solidity多。

4.3 Rust

它与不能应用在EVM的区块链,如Ethereum、Polygon、Binance Smart Chain等等。
然而Rust可以部署到Solana、Terra等链上,或者在Polkadot构建区块链应用。

5.常用工具

  • MetaMask - 游览器插件钱包
  • Remix,Replit - Solidity在线编辑器
  • Geth - 以太坊客户端(go版本)
  • web3.js - 以太坊javascript api库
  • Ganache - 以太坊客户端(测试环境私链)
  • Truffle - 以太坊开发框架

欢迎大家的意见和交流

email: li_mingxie@163.com