提交 ae5de6b5 编写于 作者: Y yeasy

Add chapter introduction

上级 ee63d297
......@@ -5,7 +5,7 @@ v0.1.0
区块链技术是现在主流数字货币的主要支持技术,被认为在包括金融、物联网、贸易结算等众多领域拥有广泛的应用前景。但由于区块链技术自身还处于快速发展的初级阶段,并且涉及技术领域过杂,为实践应用带来了不小的挑战。
在编写区块链服务平台的过程中,积累了一些工程实践经验,希望能分享出来,推动区块链技术的进步
在编写区块链服务平台的过程中,积累了一些工程实践经验,借此机会分享出来,希望能推动区块链技术的更多应用
本书适用于对区块链技术感兴趣,且具备一定计算机基础知识的读者。
......
......@@ -6,6 +6,7 @@
* [什么是区块链](intro/what.md)
* [关键技术](intro/tech.md)
* [商业价值](intro/business.md)
* [小结](intro/summary.md)
* [一致性问题与算法](consensus/README.md)
* [密码学知识](crypto/README.md)
* [Hyperledger 项目](hyperledger/README.md)
......
# 资源链接
## 论文
* 中本聪 / 比特币:[一种点对点的电子现金系统](https://bitcoin.org/bitcoin.pdf)
\ No newline at end of file
# 区块链简介
本章将简要介绍区块链相关的背景知识,包括其起源、定位、涉及到的关键技术点以及潜在的商业价值。
\ No newline at end of file
## 从比特币说起
### 历史
相比区块链,更多人都听说过比特币。2008 年,化名 Satoshi Nakamoto (中本聪)的人提出了比特币的设计,并在 2009 年公开了最初的实现代码。但真正流行起来还是在 2010 年后的事情。其官方网站是 [bitcion](http://bitcoin.org)。发明人(传言代号为中本村的澳大利亚人)到目前为止尚无法确认身份,但是一个团队的概率较大。
尽管充满了争议,但从技术角度看,比特币仍然是数字货币历史上一次了不起的创新。
比特币之所以受到无数金融从业者的热捧,在于它首次真正意义上实现了安全可靠的去中心化数字货币机制。
作为一种概念金融货币。比特币主要是希望解决已有金融货币系统的几个问题:
* 被掌控在发行机构手中;
* 自身的价值无法保证;
* 无法匿名化交易。
搞金融的人都能想到,实际上,要设计这么一套系统,最关键的还是一套强大的交易记录系统和中立的货币发行机制。
首先,这个系统要能中立、公正、无法被篡改地记录发生过的每一笔交易。对比已有的银行系统,可以看出,现在的银行机制作为第三方,是有代价的提供了这样的服务,即如果交易双方都相信银行的数据库,那么就没问题了。可是如果是世界范围内流通的货币呢?有哪个银行能让大家完全信任它?于是,需要有一套分布式的数据库,在世界范围内都可以访问,而且都无法去控制。这也就是区块链设计的目的。
货币的发行则是通过比特币的协议来规定的,总量必须控制,发行速度会自动调整。既然总量一定,那么单个比特币的价值肯定会随着承认比特币的实体经济的加入而水涨船高。发行速度的调整则避免了通胀或者滞涨的出现。
### 挖矿
了解比特币,最应该知道的一个概念就是“挖矿”。
2010 年左右,挖矿还是一个很有前途的行业。但是现在,建议还是不要考虑了,因为从概率上说,由于当前参与挖矿的计算力实在过于庞大(已经超出了大部分的超算中心),获得比特币的收益已经眼看要 cover 不住电费了。特别那些想着用云计算虚机来挖矿的想法,意义确实不大了。
从普通的 CPU、到后来的 GPU、到后来的 asic 矿机、到现在的 asic 数据中心。短短数间,比特币矿机的技术走完了过去的计算机的历程,并且还颇有创新之处。确实是哪里有利益,哪里的技术就飞速发展!
有哥们当年去内蒙古用近乎白给的价格租了当地的机房,打着创业幌子搞挖矿,不知道今日身家几何!
很自然的,有人会想到,如果我有很强大的计算力,所有的块我都算出来了,那是不是就能破坏比特币网络。确实如此,基本上拿到 1/3 的计算力,比特别网络就存在被破坏的风险了;拿到 1/2,概率上就掌控整个网络了。
想想看,你可以一直不承认别人的计算结果,只承认自己的,从概率上风险是很大的。这里,要区别分布式系统里面的拜占庭将军问题,这里完全是概率意义,并非数学证明。
那么有没有办法防护呢?
除了尽量避免计算力放到同一个组织手里,没太好的办法,这是目前 pow (proof of work)的协议规定的。
也有人觉得为了算一个块,大部分计算力(特别到最后根本没算出来的)其实都浪费了。
有人提出用所谓的 pos,即大节点作为多个节点代理人的模式来节约计算力。那怎么选大节点?又容易导致“富则越富”问题。呵呵,这就是完全民主 vs 选举人制度嘛。
个人认为,无论 pow 还是 pos,都无法解决问题。要从根本上解决,得引入随机代理人制度,通过算法在某段时间内只让部分节点参加计算,然后要发放一部分“普世奖励”给所有在线节点。
### 比特币到区块链
2014 年开始,比特币背后的区块链技术受到大家关注,并正式引发了分布式记账本(Distributed Ledger)技术的革新浪潮。
## 商业价值
\ No newline at end of file
## 小结
无论如何,区块链确实是第一个试图做公开、中立、匿名化的分布式数据库的系统。它的出现,让大家意识到除了互联网这样的基础设施外,数据库系统也可以成为公共基础设施。而且像比特币这样的例子,给与了区块链更多的遐想空间。如果交易无法造价,信息无法造价,世界是不是会多了一些算法来保证的公平呢?这是又一次用技术给人类发展带来进步的福利。
不提这种去中心化的金融系统是否现实(个人认为至少 5-10 年后的事情了),在跨国交易、跨组织合作日益频繁的今天,区块链、比特币都是很好的一些尝试和参考。
进一步的,比特币只是基于区块链技术的一种应用(而且是直接基于区块链开发),利用区块链技术能否还有其他应用呢?[Hyperledger](https://hyperledger.org)[Ethereum](https://www.ethereum.org/) 就试图做类似的事情,希望基于区块链再做一层平台层,让别人基于平台开发应用变得更简单。
另外,区块链本身可以作为分布式存储,也自然可以作为分布式计算引擎。可以想象,整个加入集群的设备都是计算引擎,大家通过付费来使用计算力,是不是就有点普适计算的意味了?
\ No newline at end of file
## 关键技术
### 密码学认证技术
怎么防止记录被篡改?
怎么证明交易双方的身份?
密码学正是要解决这些关键问题。
### 分布式一致性
这是个古老的话题,已有大量的研究成果。
### 安全
既然区块链一个可能的应用前景是金融系统,那么安全自然是讨论最多、挑战最多的话题。区块链的实现是开源的,基于了现有的成熟的密码学算法。但这是否就能确保其安全呢?
未必。有如下几个方面是很难逃避的。
首先是,攻击区块链系统是否是犯罪?攻击银行系统是要承担后果的。但是目前还没有任何法律保护区块链以及基于它的实现。
其次是软件实现的潜在漏洞是无法避免的。考虑到使用了几十年的 openssl 还带着那么低级的漏洞(heart bleeding),而且是源代码在大家眼皮底下。这背后曾经发生过啥,让人遐想连篇。金融系统自身到底有没有必要开源,也值得商榷。
另外,区块链所有交易都是公开可见的。搞大数据的人听了是不是开始激动起来了,呵呵,这里面能分析的东西还真不少,而且规模够大、影响力够大……
还有就是作为一套完全的分布式系统,区块链缺乏足够的调整机制,一旦运行起来,真的无人能控制。即使是让它变得更公平、更完善的修改,只要有部分既得利益者合起来反对,那就无法加入进去。这让比特币本身的价值也蒙上了一层阴影。
\ No newline at end of file
## 什么是区块链
### 定义
区块链技术自身仍然在飞速发展中,也缺乏统一的规范和标准。
[wikipedia](https://en.wikipedia.org/wiki/Block_chain_(database) 给出的定义为:
> A blockchain[1][2][3]—originally, block chain[4][5][6]—is a distributed database that maintains a continuously-growing list of data records hardened against tampering and revision. It consists of data structure blocks—which hold exclusively data in initial blockchain implementations,[7] and both data and programs in some of the more recent implementations—with each block holding batches of individual transactions and the results of any blockchain executables.[8][better source needed] Each block contains a timestamp and information linking it to a previous block.[9]
最早出现区块链是在比特币项目。作为比特币背后的分布式记账平台,区块链在无集中式监管的情况下,稳定运行了八年,支持了海量的交易记录,并未出现严重的漏洞。
公认的最早关于区块链的描述性文献是中本聪所撰写的 [比特币:一种点对点的电子现金系统](https://bitcoin.org/bitcoin.pdf),但该文献重点在于讨论比特币系统,实际上并没有明确提出区块链的定义和概念。
客观地看,区块链属于一种分布式的记录技术。
跟传统的数据库技术相比,其特点应该包括:
* 维护一条不断增长的链,只可能添加记录,而发生过的记录都不可篡改;
* 去中心化,或者说多中心化,无集中的控制,实现上尽量分布式;
* 可以通过密码学的机制来尽量保护用户信息和记录信息的隐私性。
### 原理
区块链的基本原理理解起来并不难。
首先假设存在一个 P2P 的数据库(这方面的技术相对成熟),剩下来就是大家如何决策去添加数据上来。只允许添加、不允许删除避免了作伪的可能性。这个数据库的结构是一个链,由一个个块组成,这也是其名字的来源。新的数据要加入,必须作为一个新的块来加入。而这个块能否加入,可以通过一些手段来检验出来。
具体到比特币如何使用了区块链技术。比特币将每十分钟内所有的交易都打包在一起,这些信息组成一个块。然后,网络中所有的成员都可以试图来找到一个合法的块(比如基于当前的块的信息,加上时间、id,加上某些其它有用信息等),然后进行一些 hash 计算,并且找到的结果还得满足一定条件(比如小于某个值)。一旦算出来就可以进行全网广播,大家拿到这个算出来的结果,进行正向验证,发现确实符合条件了,就承认你算出来了。
因为算出来的概率要从数学上进行保证,比如每十分钟内大概就刚好算出来一个。所以保证了区块链每十分钟增加一个块。算出来的这个人将获取得到这个时间内所有交易产生的管理费和协议固定发放的奖励费(目前是 25 比特币)。也即俗称的挖矿。
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册