【区块链开发指南】序言

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012183589/article/details/78631427

申明:本系列文章皆是关于《区块链开发指南》一书的摘选与总结,希望能够普及区块链技术,推动区块链行业的健康发展。

2008年底,中本聪在他的论文中提出一个点对点电子支付系统的构想,并于2009年实现了比特币系统的原型。这个系统可以使地球上的任何人通过互联网以极致的效率进行货币的交换和价值的传递,无需任何第三方机构。而比特币也没有发明任何新的技术或者算法,其中涉及的技术如POW、公钥系统、数字签名等都是已经成熟的技术。神奇的是,中本聪通过对这几项技术的组合解决了无需可信第三方的数字资产所有权问题。从广义上来讲,这些技术和思想的集合也就是今天我们讨论的区块链。

区块链究竟是什么?

狭义的说,区块链就是比特币的底层技术;不过经过七年的发展,区块链已经不再“依附于”比特币,而是独立地发展成为了一种革命性技术,比特币则是区块链最成功的应用。从技术层面来看,区块链是一个基于共识机制、去中心化的公开数据库。共识机制是指在分布式系统中保证数据一致性的算法;去中心化是指参与区块链所有的节点都是权利对等的,所有人都可以平等的参与区块链网络;公开数据库是指所有人都可以在任何时候查看区块链上保存的数据信息。基于以上特性,可以总结出:区块链由许多对等的节点组成,通过共识算法保证区块数据和交易数据的一致性,从而形成一个统一的分布式账本。

从价值层面来看,区块链是一个价值互联网,用于传递价值。目前的互联网仅用来传递消息,但是还不能用来可靠的传递价值;而区块链却可以用来在世界范围内自由传递价值,并且还能够保证不被双花、不被冒用。从这个角度说,区块链是记录价值、传递消息和价值本身转移的一个可信账本。

从区块链的发展路线来看,创新点主要集中在共识机制、智能合约、隐私安全和可扩展性上。

共识机制(Consensus)

中本聪在提出工作量证明(POW)机制作为比特币的共识算法之后,有一部分人认为这个算法过于消耗资源,于是就有了Sunny King设计的股权证明(POS)机制,后续又发展到Bitshares改进的股份授权证明(DPOS),并衍生出了更多的类POS机制。从公有链的角度来看,共识算法就是公平和效率孰轻孰重的决策,关键在于如何从社会学、从人性化的角度去设计奖励机制。而另一个领域,金融机构的关注点在于效率、不可篡改性以及对应用的支持,由于不需要链上的代币作为奖励,因而PBFT、PAXOS、RAFT等传统的分布式一致性算法成为首选。由此区块链也就分为了两种:公有链和联盟链。公有链任何人都可以参与决策、查看交易信息等;而联盟链则设置了访问权限,用户也大多是机构或者公司,需要区块链契合自身的业务模式。

智能合约(Smart Contract)

对智能合约的探索是出于对比特币中低效的脚本系统的不满,该脚本使用的是非图灵完备的堆栈语言(FORTH),并且只能实现有限的功能。一些智能合约研究者一直追求在区块链上运行强大的机器语言,让每个用户都能见证其运行的过程和结果,实现“程序即规则”(Code is Law)的智能环境。从图灵完备的以太坊EVM、超级帐本ChainCode到Chain平台的ChainCore,研究者的目标是在有限的存储空间中设计一个完备合约语言和高效的底层虚拟机,甚至将传统开发语言(c++、java等)移植到区块链上。

隐私安全(Privacy)

区块链中的个人隐私保护是强需求,特别是金融机构要使用的区块链,保护客户隐私是基本的合规条件;但同时还不能产生绝对的隐私,必须要让监管者知道交易内容。公有链中,ZCASH使用了零知识证明来隐藏交易双方在区块链中的信息;门罗币(Monero)使用了环签名和隐蔽地址技术来保护交易接收者的身份以及避免交易追踪。联盟链中则主要采用数字证书来认证用户,隔绝一切非相关用户的访问。在增强隐私保护的同时必然要牺牲系统的性能,而用户的隐私又是必须的,所以这两者之间的平衡也是值得关注的问题。

可扩展性(Scalability)

区块链上的数据膨胀问题是一直以来备受关注的问题,可扩展性要解决的是如何尽可能高效的存储不可篡改的区块链数据,目前主要有一下两种方案:

  • 从交易层把部分交易迁移到子区块链上运行,即侧链、闪电网络。
  • 从减少存储上着手,对原始数据进行裁剪分片,研究更安全的轻量级客户端,只存储少量数据也能正常工作。

猜你喜欢

转载自blog.csdn.net/u012183589/article/details/78631427