智能合约及其运作机制

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进行交易,使用智能合约就无须把资金转入中央钱包。你的资金一直存放在你专属的以太坊钱包中,所以非常安全。

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

 

中心化系统违反区块链科技最基本原则

airport-bank-board-534216.jpg

 

区块链科技让使用者能够成为“自己银行的老板”,但大多数售卖数字货币的交易所却是完全中心化的。

这是目前困扰这个行业的严重问题。中心化的交易所屡受黑客袭击,比如Mt.Gox被盗取850,000个比特币、Bitfinex被盗取120,000个比特币,还有最近的Bithumb案件,尽管Bithumb是当时成交量第五大的交易所,也没能避免被黑客袭击的厄运。

这些事件都表明,无论是多么知名的交易所,都有被黑客攻击的可能。因为随着比特币价格的持续上涨,袭击交易所可能是有史以来最“划算”的犯罪行为了。

道理很简单,就像传统的机构一样,当人们把所有的钱都集中存储在一个或几个账户中,就很容易成为盗贼的目标。

虽然传统的机构使用重重措施来避免这样的攻击,却仍然很脆弱。但至少传统机构给客户提供保障,如果资金被盗,机构会把被盗取的部分补上。

但对于大多数数字货币交易所来说就是另一回事了。如果有人袭击交易所,用户便永远失去了所有资金。他们会从交易所得到补偿吗?可能吧。什么时候?谁知道呢。

当然,对于这个问题肯定有解决的办法。不过,当你把宝贵的工资交到中心化的银行手中,你还能自信地叫自己区块链支持者吗?我们来看看其他的选择。

 

完全去中心化的交易所如何利用区块链科技?

 

理想

与中心化交易所不同,去中心化交易所不受某个主体控制,而是分布在整个区块链网络中。这确保了去中心化的交易所不持有任何客户的资金或信息,因此也就不可能被攻击或被关闭。

它们利用某个区块链智能合约系统为交易委托配对。

完全去中心化的交易平台承诺给用户一个自由世界,在这里,用户是自己银行的主人,不受任何第三方(比如政府)的审查。听起来很棒是吧,那为什么没有被更广泛地应用呢?

现实

易用性

首先,对于消费者来说区块链技术本身就不易理解,完全去中心化平台使用起来更是十分困难。中心化的平台,比如Coinbase,就是因为简单好用而吸引了大量用户,从而迅速发展。用户也不需要理解公钥或私钥,只要连接到银行账户就可以购买数字货币了。

所以很不幸,虽然完全去中心化的平台十分吸引人,但除了早期采用者,大多数消费者并不会试图去理解并使用。我们又回到了原点,也就是中心化的权威机构。

功能

其次,对比中心化的竞争对手,去中心化的交易所提供十分有限的功能。

由于完全依赖分布式网络,交易所无法提供某些交易功能,比如止损委托和限价委托,而大多数的交易者都会常常用到这两项功能。

另外,由于我们接下来要提到的原因,去中心化交易所提供的可交易数字货币种类也非常有限。

缺乏流

由于上述两项缺陷,使得去中心化交易所的交易量不够,因而无法获得交易所应具备的流动性。交易者常常难以找到交易对手,结果错失良机。

一般来说流动性越小,交易者找到交易对手的可能性就越小。

目前状况

可能有人会问,为什么这些本应该支持去中心化系统的交易所却使用着中心化的系统?

通过上述分析,很明显区块链技术和它的生态系统还不能支持复杂的功能,并且无法提供用户想要的易用性。

可能在未来,全面的去中心化是可以实现的,这也是我们所憧憬的未来,但至少现在这还是不可行的。

所以,怎么才能做到享受中心化系统性能的同时掌握自己的资金呢?我们来看看混合模型吧!

混合式交易

混合模型同时具有去中心化和中心化模型的优点。使用者可以在享受中心化平台的齐全功能和易用性的同时,成为自己资金的唯一管理者。

再没有交易所盗窃案,没有政府机构的干预,完全的财务自由。当把自由和权力结合,所造就的混合式交易成为人类金融史上最大的革命。而你,可以从中获益。那这一切是怎么实现的呢?

去中心化托管

首先,我们必须理解“去中心化托管”的概念。使用区块链创建智能钱包,混合交易平台-如BBOD-通过采用智能合约的特定功能从个人分布式钱包结算盈亏。

在这里,创建一组明确的规则,当这些规则被满足时时任务自动完成。去中心化托管系统中,任务是每24小时结算一次盈亏。

本质上来说,这样的个人钱包是不可侵入的,因为它们分布于整个选定的区块链生态系统。BBOD使用的是以太坊区块链生态系统,要想袭击某个账户,必须同时袭击分布于各处的所有的账户,就像区块链本身,当网络分布于几百万台电脑中,攻击某一环节变成了不可能实现的举动。

因此,BBOD的用户以十分安全的去中心化方式完全控制自己的资金,同时可以选择在任何时间取出资金。

中心化交易引擎

其次,我们必须理解“中心化交易引擎”的概念。在这里,混合式交易使用中心化交易所常用的机制对交易进行链外结算。

比如,BBOD使用GMEX为BBOD定制的交易引擎,每秒可以处理超过100万条交易,延迟时间不到25微秒。

这可以保证两方交易者之间的交易速度如闪电般快速,避免去中心化平台经常出现的交易问题。另外,BBOD的用户界面十分友好,让各个级别的交易者都能轻松上手。

结论

本文探讨了中心化交易所的缺陷,完全去中心化交易所的优点和缺点,以及混合式交易平台(如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钱包。