何为区块链

简介: 区块链最近几年成为了一个很热门的课题,很多人知道区块链源自比特币。何为区块链呢?我们来演义一下:小张在银行里存了笔钱100块,小明在银行里也开了个户。

区块链最近几年成为了一个很热门的课题,很多人知道区块链源自比特币。

何为区块链呢?我们来演义一下:
小张在银行里存了笔钱100块,小明在银行里也开了个户。某天小张转给小明80块,于是小张只有20块,小明有了80块。
为了记录这些数据,银行开了2张表,1张是账户信息表(姓名,余额),另一张是转账表(转账人,收帐人,金额,时间)。原本只用第1张表就够了,因为每个人手头余额就行了,但是发现系统是不可信的,万一转账时,小张-80,但是小明+80时没有执行成功怎么办呢?不就丢了这80块么。于是出现了第二张表,又称对帐表、账本,当账不平时,就可以拿出这个记录来说事来核算 。
问题又来了,一些人说,这银行也不可靠,会不会有人来串改这个账本?公信问题受到挑战。
于是有人在想,这样吧,能不能把这个账本记录在多个地方,多台电脑上。也就是说,你不信我,可以,你自己拿台电脑来,转账时把相关转账信息同时存于多台电脑上,也放你电脑上了份。如果要对账时,先看看所有电脑上的账本是否一致再说。这样可信度就高了。
要设计这样的系统变得复杂多了,首先传统的MIS表已经不再适用,因为除了追加转账记录,还需要核对等各种操作,于是设计成这样:

这里写图片描述

把每一次转账记录当成一个区块,然后通过链条将其串起来,每一个区块除了记录本次交易信息,还记录前一个区块的编号。这样的话,追加很容易,删除比较困难。

这里写图片描述

然后整个架构如上图,每个结点中,保存着同一套账本链。这样也就实现了将对来以银行为中心的系统,变成了分散的小中心。也是所说的去中心化。

每操作一笔交易时,需要通知所有加入到该区块链中的服务器,各服务器把账本链进行调整,所有一致通过后,交易才能完成。

就这么简单么?——事情远没有这么简单。如果就这样设计的系统,首先就是一个低可用么。如果服务器群中,任意一个结点挂了,那么交易失败,这样的稳定性是没有接受的。

于是协商,如果有机器挂了,那么我们就在剩下的机器中完成交易,然后等那台机好了后,再自动从其他机器上把该账本同步过来。

完美了吗?——No,某次交易刚好出现下面的情况:

这里写图片描述

好巧不巧,当小张和小李交易时,出现了上面的情况,结点123突然与结点45不通了。这情况又叫做脑裂。
小张通过123结点,向小李转账100块。可小红连接上结点45向小李转了10块,同时小李本事好黑进了网络,将小张20块转到自己帐上来,并小在各自的小网络中都执行成功了。

好了,突然间,这两个网络又通了。这里这个结果怎么处理?有的交易是正常的,如小红转的,有的是非正常的,比如小李控制的,因为按理小张的余额是不足以支持第二次转账了的。

这里碰到的问题很像拜占庭将军问题,中间信息存在不可靠,如何最终决策。但我们知道这个问题是没有精准解的。只能设计一套在某种情况下合理解决方案。
这里的解决办法是,合并时比较哪边的链长,并把短的一边进行抛弃。那么小李有没有办法真正的黑到这笔费用呢?有办法,在自己小规模的网络里进行N笔交易,并且长度超过主网中的。但这样的话他将花费更多成本,终合来说这种情况在情理上不存在。故认为这样的整体架构是可信的。
以上就是区块链的基本情况。那么比特币又是怎么一回事呢?可以理解为一种特殊的电子货币在区块链上进行交易的特殊应用。
交易可以理解,按之前交易描述并不多,无非一些数字。那电子货币又是什么。我们先看一下实物货币,有几大特性:
第一、实物货币给你我就没有,我给了你,我就没有,但电子的容易复制,怎么办呢?——实际上采用了非对称加密技术,每个人保留私钥,用自己的私钥加密,同时在服务器上进行交换加密处理,阻止了复制操作。

第二、实物货币会有一定的工作量的,比如古代拿贝壳当货币,那也一定会提出这种可以当货币的贝壳得有一定的条件,否则自己到海边随便捡些有就,那就乱了。那电子货币如何也能产生一定工作量,要得到得花功夫呢?——方式就是出道算术题,解出来的东西当成比特币。那什么题目这么神奇?答案是hash。题目就是找到一个字符串,要求它的hash值(64位)满足一定条件,前面12位全是0。
为什么选这题?我们知道hash是一个很神奇,当前有某个字符串已经有11个0了,你想改变这字符串中任意一个字符,将会导致这个hash变得面目全非。也就是说我们不能通过计算、或递推等方式来很轻松的得到这个满足条件的hash值。找这个字符串的过程叫做挖矿。而且总的位数有限,故总比特币数量有限。当你找到一个字符串满足要求后,还得去服务器上比较,有没有别人已经挖到,已经有的就不算,所以挖矿将会越来越难。

目录
相关文章
|
存储 算法 安全
区块链概念介绍
介绍区块链及EOS的相关概念
136 0
|
安全 区块链
图解区块链:14张图看懂什么是“区块链技术”?
图解区块链:14张图看懂什么是“区块链技术”?
2442 0
图解区块链:14张图看懂什么是“区块链技术”?
|
区块链
区块链 - 侠客岛:终于有人把区块链讲清楚了(下)
区块链 - 侠客岛:终于有人把区块链讲清楚了(下)
150 0
区块链 - 侠客岛:终于有人把区块链讲清楚了(下)
|
区块链 数据安全/隐私保护
区块链 - 侠客岛:终于有人把区块链讲清楚了(中)
区块链 - 侠客岛:终于有人把区块链讲清楚了(中)
117 0
区块链 - 侠客岛:终于有人把区块链讲清楚了(中)
|
算法 安全 区块链
区块链 - 侠客岛:终于有人把区块链讲清楚了(上)
区块链 - 侠客岛:终于有人把区块链讲清楚了(上)
392 0
区块链 - 侠客岛:终于有人把区块链讲清楚了(上)
|
安全 算法 网络安全
【区块链之技术进阶】掰一掰区块链共识机制与分布式一致性算法
本篇文章是【区块链之技术进阶】的第七篇文章,在之前的文章中咱们多多少少提及了共识算法等相关知识,但是却没有具体地更加深入地了解,本文就为大家掰一掰区块链共识机制与分布式一致性算法,两者究竟有什么爱恨情仇呢?本文为大家揭晓。
2528 0
|
区块链 数据安全/隐私保护 安全
带你读《区块链真相》之一:天上掉下个区块链,吃透区块链的六大要领
本书涉及12大主题、80多个重大议题,采集原材料50万字,凝结着近40人的智慧,他们是企业家、科学家、大学教授、经济学家、比特币研究者、风险投资专家、数字业务发展战略家、法律界人士和科技媒体大佬、视频创作者,为各界人士尤其企业决策者,提供应对区块链的决策内参。
|
区块链 数据安全/隐私保护
区块链的原理与应用? -2
接着上一篇.上一篇还没有输出,其实加入了index在实体类中. package com.sha256.sha256.bean; import com.sha256.sha256.utils.SHA256Util; import lombok.
1093 0
区块链的原理与应用? -1
读完了 <区块链 领导干部读本> , 以及看了一部分<区块链原理,设计与应用>, 通过对区块链的一些了解跟随网络博客完成demo 创建区块链 区块链就是一串或者是一系列区块的集合,类似于链表的概念,每个区块都指向于后面一个区块,然后顺序的连接在一起.
1295 0
|
算法 区块链 数据安全/隐私保护
3走进区块链-区块链运行机制
区块链网络是一个分布式网络,网络中存在众多节点,每一个节点都参与数据维护。当有新的数据加入时,所有节点都会对数据进行验证,节点间必须对处理结果达成一致才能将新加入的数据成功写入各自维护的区块链中,目的是让网络中每个节点都拥有一套完全一致的数据记录。
1092 0