温馨提示:阅读本文需要三分钟,本文概要:
什么是区块链?
区块链的来源?
区块链解决了什么问题?
区块链如何解决了这个问题?
什么是区块链?
工信部指导发布的《中国区块链技术和应用发展白皮书2016》这样解释:广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
"指导"说明区块链,是建立在很多"老旧"的技术之上,形成的一种新的技术堆砌(专业术语,新的技术架构)。
区块链技术架构由哪些腐朽的技术组成?(简单浏览一下即可,随着深入了解,自然而然会理解这些技术,现在,我们只需知道区块链是一种新的技术架构。)
①区块链如何存储与校验数据?
利用块链式数据结构来验证与存储数据
②区块链既然是分布式的数据库,那么这些分布的数据库按照什么规则进行同步?数据按照什么规则产生?
利用分布式节点共识算法来生成和更新数据
③区块链既然是分布式的数据库,那么如何保证数据在节点间的网络传输安全?数据不被篡改?
利用密码学的方式保证数据传输和访问的安全
④数据如何产生与使用?
利用由自动化脚本代码组成的智能合约来编程和操作数据
区块链架构来源?
2008年,中本聪团队,在《比特币白皮书》中首次提出“区块链”的概念。
那么问题来了?新的技术架构是为了解决什么问题而产生?
区块链解决的是实体间的信任问题,能有效降低实体间的信任成本。
吃瓜人,会发出疑问"信任成本"是个啥子?(产生)信任还有成本?
著名的狼来了的熊孩子,一而再再而三的,消耗村民对自己的信任,最终导致自己的游戏结束。
叮,熊孩子在村民眼皮子底下长大,村民对熊孩子信任+10
叮,熊孩子与村民有宗族关系,村民对熊孩子信任+10
叮,熊孩子多次为村民跑腿(打酱油等),村民对熊孩子信任+10
叮,熊孩子狼来了第一次,村民被骗,村民对熊孩子信任-10
叮,熊孩子狼来了第两次,村民被骗,村民对熊孩子信任-20
叮,熊孩子狼来了第三次,村民对熊孩子信任为负数,熊孩子被狼叼走了,熊孩子游戏结束。
从这个故事,我们可以思考:
①村民对熊孩子的信任是如何产生的,信任的产生消耗了熊孩子什么成本?
在村民眼皮子底下长大是不是熊孩子付出的成本?
与村民有宗族关系是不是熊孩子付出的成本?
打酱油是不是熊孩子付出的成本?
②村民对熊孩子的信任是怎么被消耗掉的?
③熊孩子的父母与村民对熊孩子的信任是相同的吗?
④熊孩子父母在熊孩子第三次呼喊"狼来了"时,在不在场?有没有去救熊孩子?
简单的说,信任成本是,为了让你相信我,我必然有所付出,付出的多少,会导致你对我的信任程度不同。
有的时候,无论做出多少付出,别人都不可能相信我,但是,区块链可以解决这个问题。有时,为了让别人相信我,但是这个信任成本太大,我们无法做到,但是,区块链可以降低这个信任成本。
案例
我和你打赌,我认为明天天气晴,你认为明天天气阴,我赢你给我100元,否则我给你一百元。
你怕我输了不给你钱,我一怕你输了你不给我钱,二怕你赢了我给你钱。
我拉了我一个熟人,作为咱们的第三方,咱们把钱都交给第三方,第三方在第二天,依据天气把所有钱都转给赢的人。
但你不愿意,因为你不认识他。怎么办?
于是,我找到了一个我们都认识的人,作为咱们的第三方。
第二天,天气晴。第三方把钱打给我了。你愿赌服输。
第二天,天气阴。你高高兴兴去向第三方拿钱,一个不幸的消息,第三方跑了,你发出叹息,一百块钱都不给我,人和人的基本信任跑哪去了?墙角中,第三方转给我200元。
第二天,天气阴。你高高兴兴去向第三方拿钱,一个不幸的消息,第三方告诉你天气晴,已经把钱转给我了。你向我发出质问,我摇了摇头,看着傻逼的你,"今天天气晴,万里无云,艳阳高照",望着窗外,磅礴的大雨,你竟然无法反驳。
新的技术架构是如何解决了这个问题(降低信任成本)的?
解决方案
用脚本程序(智能合约)解决实体间(人与人/机构与机构)的信任问题。
脚本:
我向公证账户打100元
你向公证账户打100元
if 天气晴 公证账户向我转账200
else 公证账户向你转账200
把执行的过程交给机器,机器按照我们之间的约定过程执行,因为代码就是咱们之间的约定规则,代码即逻辑,1就是1, 0就是0,没有带有"思想"的人的参与,大家的合同如何约定,机器就如何执行。所以咱们可以建立一个100元打赌信任。这里的脚本程序也被称作智能合约。
智能合约是分布式的程序脚本。
假设只在我的电脑上安装这个智能合约,我可以把程序代码偷偷的换掉,让程序逻辑变为无论如何都转我200。所以单机版的智能合约并不能解决完全可以解决信任成本。因此这个程序需要是分布式的,我可以在自己机器上运行这个脚本,你也可以在自己机器上运行这个脚本。
智能合约需要一个一般等价物。
假设智能合约是分布在多台机器上执行的,但我还是把我机器上的代码给偷偷的换掉了,公证账户不可能既向我的账户打200(我的智能合约结果),又向你的账户打200(你的智能合约结果)。
如果使用银行账户的话,谁先从智能合约转账200出去,智能合约账户里就没有余额了,不能再转了。
因此我们不能使用外部账户,需要我们自己维护一个分布式的账本,用来记录我们的转账记录。
假设账本里记录了我有100元数字货币,那么至少使用这个智能合约的合约双方要认可这100元数字货币等价于现实的100元老爷爷,否则无从谈起后续操作(如转账)了。
如比特币就是比特币区块链系统中的一般等价物。
智能合约的执行结果需要达成共识。
假设智能合约是分布在多台机器上执行的,但我还是把我机器上的代码给偷偷的换掉了,那么最终的结果,是以你的结果为准,还是以我的结果为准?
假设我先算出结果,所有人都可以用自己机器对我的结果进行校验,如果校验失败,会认为我的结果非法,不予通过,也就是说我的结果不会被记录到分布式账本上。即使我做假了,大家也不认同我的结果。
那么,到底把谁的执行结果记录到分布式账本上?谁来记?所以我们需要达成以谁的结果(也就是谁来记账)为准的共同看法(共识)。如果多台机器都算出正确结果,我们以谁的结果为准?
最简单的共识,谁先算出结果,就谁来记账(以他的结果为共识结果)。假设是一起算出来的呢?在继续算下一个结果,谁先算出下一个,以谁为准......
智能合约不是万能的,不是所有的合约都能转化为智能合约。
男孩对女孩说:“我把天上的月亮摘来送给你。”
<完>