智能合约及其运作机制

smart contracts.jpeg

当我们和同事或朋友讨论区块链时,可能都提到过“智能合约”这个概念,但是却不一定完全明白智能合约对我们的社会经济体系有着怎样的冲击。

我们在博客中提到过数次,区块链科技是革命性的。

与其自称为某个特定数字货币的极端主义者,我们不如自称为区块链/数字货币极端主义者。

回到这个话题,你现在应该已经知道了什么是区块链技术和它的运作机制,如果还不了解,欢迎去看看我们之前的博客。现在,让我们深入研究一个更有趣的话题 – 什么是智能合约?

什么是智能合约?

引自维基百科

“智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易。这些交易可追踪且不可逆转。”

从上述定义可以看出,顾名思义,智能合约是可被编写、可追踪、不可篡改(除非合约中明确提到)、无需第三方认证的合约。

市面上有多家区块链平台都支持创建各种用途的智能合约。比如Ethereum、Hyperledger fabric、R3 Corda、Stellar、Achain等。

智能合约如何运作?

让我们慢慢理解智能合约的运作方式。

智能合约由密码学家和计算机科学家尼克·萨博(Nick Szabo)在1994年首次推出。要简单理解智能合约的概念可以看看自动售货机。当你选择某个零食并向机器里投放相应金额,零食就会自动弹出,这很神奇不是吗。但是,有时机器会出现故障(原因是编写的程序质量不佳和系统的中心化),如果用区块链技术来解决,就简单有效得多了。

想要智能合约无缝运行,需要几个基本条件:

  1. 一个区块链平台 – 使其能够在链内发起和确认转账
  2. 公钥和私钥 – 智能合约必须能够访问其计划控制的私钥
  3. 条件 – 智能合约必须有明确的条件,以便让转账发生(一个简单的“if loop”语句就能做到)

智能合约在各种领域都十分有用,人们可以利用它迅速地创建安全标准化的合约。

智能合约的具体应用案例数不胜数,在一篇博客里难以讲完,但我想试着讲解尽可能多的案例。

我们用3个案例来看看智能合约不同程度的实际应用

  1. 极少应用
  2. 部分应用
  3. 完全应用

让我们来看看在实际生活中智能合约可以在哪些领域被应用。先来看看优步(Uber)。优步被看作是传统出租车行业的破坏者,也可能是全球最大的出租车服务提供者。智能合约有干扰这些破坏者的潜力。

  1. 极少应用

在这个例子里,我们变更优步的付款系统。理想情况下,你把信用卡添加在优步支付系统中,当你到达目的地,优步会直接从信用卡上扣款。

如果你不喜欢信用卡支付,也可以按照你手机上显示的金额直接付现金给优步司机。优步通过行程距离和等待时间,用自己的算法计算应付多少费用。

现在通过智能合约,这一切都能完全自动实现。

每次行程结束后,优步向与你账户相连接的智能合约发送信息,费用会从智能合约上自动扣除。这和目前的信用卡自动扣款相似,但智能合约更加安全。

  1. 部分应用

在部分应用的例子中,我们将智能合约的应用升级,直接以自动驾驶取代人工驾驶。

随着特斯拉(Tesla)、优步、谷歌对自动驾驶汽车的研发,相信不久的将来,就能看到自动驾驶私人汽车和出租车在道路上奔驰了。

现在,想象你订了一辆优步,结果来了一辆自动驾驶汽车。特定程序被编写在智能合约上,在行程结束时,费用自动从你的数字货币钱包里扣除。只有在付款后,车门才会打开。

  1. 完全应用

这个例子些乌托邦且看起来过于遥远,但也不能完全否定其发生的可能性。

在这个情况下,优步不属于任何人,每辆车自己就是一个去中心化的自治体。这个概念来自Andreas Antonopoulos的《钱联网(Internet of Money)》(十分推荐)。

考虑到自动驾驶汽车没有主人,所有收取的费用都用来加油和做维护,并存下多余的钱为系统升级和其他情况作准备。

由于汽车没有主人,所以收取来的费用由汽车自己决定用在哪些方面。

当你乘坐这样的交通工具,每次行程结束时,智能合约自动从你的数字钱包扣掉费用,并把费用转给DAE(去中心化自治体),也就是你搭乘的优步。

优步用这笔钱加油和做维护,这时又要用到智能合约。

优步或自动驾驶汽车只是案例之一。你也可以在智能合约上进行大量交易,包括房地产交易。

智能合约在实际生活中有很多应用。现在人们无法想象没有互联网的生活,在未来人们会无法想象没有智能合约的生活!

另一个实际生活中的应用是BBOD利用智能合约在以太坊钱包上进行交易结算。

