极简入门:什么是智能合约?

「智能合约」一词是由Nick Szabo在1997年首次提出的,比比特币的出现要早很多。他是位计算机科学家、法学学者,还是个密码译解专家,所以我还是替他跟你「讲人话」好了。

简而言之:他想用分布式记账技术来保存合同。如今的智能合同,就如现实世界中的合同一样。唯一的区别只不过是它们完全是数码形态的。事实上,一个智能合同,其实只是存储在区块链中的一个小小的计算机程序。

智能合同如何工作?

那咱们举个例子来看看智能合同是如何运作的。你可能听说过众筹鼻祖Kickstarter。如果各团队想要制造某种产品,他们可以上Kickstarter网站,建立项目内容,制定资金筹集目标,然后就可以开始等着从那些相信他们理念的人们那里收钱就可以了。

Kickstarter说到底是一个处在产品产出团队和资金支持者之间的第三方。这就是说,双方都只得相信Kickstarter能正确的按照他们的意愿处理他们的钱。如果某个项目成功地筹到了钱,产品项目方就应该从Kickstarter那里拿到这笔钱。在资金支持者那方面,如果款子筹齐了,他们要求钱可以给到项目方。如果款子最终没筹齐,则应该被退还给他们。项目方和资金方都只得信任Kickstarter。

但有了智能合同,我们就不需要类似Kickstarter这样的第三方,也可以建立类似系统了。那么我们就来做一个智能合同来看看。

我们用编程设定这个智能合同必须持有所有收到的款项,直到达到已设定的目标款项。这些对项目投资的人,就可以把他们的钱转到这个智能合同里。如果本项目达到要筹集的目标值,智能合同就自动的把钱转给项目设立人。反之,如果项目最终没有达到筹集资金的目标值,这笔钱又会自动的转回给资金支持者们。挺厉害的吧!

而且,由于智能合同是存储于区块链当中的,因此所有信息都是分布式的用这个技术,没人能对这笔钱说了算。

智能合同真的安全吗?

诶,等下!可我们凭什么相信智能合同啊?

那是正是由于智能合同是存储在区块链上的,它们因此而自然具有的一些有趣的属性,即不可更改性和分布式的特性

不可更改性是指,智能合同一旦成立,则不可被更改。因此,没人能背着你篡改你智能合同里的代码。而分布式的特性是指,智能合同输出的结果是被所在网络中所有的人确认过的。因此,单个人是无法强迫智能合同放款的。因为所在网络的其他人一定会发现这企图,然后标记此行为无效。篡改智能合同几乎成为不可能。

不仅是众筹,智能合同的应用可以涉及很多领域。银行可以用智能合同放贷或自动付款。保险公司可以用智能合同来处理一部分索赔。邮递公司可以用它来做到付等。

看到这里,我相信你应该知道智能合同到底是什么了吧。

目前,只有几个支持智能合同的区块链,其中一个就是以太坊。它的成立、设计,都是专门针对支持智能合同的。编辑这些智能合同使用的是特别的编程语言,Solidity 这个编程语言是专为以太坊创设的,其语法类似于JavaScript。值得注意的是,比特币也支持智能合同,尽管它相对以太坊而言还是非常有限的。

智能合约的应用平台:以太坊

以太坊(Ethereum)是一个开源的有智能合约功能的公共区块链平台。从这个对于以太坊的定义中,我们可以得出几个关键词。第一,以太坊是一个区块链。第二,以太坊具有智能合约功能。所以简单地说,使用以太坊可以让我们快速地起草以一份智能合约。

要使用以太坊起草智能合约,首先需要下载一个叫做「Ethereum Wallet」的应用程序,可以通过下面的链接获取:Releases · ethereum/mist · GitHub

当安装完成之后,该应用程序会自动下载以太坊区块链的所有节点,将其存储在本地。截止到我写这篇文章的时候,一共有577万个区块,这份数据大概有2G的大小,所以可能会消耗比较长的下载时间。

下载完成之后,通过「File」-> 「New Account」菜单创建一个以太坊的账号。

创建账号之后记得备份一下 keystore 文件夹,这个相当于一个秘钥。这个没有了,你里面的所有财产可就都没了。

账号创建完成之后,点击进入账号,可以看到账号的相关信息。

点击「create a wallet contract」再创建一个「以太坊钱包」。

这里我选择了「SINGLE OWNER ACCOUNT」,点击「Create」之后会进入创建合同页面。它需要你输入账号密码进行交易。我们输入密码之后点击「SEND TRANSACTION」进行交易。

正常来说会提示你没有足够的资金可以创建合同。

这是因为创建合同是需要消耗计算能力的,而计算能力是一种资源。在以太坊中,我们用以太币来描述这种资源的价值。到了这里,如果你还想继续玩一玩以太坊,那么你需要自己有一条机器去挖矿或者用我们的人民币去购买。

下一篇文章,我们将说说如何挖矿获取以太币。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

隐私硬币概述

隐私硬币是像比特币这样的加密货币的演变。比特币交易是匿名的,因为每个钱包的所有者都是未知的,但每笔交易都是在公共账本上公开广播和可见的。这意味着指定钱包的所有交...

38150
来自专栏FreeBuf

如何安全地存储密码货币

提醒大家一下,把加密货币存储在交易网站中其实是很不安全的。 ? 在2018年1月份,日本一家名叫Coincheck的加密货币交易平台遭到了黑客的攻击,并导致价值...

42870
来自专栏申龙斌的程序人生

交易被堵?试试这几种办法

12月初的时候,比特币价格爆涨,我并没有打算卖出,而且把币转到冷钱包,准备领BTG糖果给自己发个年终奖。行情太好也很烦人,比特币的交易费也是高得让人无法接受,转...

38280
来自专栏区块链技术指北

理解智能合约

这是「区块链技术指北」的第 22 篇文章。 如果对我感兴趣,想和我交流,我的微信号:Wentasy,加我时简单介绍下自己,并注明来自「区块链技术指北」。同时我会...

43960

了解智能合约

智能合约是由公共区块链所带来的新技术,因为其部分混淆了描述的核心互动,所以这个术语会让人很难理解。智能合约有助于实现分散的体系,它存在于所有被允许的各方之间,不...

38680
来自专栏黑白安全

关于区块链安全的实际性思考

区块链(Blockchain)是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术。区块链是一串使用密码学方法相关联产生的数据块,每...

12520
来自专栏飞总聊IT

比特币和区块链(3):比特币的共识机制

0 上一篇我们详细介绍了不可篡改的账本区块链的数据结构的实现。其核心技术第一是数字签名,比特币采用的是椭圆曲线数字签名算法。第二是加密级别的哈希,比特币采用的是...

36490
来自专栏申龙斌的程序人生

如何开发一款支持多币种的钱包?

除了炒币之外,比较有深度的介入区块链行业的一种办法是开发Dapp,即去中心化的应用。钱包就是一种非常重要的Dapp,可以说是币圈用户的刚需,如果说微信是移动互联...

14940
来自专栏区块链深度

智能合约是怎样运作的?三分钟读懂智能合约

当今社会,执行合约需要耗费大量社会资源。比方说,A、B两家公司签订合同,后来A违反合同条约,导致B损失重大。B想要拿回属于自己的东西,于是向法院起诉。就算B打官...

21340
来自专栏jouypub

区块链的跨链技术

  早期跨链技术包括以瑞波和BTC Relay为代表,它们更多关注的是资产转移;现有跨链技术以Polkadot和Cosmos为代表更多关注的是跨链基础设施;新出...

20720

扫码关注云+社区

领取腾讯云代金券