前言
在本文之前已经对区块链1.0–比特币进行简单的阐述,空闲之余对以太坊的相关材料进行整理,最后以通俗的方式讲述区块链2.0相关技术。关于智能合约的细节说明
- 比特币的优缺陷:比特币有那些优缺陷
- 区块链1.0和区块链2.0之间的差异: 区块链1.0和区块链2.0之间的差异
- 智能合约:什么是智能合约
- 应用: 基于以太坊的相关应用
简介
近期国内主流互联网公司纷纷推出基于区块链的相关产品。因此,本文对当下比较火热的区块链2.0技术–智能合约,进行相关整理,并以白话的方式对整个差异进行阐述。因之前对区块链1.0略有所了解,我们在理解智能合约上会更加容易一些。
比特币的优缺陷
通过之前的文章我们可以知道,比特币作为一种点对点的电子现金系统,相对于传统货币具有如下几个优势:
- 数字货币:比特币是一种数字货币,通过网络来支付,相比纸币等传统货币具有很大的灵活性。
- 点对点支付:比特币可以像纸币一样进行点对点支付,无需可信的第三方介入。
- 防止双重支付:传统的数字货币难以在没有可信第三方的情况下防止双重支付。
- 交易记录不可更改:交易一旦成功,就永远无法撤销或更改,保障收款方的利益。
然而比特币也有不少缺点: - 资源消耗大:需要大量的计算机进行计算
- 比特币数量有上限:比特币数量上限为2100w,超过这个数值后,不会产生新的比特币
- 转账确认时间长:比特币钱包初次安装时,会消耗大量时间下载历史交易数据块。而比特币交易时,为了确认数据准确性,会消耗一些时间,与p2p网络进行交互,得到全网确认后,交易才算完成。
不可避免,因为比特币的一些缺陷,技术爱好者们,对区块链1.0进行改进,因而就有了2.0版本。
区块链1.0和区块链2.0之间的差异
相较于区块链2.0,区块链1.0虽然有脚本支持,但是也有不少诟病:
- 缺少图灵完备。脚本不支持循环语句
- 价值盲区。UTXO脚本无法为账户额度提供精细的控制。
- 缺少中间状态。UTXO只能显示已花费或未花费两个状态。
- 区块链盲区。无法很好的利用UTXO的数据,如随机值,时间戳等来进行更多潜在衍生性的功能活动。
而区块链2.0因其具有图灵完备的语言以及定位于平台,可以实现支持多种应用的场景,而受到大家的期待。在区块链1.0中,产生一个新块,需要耗费10多分钟,而区块链2.0仅仅需要十几秒就可以生成一个新块。
在整体上,区块链2.0多了一个账户的概念,并且账户分外部账户和内部账户。外部账户由私钥控制,而内部账户是由合约代码进行控制。
其账户的数据结构分三部分,分别是交易计数、以太币余额、以及合约代码。从交易数据结构上看,整个交易数据多了如下几个字段。
正是因为这些字段的支持,使得区块链2.0上的矿工维护的不仅仅是交易记录,而是维护的是所有账户的余额。
智能合约
区块链2.0的一个特性就是支持智能合约。那么什么是智能合约?
智能合约是由时间驱动,具有状态,获得多方承认的,运行在一个可信、共享的区块链账本之上的,且能够根据预设条件自动处理账本上资产的程序。他的核心优势就是利用程序算法替代人进行仲裁和执行合同。正是因为这种特性使得智能合约变相成为一个分布式的程序。能够对更多潜在的业务场景进行支持。
应用
目前区块链2.0在金融类场景的应用较多,如广为认知的各种货币。除此之外还有对冲合约、储蓄钱包、遗嘱、资产竞拍、 ICO 代币等;在非金融领域如在线投票、去中心化治理、域名注册、物流、供应链、医药追溯都有很好的支持。
总结
本文仅仅从表面上,对区块链1.0和2.0进行大致的介绍。如果对具体的技术感兴趣,可以阅读源码以及相关白皮书进行了解。随着技术不断的升级,智能合约也会增加更多的功能和特性,而近一个月区块链3.0技术–EOS,也已经面世,相信区块链技术在可信方面方便人的同时,也创造更多的可能。