小白写给小白的区块链简介
本文是一篇文科生写的技术普及文.
...
...
如果你现在还没有点击左上角的关闭按钮, 说明你是个很反智的人哦~~
作为文科生写的文章, 那我们不妨带着历史的眼光来看这个话题.
这位读者老爷, 请放下手中的板砖, 这次我们不用从二战前后讲起....
让我们回到区块链诞生之初, 看一下 中本聪 大神的 比特币白皮书, 并且试图回答两个问题:
- 他整个比特币出来是为了解决什么问题;
- 他是如何解决的.
既然本文定位是小白讲给小白, 我就不贴那些笔者和读者都看不懂的原文了.
杜绝回滚
当然, 白皮书没有明确写 "打倒美联储" 的革命口号.
在简介部分, 白皮书说, 为什么需要一种 "点对点的电子现金系统"? 是因为 "杜绝回滚". 杜绝好说, 什么是 "回滚" 呢? 请不要多想, 就是 "滚回去" 的意思.
请把支付业务想象成向前滚动的车轮, 有的时候流程走到一半, 推车的老汉突然觉得不合适, 又把车给拉回来了, 就是回滚.
说白了, 所谓 "杜绝回滚" 就是禁止撤销支付行为.
哪为什么要 "杜绝回滚" 呢, 白皮书说了, 互联网上的商品有很多是数字商品或服务, 这些东西者很难退货, 如果支付可以撤销, 那么 "互联网的贸易会大大受限".
举个例子, 你拿 10 块钱向我买了一部苍老师的教学片, 我把片子发给你了, 你说要退货, 把片子又给我发回来, 我知道你有没有再拷贝.
估计读到这个时候, 懂技术的读者老爷就该掀桌子了: 防止撤销支付的技术在区块链产生前, 早就解决了.
首先, 读者老爷说的对!! 但是白皮书的主张要更激进一些.
白皮书说, 目前主要的线上支付的手段, 为了避免 "双重交易" 的问题, 必须引入一个中心化的第三方的信用机构才行. 只要存在一个中心化的信用机构控制支付, 别说回滚了, 他想让你怎么滚, 你就得怎么滚, 想让你滚多远, 你就得滚多远.
双重交易
举个大家喜闻乐见的例子, 比如卖房子, 就是一个经常出现 "双重交易" 的事情.
今天张三出 300 万, 我把房子卖给张三, 明天李四出 400 万, 我再把同一个房子卖给李四. 无论张三还是李四都无法在交易时确认这个房子只卖给他了.
现实生活中这个问题怎么解决的呢? 所有权登记制度, 不管我签多少个卖房合同, 真正转移房屋所有权的行为是到房管所变更所有权登记.
在支付中解决双重交易, 看起来可能有点复杂:
在线上支付中, 甲向乙支付 10 元钱时, 甲并不是把 10 元钱给到了乙, 而是发行这 10 元钱的机构 (也就是前文书说的 "中心化的第三方信用机构") 把这 10 元钱回收, 再发给乙崭新的 10 元钱.
于是当乙再要给丙付这 10 元钱的时候, 丙一看这钱是不是崭新的, (查询这枚数字货币是不是新发行的), 就可以知道乙是不是合法持有这 10 元钱了.
看起有点复杂, 但是如果你把这 10 元钱想象成房产证, 你看整个过程是不是就是房管所回收旧证, 发行新证的过程?
这种解决方案中, 交易双方是不能随意撤销支付了, 但是, 中心化的信用机构确是可以随意撤销任意一笔支付的. 比特币想的, 就是要在不引入这个中心化的第三方信用机构的前提下, 解决双重交易的问题.
"流传有序" 的交易链条
先扯点闲话, 读者老爷, 你们知道目前为止最靠谱的古玩鉴定方法是什么?
碳元素鉴定? 制作工艺鉴定? 艺术风格鉴定? 这些都不是最靠谱的, 因为只要有一种鉴定方法被发明出来, 就会有针对这种鉴定方法仿制技术被发明出来.
目前最靠谱的鉴定方法叫做: "流传有序". 什么意思呢? 举个例子:
这个青花瓶子是乾隆爷赏给甲的, 甲传给乙, 乙传给丙, 这种传了十代后, 甲的传人辛把这个瓶子上交给国家, 放在某某博物馆里. 整个这个流传过程没有断, 那么我们认为这个某某博物馆的瓶子是真的.
这就是 "流传有序" .
我们回到房管所的例子, 我们为什么相信房管所的登记? 因为房管所的登记是 "流传有序" 的. 从房子造出来的时候, 这个房子的所有所有权流转关系都记录在案, 所以可以保证, 到目前为止, 这个房子登记的所有权归属是清晰的.
同样, 我们信息中心化信用机构, 是因为他那里的有关于数字货币 "流传有序" 的所有记录.
与是白皮书提出一个构想, 我们不要去中心化的信用机构登记 "流传有序" 的流转关系, 我们直接把这种流转关系记录在货币上行不行?
当甲给乙进行支付给乙 10 元钱的时候, 甲用自己的数字签名在 10 元钱上签一下名, 乙也用自己的数字签名在这 10 元钱上签一下名. 当乙再将这 10 元钱支付给丙的时候, 丙拿过钱来一看, 哦, 乙拥有这 10 元钱是通过甲的合法转让, 我只要在个 10 元钱上签一下名, 这 10 元钱就合法转让给我了.
当然具体技术实现要比这复杂的多, 比如签名都签在了钱上, 要找零怎么办? 作为小白读者你只需要知道, 系统搞得定就 ok 了. 什么, 你问我知不知道实现细节? 我当然是知道的了.(不管你信不信, 我反正信了)
这样一来, 即通过 "流传有序" 的交易链条避免了双重支付, 又甩掉了中心化信用机构, 岂不美哉.
但是我们知道, 登记机构不是白当的, 它们还有一个重要工作, 就是验证交易. 现在把登记机构甩掉了, 谁来做验证交易的工作?
答案是交给矿工.
矿工的工作与工作量证明机制
好, 现在甲给乙支付 1 个比特币, 比特币系统会做些什么呢?
比特币会向所有使用比特币的人广播: 甲给了乙 1 个比特币, 谁来帮忙验证一下. 然后把这交易的信息放在一个交易池里.
这时候有一个好心人张三打算帮忙, 他从交易池中取出这个交易信息, 验证交易的合法性, 然后把这个交易和其它张三验证的交易放在一个信封里, 盖上一个章子: 某年某月验证通过. 然后他把这个信封在使用比特币的人的网络中公开. 比特币系统为了鼓励这种乐于助人的行为, 奖励张三一些比特币.
好心人张三是矿工, 将着交易信息的信封叫做区块, 某年某月验证通过的章子叫做时间戳.
假设这时候有又有一个好心人李四也打算帮忙, 他把这笔交易验证后放到另一个信封中, 这个时候系统中就同时存在两个同样有效的区块, 这种情况就叫分叉.
出现分叉怎么处理呢? 比特币系统要求, 每一个区块必须叠加在前一个区块上. 回到信封的例子, 比特币系统要求每个信封要有一个目录, 这个目录记着在我这个信封之前有哪些记录交易的信息, 并且比特币系统说, 谁的目录长, 谁牛 B. 所以, 所有验证交易的好心人, 都想在尽量长的目录后面放自己的信封.
当张三和李四都有一合法的信封的时候, 如果有一个人拿了张三的目录所为自己的信封的基础, 立刻所有的人, 都会继续使用有张三信封的目录, 而视李四的信封如无物, 因为这目录更长一些.
这个机制就叫做工作量证明, 因为更长的目录意味着更多的验证工作量.
那么, 如果有一个邪恶组织想要控制比特币系统, 他要怎么做呢? 恩, 他所要做的就是派自己的手下混入好心人的队伍, 并且占到好心人的一半以上. 这就是所谓 "51% 攻击".
比特币如何阻止邪恶组织呢? 它做了个假设, 做坏事是要算成本的. 比特币系统通过技术手段, 让自己的交易验证越来越难, 验证越难, 验证时的所需要的电量就越大. 当比特币系统足够大的时候, 想要做出 "51% 攻击" 所要要的电费, 就不是什么随便 "邪恶组织" 可以交的起的了.
写在最后的话
如果现在你还没有点击左上角的关闭按钮, 说明你真是个小白读者了.....
看到这里你可能觉得, 你大概了解区块链是怎么回事了. 但是读者老爷, 可能你要失望了. 以上所说, 以上所说, 仅仅是比特币区块链的一些内容.
后来有很多人认为比特币的设计是有问题的, 比如, 矿工验证交易太费电了; 比如它完全排斥中心化系统的干预就一片金融领域的法外之地等. 与是出现很多, 采用部分比特币理念的区块链系统.
比如有的人觉得工作量证明太费电了, 咱们用所有人投票解决分叉好不好? 所有人投票也费劲, 那改成部分节点投票, 其它节点信息这些投票节点好不好;
比如有的人觉得, 把验证记录在数字货币上太麻烦了, 我们把交易记录在一个账本中, 通过对账本提取快照来进行验证行不行.
而且越来越的人把区块链应用的领域放在数字货币以外的地方, 甚至于放在非金融领域.
那么是什么让这些面目不同的系统都叫做区块链呢?
让我们回到本文最初的问题: 区块链设计出来是要解决什么问题? 其实我们看到, 无论什么区块链系统最终想解决的问题是: 如何在没有中心化信用机构的情况下建立一个信用体系.
因此区块链不是什么场景都适合的, 甚至可能区块链适用的范围还挺窄: 区块链适用于需要信用体系但不建立中心化信用系统又不方便或不划算的场景.
当然认可这点的前提是, 我们不认为美联储是万恶之源.