简单的说,区块链是比特币的底层加密协议,比特币诞生的时候,并没有区块链这个名词,然后业界从比特币中提取了技术架构和体系,将其称之为区块链技术,它有去中心化、不可伪造等诸多优点,可以应用于各行各业,在介绍区块链之前,先看看比特币的原理:
一. 背景知识:比特币原理
传统的网站或网络服务都有集中的服务器,所有的内容和用户信息都储存在服务器中,一旦服务器挂掉或被黑客攻击,网站就无法提供服务,内容还有被删除、篡改的风险。
比特币是一种去中心化的数字货币,没有集中式的服务器,它采取了一种看起来比较“傻”的做法:使用比特币需要下载比特币客户端,比特币客户端会把比特币诞生以来世界上所有的交易记录下载到本地,有了交易记录,就能计算出每个比特币账号的余额了,下面是具体的细节:
1.公钥和私钥的概念
在非对称加密中,分成公开密钥和私有密钥,公开密钥是公开的,可以发布在网络上,私有密钥只有持有人自己拥有。如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
公钥加密传输可以防止信息窃取,私钥加密可以用作身份认证。比特币主要用了椭圆曲线签名算法,这是一种非对称加密算法:
- 只要知道私钥,可以算出相应的公钥
- 你用私钥签名过的东西,可以用公钥算一下是不是你签的
比特币的账户就是一段公钥,可以公开,私钥只有比特币账户持有者才有,用于签名和校验身份。
2. 比特币的核心:交易记录
如果我要向另一个比特币账户转账,交易记录会是如下的样子,把数据结构用易懂的中文解释如下:
FROM(谁发送的,包括两部分)
Previous tx: 我要花的这笔钱的来源账单的id, 也就是说,你花的任何一笔钱都应该有人转给你过,需要出示那个账单的id
scriptSig: 我对这笔交易的签名,就是把单子用我的私钥做hash,只有你能做这个hash
TO(谁接受,包括两部分)
Value: 要发多少
scriptPubKey: 对方的公钥,比特币账户就是一段公钥
每一个比特币客户端都是一台“服务器”,当你启动客户端的时候,会接收到周围的有公网IP的客户端地址,就是“服务器”列表,这个列表也不断的刷新。
我的比特币客户端会把这个账单发给其他的比特币客户端(也是服务器),所有收到这个单子的客户端会效验这个单子对不对,比如会效验签名,是不是我发的,是否有那么多钱(根据历史交易可以推算出我有多少钱可以花)如果这个交易大家算过没问题了,就算转账成功了。
现在对方已经接受了比特币,但是要想花的话,他得有那个地址(公钥)对应的私钥。于是他就能填下一个单子的 FROM头部,Previous tx就是刚才这笔交易的序号,scriptSig 填用他私钥签名过的 hash,如此往复
3. 挖矿
区块是很多交易数据的集合,有效的区块获得全网络的共识认可后会被追加到主区块链中。区块链是有包含交易信息的区块从后向前有序链接起来的数据结构。
在比特币领域中,存在“矿工”这样一个概念。矿工们需要竞争完成一种基于加密哈希算法的数学难题,答案存在于新的区块中,谁优先解出这个答案,谁就能在网络中广播声明自己已经获得这个区块,其他的旷工就会意识到在这局里已经输了,就会立马开始下一个区块的挖掘工作。每个矿工在他的区块中都有一笔特殊的交易,他们会将新生成的比特币(当前每块25个比特币,2016年也就是今年减半)作为报酬,然后支付到自己的比特币地址中。一旦这个区块被认可被验证,他的这笔报酬就可以变为可用可消费的状态。
二. 比特币的特点
1. 去中心化
从前面的流程中可以看出,比特币的所有账单存储在每个客户端当中,客户端同时也是服务端,每个节点都可以参与交易的校验,解决了集中式服务器被攻击和篡改的风险
2. 不可伪造
账簿在某个人或某几人手上,造假的可能性就非常高,但每个人手里都有一本账簿,除非你说服了整个网络里超过 51% 的人都更改某一笔账目,否则你的篡改都是无效的,这也是大众玩家集体维护和监督的优越性。
3. 不可修改
比特币的系统是开源的,整个系统都必须是公开透明的,因此某笔交易被全网广播以后,达到6个确认以上就成功记录在案了,且不可逆转不可撤销。所以你打出去的钱,即使后来发现地址打错了,你想要重新重新撤回来,是不可行的。
理解了比特币,就理解了区块链,它是一种以密码学方法为基础的分布式数据库,具有去中心化、不可伪造、不可撤销、内容公开的特点。
三. 区块链技术应用案例
1. 知识产权保护
知识产权保护的难点在于难以证明某个作品在指定时间点之前就属于某人。时间印这个网站提供基于区块链技术的产权保护服务,原理是:
- 在要保护的文件的基本信息里体现我是该文件的作者,比如在末尾附上我的名字
- 将文件上传到时间印,时间印为该文件生成 Hash,作为文件的数字指纹
- 时间印将文件的数字指纹作为一笔比特币交易的一部分存储到比特币区块链上,该笔交易的时间记录即成为该文件的时间戳。
如果发生纠纷,我可以将该交易记录拿出来,由于比特币的交易信息是无法删除和修改,且是共公开访问的,所以可以证明在该时间点之前我就拥有这份文件。当然,技术上完全没有问题,这方面的普及和应用还需要法律法规的支持。
PS:更简单的一个办法是,把自己的作品用 Email 自己发给自己,就可以证明该文件在邮件接收时刻就属于我,法庭上邮件可以作为证据。
2. 保险
Everledger 公司用区块链技术做了一个分部总账,记录高价值宝石的细节信息。这样保险公司或者潜在买家就可以查询任何宝石的历史记录,包括之前的保险理赔记录等,帮助保险公司对抗诈骗。
3. 捐款
慈善机构使用比特币来募捐资金,不需要主动公开账目,人人都可以查看历史账目。在雅安地震中,比特币第一次在中国成为捐赠物。
4. 验证学历真实性
HireRight是一家提供背景调查的国际公司,据他们的调查数据,约 86% 的受访雇主表示他们发现学历造假的应聘者。为了解决这个问题,霍伯顿学校(HolbertonSchool)利用比特币区块链技术向学生颁发学历证书。当然,该技术的运用还需要更多学校和企业的支持。
布比区块链 是一家做区块链应用的公司,他们有提供基于区块链技术的数字资产、供应链溯源、股权债权解决方法,可以访问他们的官网了解具体的实现机制。
不仅上面几个例子,区块链技术还可以应用在选举、股权协议、医疗等行业,实际上,但凡有去中心化、不可伪造、不可撤销、内容公开的需求的场景,都可以借助区块链技术。