大家都在研究的区块链是什么

发布于: 修改于: 雪球转发:3回复:15喜欢:50

老妈下午屁颠屁颠买菜回来,刚进家就宣称自己钱包里多了500块钱,欢兴雀跃。我不禁呵呵一笑,告诉她其实这钱是两周前我补贴家用的。老妈和我争了一下午,硬要说明这是意外之财,令人哭笑不得。

往小了讲,这是家庭缺少公共账本,记账不清。往大了讲,这种事情在金融组织间清算结算也偶有出现,双重支付,单边账等问题归于此类。

近期很火的区块链,要解决的就是此类问题。

昨日爆料称腾讯将发布区块链白皮书,央妈也公然力推区块链技术发展虚拟货币。这个家伙对银行,证券,保险等多个领域都会带来颠覆性冲击。恰巧近期正阅读区块链的书籍,现对区块链的认识记录如下。抛钻引玉,还望大家指出其中错误的地方。

【区块链干什么的】

区块链是基于区块技术形成的公共账本。其中:

公共账本的理解:东先生全家,包括东先生,东夫人,东爷爷,东奶奶,都各自有个账本(比如随手记)只记自己的开支,这种账本叫做私人账本。而如果各自的账本上都记录了大家的开支,这种账本就叫做公共账本。

区块技术的理解:光有公共账本可不行,因为东先生全家互相不信任。东先生觉得自己勤勤恳恳每个月养老婆,可东夫人可能会收到1000块钱却记收到100,自己却记录的是支出1000给老婆,那岂不亏大了。区块技术就是基于现代密码学和协议来约束大家实打实记账的。

如果上述成立,能给东先生一家带来的好处包括:

1、简化流程:东先生全家再也不用每个月互相对账来确认家里还有多少资产了。

2、降低交易对手风险:东先生全家再也不用担心互相的信任问题了。

3、增加流动性:以前每月对账有一段时间(比如一天)全家的资金要冻结,保证占账本与账户一致性,现在这个问题也解决了。

4、提高透明度:这个公共账本不可撤销不可抵赖,谁都可以查,再也不用考虑监管问题。

【区块链是怎么做到的】

假如某天东先生给了1000老婆大人,他只要在向全家人大吼一声——东先生给了东夫人1000,请大家在各自的账本上记下“东先生给了东夫人1000”,就OK了。

这个系统完全不需要银行($银行B(SZ150228)$ 默泪),也不需要借贷协议和收据,严格来说,甚至不需要人与人长久的信任关系。比如东夫人某天忽然说东先生没给她1000,全家人都会站起来斥责她。

于是东先生全家每个人都成了一个节点,每次东先生家的交易都会被每个人(每个节点)记录下来,形成一个公共的账本(东先生全家人手一份)。可这为什么叫区块链呢。

原因是这样的:东先生全家人手一份的公共账本,每10分钟(以比特币为例)内的交易记录打包起来形成一个块,这个账本是由一个接一个的块链接起来的(可以简单理解成账本的每一页)。于是命名为区块链。

两个概念:

1、区块链中的块:公共账本中每10分钟打包起来的交易包。

2、节点:参与交易的区块链中的网络节点。

剩下两个问题:

1、公共账本的每个交易包结构保证不被篡改,凭什么?

2、每个人(每个节点)都参与打包,凭什么?

【问题一:保证不被篡改】

问题的答案为:非不可,是不能也。改起来太难,所以改不了。

为什么呢?看交易包的结构:

每个交易包都包含了4部分内容,其中有一个限制区块生产时间的参数(每个区块不一样)限制了最新每个区块需全网计算能力大约10分钟(以比特币为例)时间才能形成这个模块。

如果东夫人需要就“东先生支付1000”这条信息伪造出一条“东先生支付50”的记录,那么她必须在随后的时间内伪造其他全网的交易记录,以保证她伪造出来的伪区块链的长度能长过真实的区块链长度,全网的计算力才会向伪区块链倾斜,否则鸟都不会鸟她。

换句话说,在她伪造的区块链未完成超越前(此时全网其他交易记录还在进行),东夫人需要蜉蝣撼大树,以一己之力完成全网计算力的超越。

理论上,除非东夫人拥有全网计算力的51%以上,否则很难控制区块链的记账权。

【问题二:每个人都参与打包】

问题的答案为:可以不参与,等别人打包好复印一份就行,但参与有好处。

交易包打包的过程在区块链中被称为“挖矿”。

参与挖矿的人(节点)被称为“矿工”。

每当有一个新的区块即将形成前,矿工们(比如东先生,东夫人,东奶奶)可以参与挖矿。挖矿的过程实际上就是解一道数学题。题解出来了,交易包就打好了,新的区块就建成了。解出来的那个人就有钱拿。

当然,解完题的人(节点)需要大吼一声:“我解完了,你们可以验证,验证完没事就赶紧把这个交易包也复制到你们账本上,然后我们一起去搞下一个吧。”

懒人如东爷爷(没参与解题),也可以在这时候参与验证,再把交易复制过去。验证可比亲自打包容易多了,以比特币为例,就有一个简化确认(SPV)机制。

看到这,区块链的工作原理就差不多了。

-------------------------------------------------------------------------------------------------------------------------

【延伸阅读】

当然,可能阅读完上文后还存在许多细节上的困惑。在此前,需要额外介绍三种东西:

1、哈希算法;2、数字签名;3、工作量证明

【哈希算法】

1、介绍:

这家伙有点像压缩工具。它能将两个输入交易消息压缩成一个哈希值(一串没有任何意义的数据)。别看它功能简单,它可是美国国家标准与技术研究院发布的。具备以下特性:

A、抗碰撞性:两个不同的消息在同一个哈希函数作用下的输出不可能相同。

B、原像不可逆:不可能经过哈希值倒推输入消息。

C、难题友好性:没有便捷的方法产生一个指定的哈希值。

2、应用:

A、结合“挖矿难度随机数”卡住每个区块的生成时间。

还记得前面提及的“限制区块生产时间的参数”和“矿工们”吗?

当矿工们在挖矿时,实际上就是用计算机从0开始遍历,寻找一个数(图中???)来和挖矿难度随机数搭配,经过哈希算法后,能得出前面N个0的数(多少个0由全网动态调整)。调节哈希值的前面0的个数,就能在越来越多人参与挖矿时,卡住平均10分钟的节奏。

B、压缩交易信息

在区块构成中,包含了一个叫MERKLE根的家伙,这个家伙本包含了该段时间(比特币:10分钟)内发生的全部交易记录。压缩过程如下:

3、至此,一个区块的所有内容浮出水面。

【数字签名】

这家伙和现实中的签名有点像。现实中签名是对某份文件,它可以做到对一条交易信息。

签名前,东先生需输入两个要素:要签名的信息,私有钥匙;

签名后,东先生可以得到经过签名的信息摘要;

随后,东先生将摘要及签名的信息告诉全家人,全家人可以用东先生的公用钥匙(东先生在全网的唯一标志)进行真实性验证。

每条信息都经过签名后,矿工们(东先生,东夫人,东奶奶)才能安心地进行挖矿,最后将该时间段内的交易写入区块。

【工作量证明】

这家伙其实说的就是东先生全家如何在挖矿一事上达成一致。

当东先生挖矿得出对应挖矿随机数的解时,会广播全家,请求大家验证。

一旦验证通过,全家就会放弃对该区块的挖矿,区块就形成。借助于上节的数字签名,东先生也会对该区块进行签名,并且获得对应的系统奖励。

【各种链】

私有链:私有组织所使用的区块链,比如上面的东先生一家。目前很多金融组织在研究。

联盟链:仅限于联盟内使用的区块链,比如当前央妈在研究的。

公共链:全球范围内的区块链,比如比特币。

各种链之间并非是完全隔绝的,可以利用类似沪港通深港通等互联互通机制进行打通,这个也被称为互联链。

$恒生电子(SH600570)$ $金证股份(SH600446)$ 

 @天才之豆 @starshaw @深圳红树林 @ass4370 @king-comet @贵阳小米 @深圳忧郁王子 @东方牛牛N @xxcc蜗牛 @今日话题


全部讨论

StR20172020-11-17 18:59

挖矿那一块看不明白

看的见天空的云2019-03-24 10:45

体面的小伙子2017-05-27 11:04

重新学习了下,如果东先生此文能把币天销毁讲一下,以及把区块链对于交易的矢量化作用科普一下就好了

东先生2017-05-04 11:31

刘大四2017-05-04 11:13

给大神跪下

东先生2017-04-25 12:06

最近开始做这方面研究工作了

用户20229579572017-04-25 11:45

越来越多的区块链布道者~

KirschG2017-04-23 22:10

写的很好