我们建立了一个非托管制的智能合约系统,当你在BBOD进行交易,使用智能合约就无须把资金转入中央钱包。你的资金一直存放在你专属的以太坊钱包中,所以非常安全。

我们希望这篇博客能帮助你简单了解智能合约如何运作。在今后的博文中,我们会更深更广地探讨区块链生态系统。请继续关注!

 

如何使用MetaMask创建以太坊钱包

我们将以Google Chrome为例演示如何安装MetaMask。之所以选择Chrome是因为对比其他浏览器,Chrome的使用更广泛。但如果你使用的是Firefox 或 Opera,步骤也基本一样。

什么是MetaMask?

MetaMask是支持Chrome, Firefox和Opera的浏览器扩展。使用MetaMask可在浏览器里创建自己专有的以太坊钱包,从而使用MetaMask轻松转账。

第一步 访问https://metamask.io/


点击下图标示出的“GET CHROME EXTENSION(取得CHROME扩展)”键。

 You can select Firefox or Opera right below the highlighted box if you use those browsers. The steps that follow are similar. You will be asked to add the MetaMask Extension to your respective browser.

若使用Firefox或Opera浏览器,可点击按键下方的“Firefox”或“Opera”,之后的步骤基本一致。

第二步:安装MetaMask扩展


点击“ADD TO CHROME(添加扩展)”键,添加至你的chrome浏览器中。

 The browser will check the compatibility and a dialogue box will pop up as shown below. Click on the Add Extension button to proceed.

浏览器会检查兼容性,同时如下图所示的对话框。点击“Add Extension(添加扩展)”键。

Picture3.png

第三步:成功添加MetaMask!


恭喜!现在你已经在浏览器中成功添加了MetaMask。

第四步 打开MetaMask


开启一个新的标签页,点击浏览器右上方的橘色狐狸图标,如下图所示。

Picture5.png

第五步 接受条款


点击图标会自动打开一个窗口,此时“Accept(接受)”不可点击,你可以仔细阅读条款或直接拉到窗口最下方,如下图所示。

 Note - let's be honest, who reads terms and conditions anyway? Well, terms and conditions are extremely important because they provide information about the product and terms of use. Never ignore them.

注意-你可能会说,谁会认真读这些条款呢?其实条款十分重要,因为它详细说明了产品的相关信息和使用条件,永远不要略过条款。

读过使用条款后,点击下图标注的“Accept(接受)”键。

Picture7.png

点击后,将出现下图所示的条款,阅读后点击“Accept(接受)”键。

隐私政策

Picture8.png

钓鱼警告

Picture9.png

第六步 创建钱包


你必须输入一个至少包含8个字符的安全密码。

Picture10.png

在输入密码后、点击下图所示的“create(创建)”键前,试着在小狐狸上移动鼠标看看会发生什么?很可爱的设计吧!

Picture11.png

第七步 钱包种子单词


现在你会看到12个单词,这十二个单词可帮助恢复MetaMask账户,所以请把它们存在安全隐秘的地方。下图中,除了“economy”,我选中了所有其他单词。你可以把这些单词复制到某个安全的地方,也可以把它们储存到电脑文档中。下面两个按键代表了这两个选项。

Picture12.png

第八步 恭喜!钱包创建成功!


现在你有自己的MetaMask钱包啦!

 Clicking on each of the options mentioned will perform a particular action.

上图每一个选项都代表着不同的任务。

  • View account on Etherscan(浏览Etherscan上的账户)” – 点击这个选项页面会跳转到io,在这里可以看到在你公共地址上产生的所有转账记录。
  • Show QR Code(显示QR码)” – 点击这个选项以QR码的形式显示你的公共地址。
  • Copy Address to Clipboard(复制地址)” – 点击这个选项复制你的公共地址。
  • Export Private Key(导出私钥)” – 这个选项十分重要,拿到私钥意味着可以进入你的钱包。

若想编辑钱包名称,可点击“edit(编辑)”选项。如下图所示,我把自己的钱包命名为“My First ETH Account(我的第一个ETH钱包)”。

 

第九步 公钥和私钥


你可以看到钱包的公钥和私钥。记住,不要和任何人分享你的私钥。

下图显示的就是公钥和私钥(我把私钥涂黑因为不想让任何人看到)。

公钥

私钥

 

第十步 MetaMask钱包总览


现在,你可以直接在浏览器里进行ETH转账了!试着点击一下“BUY(购买)”和“SEND(发送)”键吧!

 

第十一步 购买/发送ETH


如下图所示,你可以额从Coinbase或Shapeshift购买ETH。

COINBASE

Picture18.png

SHAPESHIFT

Picture19.png

你也可以向其他人发送ETH,前提是要有明确的地址和数量。

Picture20.png

以上就是MetaMask设置指南。

希望这个简要的指南帮助你在浏览器上成功地创建了MetaMask ETH钱包。