【导读】5月26日-29日,全球首个以大数据为主题的博览会——2018中国国际大数据产业博览会(下称数博会)在贵州贵阳召开。区块链的热度有增无减,在现场的多个展览和多个论坛会议中,区块链都是炙手可热的主角。
疯狂比特币让人们认识区块链技术
2008年 11 月 11 日,中本聪发表了《比特币白皮书——一种点对点的电子现金系统》的文章,在文中描述了一个在线支付能够从一方直接到另一方, 中间不需要经过第三方机构的电子交易方案,而这个方案正式建立在基于区块链的技术上。
随着比特币 7 年近140 万倍的疯狂过后, 比特币背后的去中心化系统——区块链技术表现出了颠覆行业的潜力, 并且带来全球范围内的关注。
区块链本质上是一个去中心化的分布式账本系统,通过将该账本的数据储存于整个参与的网络节点中实现账本系统的去中心化。
去中心化式系统示意图
其中区块按照时间顺序先后生成且每一个区块都记录着生成时间段内的信息, 而由整个区块连接起来的链条代表了信息合集,在关于区块之间的连接上, 每一个区块分为区块头与区块体, 区块头记录前一区块信息、 时间戳、 随机数和目标哈希从而将前后区块链连接在一起,区块体则记录交易信息, 形成一个完整的区块结构。
在有关于进行交易的机制与流程上, 参与者有一份公私钥, 公钥公开,私钥视为密码, 通过对交易对手的公钥签署一个数字签名, 并将签名附加到电子货币的末尾, 参与者的电子货币即发送给交易对手, 交易对手通过对数字签名进行检验就能够验证所有者。
区块链货币交易示意图
新的交易将会向全网广播, 每个节点都会将收到的交易纳入区块中但此时还没有通过验证,之后每一个参与者需要独自去解出一个足够难度的工作量证明来证明其合法性,一旦找到这样一个工作量证明且该区块中的所有交易都是有效且之前从未存在过的, 其他节点则会认同其有效性,此时新的区块将会加在该区块的末端以延长链条。
区块链的四大特性
区块链技术与传统相比具备有去中心化、信息不可篡改、匿名性和开放性的特点,现实中的应用都是围绕其特性进行拓展:
1、去中心化:
传统行业中数据往往存储在一个集中的大型数据库中,这不可避免带来安全性与隐私性问题,而区块链技术采用的分布式账本结构使得每个参与节点都能够存储所有的交易信息,避免了单一数据库损坏丢失带来的巨大代价。
2、信息不可篡改性:
在区块链下一笔交易只有通过全网广播认证才能够写入账本并存储于每个参与节点中,因此如果要篡改某类信息意味至少要控制 51%的节点才能完成,而在现实中几乎是不可能的。
3、匿名性:
区块链的匿名性主要表现在非实名上,链上的交易通过公钥地址进行,而公私钥完全可以与现实身份信息无关。
4、开放性:
在以比特币为代表的公有链上,整个分布式账本系统对任何人都是公开透明的,除了个人的私钥信息以外,任何人都可以查询区块数据信息和开发相关应用;而私有链则可以通过设定不同权级针对性的开发。
区块链的架构设计
从架构设计上来说,区块链可以简单的分为三个层次,协议层、扩展层和应用层。其中,协议层又可以分为存储层和网络层,它们相互独立但又不可分割。
协议层
所谓的协议层,就是指代最底层的技术。这个层次通常是一个完整的区块链产品,类似于我们电脑的操作系统,它维护着网络节点,仅提供Api供调用。通常官方会提供简单的客户端(通称为钱包),这个客户端钱包功能也很简单,只能建立地址、验证签名、转账支付、查看余额等。这个层次是一切的基础,构建了网络环境、搭建了交易通道、制定了节点奖励规则,至于你要交易什么,想干什么,它一概不过问,也过问不了。典型的例子,自然是比特币,还有各种二代币,比如莱特币等,本书介绍的亿书币也是。这个层次,是现阶段开发者聚集的地方,这说明加密货币仍在起步当中。
从用到的技术来说,协议层主要包括网络编程、分布式算法、加密签名、数据存储技术等4个方面,其中网络编程能力是大家选择编程语言的主要考虑因素,因为分布式算法基本上属于业务逻辑上的实现,什么语言都可以做到,加密签名技术是直接简单的使用(请看书中相关的加密解密文章,不建议自由发挥,没有过多的编码逻辑),数据库技术也主要在使用层面,只有点对点网络的实现和并发处理才是开发的难点,所以对于那些网络编程能力强,对并发处理简单的语言,人们就特别偏爱。也因此,Nodejs开发区块链应用,逐渐变得更加流行,Go语言也在逐渐兴起。
上面的架构设计图里,我把这个层面进一步分成了存储层和网络层。数据存储可以相对独立,选择自由度大一些,可以单独来讨论。选择的原则无非是性能和易用性。我们知道,系统的整体性能,主要取决于网络或数据存储的I/O性能,网络I/O优化空间不大,但是本地数据存储的I/O是可以优化的。比如,比特币选择的是谷歌的LevelDB,据说这个数据库读写性能很好,但是很多功能需要开发者自己实现。目前,困扰业界的一个重大问题是,加密货币交易处理量远不如现在中心化的支付系统(银行等),除了I/O,需要全方位的突破。
分布式算法、加密签名等都要在实现点对点网络的过程中加以使用,所以自然是网络层的事情,也是编码的重点和难点,《Nodejs开发加密货币》全书分享的基本上就是这部分的内容。当然,也有把点对点网络的实现单独分开的,把节点查找、数据传输和验证等逻辑独立出来,而把共识算法、加密签名、数据存储等操作放在一起组成核心层。无论怎么组合,这两个部分都是最核心、最底层的部分,都是协议层的内容。
扩展层
这个层面类似于电脑的驱动程序,是为了让区块链产品更加实用。目前有两类,一是各类交易市场,是法币兑换加密货币的重要渠道,实现简单,来钱快,成本低,但风险也大。二是针对某个方向的扩展实现,比如基于亿书侧链,可为第三方出版机构、论坛网站等内容生产商提供定制服务等。特别值得一提的就是大家听得最多的“智能合约”的概念,这是典型的扩展层面的应用开发。所谓“智能合约”就是“可编程合约”,或者叫做“合约智能化”,其中的“智能”是执行上的智能,也就是说达到某个条件,合约自动执行,比如自动转移证券、自动付款等,目前还没有比较成型的产品,但不可否认,这将是区块链技术重要的发展方向。
扩展层使用的技术就没有什么限制了,可以包括很多,上面提到的分布式存储、机器学习、VR、物联网、大数据等等,都可以使用。编程语言的选择上,可以更加自由,因为可以与协议层完全分离,编程语言也可以与协议层使用的开发语言不相同。在开发上,除了在交易时与协议层进行交互之外,其他时候尽量不要与协议层的开发混在一起。这个层面与应用层更加接近,也可以理解为B/S架构的产品中的服务端(Server)。这样不仅在架构设计上更加科学,让区块链数据更小,网络更独立,同时也可以保证扩展层开发不受约束。
从这个层面来看,区块链可以架构开发任何类型的产品,不仅仅是用在金融行业。在未来,随着底层协议的更加完善,任何需要第三方支付的产品都可以方便的使用区块链技术;任何需要确权、征信和追溯的信息,都可以借助区块链来实现。我个人觉得,这个目标应该很快就能实现。
应用层
这个层面类似于电脑中的各种软件程序,是普通人可以真正直接使用的产品,也可以理解为B/S架构的产品中的浏览器端(Browser)。这个层面的应用,目前几乎是空白。市场亟待出现这样的应用,引爆市场,形成真正的扩张之势,让区块链技术快速走进寻常百姓,服务于大众。大家使用的各类轻钱包(客户端),应该算作应用层最简单、最典型的应用。很快,亿书将基于亿书网络推出文档协作工具,这个就是典型的应用层的产品。
限于当前区块链技术的发展,亿书只能从协议层出发,把目标指向应用层,同时为第三方开发者提供扩展层的强大支持。这样做既可以避免贪多,又可以避免无法落地,是真正理性的开发路线。因为纯粹的开发协议层或扩展层,无法真正理解和验证应用层,会脱离实际,让第三方开发者很难使用。如果仅仅考虑应用层,市面上又找不到真正牢固、易用的协议层或扩展层的产品。所以,我们只好全面发力,采取完全开源开放的态度,通过社区的力量,共同去做一件有意义的事情,也算为中国区块链技术发展做点技术积累和微薄贡献。
区块链技术的发展阶段
迄今为止,区块链技术发展过程大致经历了 3 个阶段:
区块链 1.0——数字货币时代:
在比特币提出初期,人们重点关注于所提出的货币去中心化和点对点支付的特点,随后世界逐步开始重视比特币的底层技术——区块链,其背后隐藏的分布式账本技术能够巧妙的解决现实中的一些问题。
区块链 2.0——以智能合约代表:
随后对区块链技术的进一步认识,出现将合约代码化,利用程序自动执行的智能合约(以太坊),并随后展开了以分布式为特点的分布式应用(DAPP),开始将区块链与现实环境结合展开探索。
区块链 3.0——未来区块链的大规模应用
在基于 2.0 的认识上,区块链将进一步应用于除货币和金融以外,包括不限于政府、能源、健康、文化和艺术上。
区块链技术的应用
随着对区块链技术的学习与认识过程的不断发展, 针对区块链在现实中的应用实质上是围绕区块链特性与行业“痛点”结合来展开探索,在解决第三方信任、提高商业效率、 增强网络安全、提高信息透明等方面有着十分广泛的应用空间,并由此提出了区块链+的概念。
1、金融应用不断成熟,跨境支付与资产证券化最先受益
区块链基于去中心化、点对点传输的分布式账本技术避免了记录丢失问题, 以及有工作量证明机制和基于时间戳的回溯机制维护了数据传输过程中的安全性问题, 使得区块链天然在第三方参与频繁且信息安全性要求高的金融行业有着很强的适应性, 能够帮助货币金融行业简化流程、降低成本、提高效率甚至于极大改变现有金融行业的交易模式。具体而言,区块链技术可应用于跨境支付、资产证券化和保险方面。
2、区块链+版权&文娱——行业“痛点”与特性的绝配
在对知识版权日益尊重但互联网版权难以受到保护的今天,如何方便快捷的注册版权去维护自身权益成为这一行业的痛点,传统的纸质版权文件有花费时间长、纸质保管难的问题,而利用区块链技术进行在线申请,即时申请即时存证,难以伪造与篡改,还可通过赋予给注册者唯一的数字 ID 可以随时提取版权信息。
在文娱与金融的交叉应用方面,由于文娱产业特殊性,个人或中小型制作团队很难去对接投资机构或资产交易方,而在法律许可的范围下,利用区块链技术通过资产上链整合进区块链平台,一方面可以在相关机构监管下发行数字货币进行融资;另一方面,通过分布式账本技术完成在线的资产交易过程,公开透明的账本能够记录每一次交易情况。
3、区块链+供应链——市场潜力巨大, 防伪溯源落地可期
对于现代企业而言,随着供应链条的不断延伸,企业很难去掌握全部的供应链信息以及自身所处的供应链地位,大多数企业仅仅能够了解自身上下游最近企业的情况。因此如何做到权责清晰,如何做到信息透明可追溯成为行业的“痛点”问题,而如果考虑区块链公开透明和时间可追溯的分布式账本技术,供应链条上的任何一方都能够了解产品状况,那么能够很方便的跟踪和管理各个环节。
以复杂的全球食品供应链为例,该供应链上涉及到了原产地、仓储、运输、制造、分销最终到商店, 供应链长、不同环节往往属于不同地区,其所用的记录与系统也不尽相同, 因此一旦涉及食品安全很难追索到底是哪个环节出了问题, 也无法理清楚权责问题。
4、区块链+物联网——技术准备基本成熟,静待物联网未来发展
“十三五”期间,工信部发布《物联网发展规划(2016-2020 年)》并于 2017 年 6 月下发《全面推进移动物联网(NB-IoT)建设发展的通知》要求到 2020 年我国 NB-IoT 网络的基站规模要达到 150 万个, NB-IoT 连接总数超过 6 亿,在国家政策的支持下,物联网市场有望迎来爆发。有数据显示,在 2017 年大约有 84 亿台接入了互联网的智能设备,麦肯锡预测这一数字在 2025 年将达到 250 亿台,经济规模高达 6 万亿,尤其是 5G 商用加速落地与车联网、无人驾驶的火热,物联网的未来发展值得期待。
由于物联网“物物互联”的属性天然与分布式网络联系在一起,尤其是物联网的安全性日益凸显的未来,区块链技术去中心化的特点为防止物联网传输数据被篡改提供了一种内部的解决方案。
区块链的发展就是要能够为人民生活带来福祉,使得区块链技术真正进入百姓家。“区块链真正要落地应该到下一个阶段是可触的,应该像微信一样让老百姓每天用到,这才是区块链进入每一个百姓家,让每一个人接触到真正阶段,也是真正的落地阶段。”
要推动区块链技术落地,促进人民生活质量的提升,促进实体经济更好发展。
推荐阅读: