
定义: 区块链由一个共享的,容错的分布式数据库和多节点网络组成。
在区块链数据库中,
在区块链多节点网络中,
通过区块链可以实现
潜在应用:
可以认为,一切存在中心化账本的技术都可能有区块链应用前景,这是一种效率和信任的交换,但是需要注意这种交换不一定所有应用都值得。
应用实例:
构成技术:
P2P技术: 点对点数据传输,BT协议的支撑技术。
共识算法:区块链能够保证不可篡改,数据可信的核心。
椭圆加密算法,公私钥体系,数字签名等密码学算法。
Merkle树:区块链数据储存的数据结构。
下文中将介绍我认为不可替代的一些技术: 共识算法,加密/签名,P2P。更多的请各位自己在网上查询。
个人觉得,区块链不是一项新技术,而是多种网络技术组合来解决一个新问题,而这个新问题的核心是共识算法。
我知道在知乎回答区块链问题一定要做好唇枪舌战的的准备,毕竟知乎的“政治正确”是区块链都是骗子,而“区块链”这个话题甚至已经变成了一个各种公众号炒币的金融话题,完全脱离了本质。但是我思来想去还是决定把我自己理解的区块链技术写下来,毕竟这是有可能会改变一些东西的一项技术。
请注意,本文只想以一种客观的角度来描述区块链技术,请评论也仅限于技术问题,不讨论政治,哲学和其他,我保留删评论的权利。
区块链的最主要技术进步是,实践证明了在同步通信的情况下,参与节点不受限的拜占庭问题近似可解。谈到区块链现在呈现鲜明的两派,毁誉参半。这是因为早期比特币参与者,所谓的币圈大佬良莠不齐,诈骗者居多造成的,首先在这里有必要澄清一些过度传销引起的误解。
2009年, Satoshi Nakamoto建立了第一个区块链系统,比特币,这是一种点对点电子现金系统,主要为了支持资金交易。此后,区块链系统随着数字货币的爆发迅速发展,功能各种各样。
此后,随着ETH的发展,smart contract给区块链的发展带来了极大的技术变革,它帮助应用开发者缩短了开发时间。这是区块链发展史上目前两个非常重要的节点。
现在在不同领域,存在各种各样的区块链系统正在开发,或者正在运行,或者正在探索应用前景。区块链的p2p通信方式,密码学加密/签名并不是重点,已经有了很多解释,我们着重讲一下区块链里的共识算法。
挖矿是一种创造区块的过程,这种区块是可以被验证并添加进分布式数据库的数据块。在一些区块链系统中,比如比特币和ETH,矿工可以通过挖矿从系统获得奖励。在所以区块链系统中,挖矿都是一个最核心的概念,试图参与挖矿过程的节点被称为矿工。
理论上,每个可接入区块链的节点都有成为矿工的权利,但是它们不一定有机会成为矿工。
挖矿是一种周期性的竞争行为,根据共识算法不同,对于每个挖矿周期,从矿工中选择“优胜者”的方式也有所不同,通常我们称这些“优胜者”为当前周期“出块者”。这种共识算法通常被理解成为“多数人共识”,而如何在网络中定义“人”这一过程,在不同共识算法中有所不同。
目前存在很多种共识算法来决定这一过程:
需要补充说明的是,1,2,3,4 的系列算法中都存在“分叉问题”,每轮竞赛之后,优胜者出块可能存在被其他节点拒绝的情况,这时会导致区块链数据库在某些节点不同步,即“分叉”,这些算法的解决方案是寻找“最长链”的节点数据库,并与之同步。
依靠密码学的加密和签名技术是区块链中身份唯一性的保证。这里我说的”身份唯一性“,并不是在指代一个人只有一个账户,而是区块链中账户本身是唯一的,只能被自己的”钥匙“打开。
这就是非对称加密,在非对称加密中,有一堆秘钥,这两者都可以用来加密数据,而必须用另一方才能解密。公钥是公开的一个秘钥,私钥是不公开的一个秘钥。
那么可以很容易理解,当用公钥加密的时候,只有私钥持有者才可以解密数据,这是在做保密传输,称为”公钥加密“。当用私钥加密的时候,所以知道此私钥对应公钥的人都可以解密数据,这是在通过公钥认证身份,称为”私钥签名“。
只有公钥可以从私钥中计算出来,而私钥却不能从公钥中推出。而个人账户地址是与公钥一一对应的。
非对称加密的一种--------椭圆曲线加密算法目前是被应用最广泛的算法。
P2P是一种点对点数据传输技术,依靠用户群交换信息,与有中心服务器的中央网络系统不同,对等网络的每个用户端既是一个节点,也有服务器的功能,任何一个节点无法直接找到其他节点,必须依靠其户群进行信息交流。
P2P网络的分布特性通过在多节点上复制数据,也增加了防故障的健壮性,并且在纯P2P网络中,节点不需要依靠一个中心索引服务器来发现数据。在后一种情况下,系统也不会出现单点崩溃。
当然P2P网络也有很多种,不同区块链中可能采用不同实现方式。
P2P网络的经典例子,比如迅雷和早期的电驴。
区块链依靠P2P在各个节点之间传输数据,依靠私钥签名确保数据唯一,依靠公私钥体系构建账户体系,依靠共识算法添加数据并提供网络维护者的激励,依靠Merkle树构建储存数据库。依靠时间戳确保历史区块产生时间。
这是区块链的主要技术构成。
当然区块链目前存在太多问题,导致使用起来很反用户直觉。
1.匿名和隐私
比特币和以太坊目前是不存在绝对的隐私的,只是存在了一些匿名手段,准确的说,比特币只存在一些匿名特性。虽然无法知道用户是谁,但是比特币这个“论坛”上的“用户行为”是可以追踪的。目前有以ZK-SNARK为代表的零知识证明技术来保证隐私,但是还存在性能的问题。
2.算力/票集中化导致的安全性下降
如之前所说,我们可以很理想的认为,在互联网上一个“单位算力”就是一个人,但是存在经济利益之后,就会有各种手段来取得算力领先地址。比如“矿机”,“矿池”等以大算力为目标的一些设施。PoS也是如此,有多少票是一种经济行为,而在各种经济领域,“二八准则”始终是存在的。
3.过于自由的智能合约带来的安全问题
智能合约是图灵完备的,在这种基础上,因为写智能合约的人同样良莠不齐,所以很可能会出现各种安全漏洞。
4.区块链数据是很封闭的
区块链是一个很封闭的生态系统,它的信任只能保证在“链上”数据本身,而从现实世界到区块链这一段,并不能保证不存在拟欺诈。甚至,不同区块链之间的数据互传,也很难保证是完全可信的。这就是大多数人诟病的”溯源“并不一定可信,当然目前有了一些以预言机为代表的解决方案,但是这些技术并没有能够从根本上解决问题,还需要进一步研究。
5.当需要与用户交互时,智能合约本身无法操纵账户数据
比如用智能合约发工资,但是我们并不能保证智能合约取钱的账户内部有足够工资。它只能完成“输入金钱到输出多账户工资”这样的流程。
这是我理解的区块链技术。
完。
[1]M. Pilkington, “Blockchain Technology: Principles and Applications,” in Research Handbook on Digital Transformations, 2016. [online] Available: Blockchain Technology: Principles and Applications, (accessed February 13, 2018).
[2]I. Eyal, A. E. Gencer, E. G. Sirer, and R. V. Renesse. “Bitcoin-NG: a scalable blockchain protocol,” in 13th Usenix Conference on Networked Systems Design and Implementation (NSDI'16), Berkeley, CA, USA, 2016, pp. 45-59.
[4]S. Nakamoto, "Bitcoin: a peer-to-peer electronic cash system," 2009. [Online] Available: Open source P2P money (accessed February 13, 2018).
[5]M. Mettler, "Blockchain technology in healthcare: The revolution starts here," in 2016 IEEE 18th International Conference on e-Health Networking, Applications and Services (Healthcom), Munich, 2016, pp. 1-3.
[6]K. Christidis and M. Devetsikiotis, "Blockchains and Smart Contracts for the Internet of Things," in IEEE Access, vol. 4, 2016, pp. 2292-2303.
[7]M. Conoscenti, A. Vetrò, and J. C. De Martin, "Blockchain for the Internet of Things: A systematic literature review," in IEEE/ACS 13th International Conference of Computer Systems and Applications (AICCSA), 2016, pp. 1-6.
[8] I. C. Lin and T. C. Liao, “A Survey of Blockchain Security Issues and Challenges,” in International Journal of Network Security, vol. 195, no. 5, 2017, pp. 653-659.
[9] M. Conti, C. Lal, and S. Ruj, “A survey on security and privacy issues of bitcoin,” arXiv preprint arXiv:1706.00916, 2017.
[10] M. E. Peck, "Blockchain world - Do you need a blockchain? This chart will tell you if the technology can solve your problem," in IEEE Spectrum, vol. 54, no. 10, October 2017, pp. 38-60.
[12] W. Stallings, “Cryptography and network security: principles and practice,” Pearson Education, 2016
