何为区块链

简介: 区块链最近几年成为了一个很热门的课题,很多人知道区块链源自比特币。何为区块链呢?我们来演义一下:小张在银行里存了笔钱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值。找这个字符串的过程叫做挖矿。而且总的位数有限,故总比特币数量有限。当你找到一个字符串满足要求后,还得去服务器上比较,有没有别人已经挖到,已经有的就不算,所以挖矿将会越来越难。

目录
相关文章
|
6月前
|
存储 算法 安全
区块链概念介绍
介绍区块链及EOS的相关概念
|
存储 供应链 安全
谈谈构建区块链的五项重要原则和区块链的典型应用场景
什么是区块链?从科技层面来看,区块链涉及数学、密码学、互联网和计算机编程等很多科学技术问题。
谈谈构建区块链的五项重要原则和区块链的典型应用场景
|
算法 安全 区块链
区块链 - 侠客岛:终于有人把区块链讲清楚了(上)
区块链 - 侠客岛:终于有人把区块链讲清楚了(上)
329 0
区块链 - 侠客岛:终于有人把区块链讲清楚了(上)
|
区块链
区块链 - 侠客岛:终于有人把区块链讲清楚了(下)
区块链 - 侠客岛:终于有人把区块链讲清楚了(下)
123 0
区块链 - 侠客岛:终于有人把区块链讲清楚了(下)
|
区块链 数据安全/隐私保护
区块链 - 侠客岛:终于有人把区块链讲清楚了(中)
区块链 - 侠客岛:终于有人把区块链讲清楚了(中)
92 0
区块链 - 侠客岛:终于有人把区块链讲清楚了(中)
|
区块链 数据安全/隐私保护 安全
带你读《区块链真相》之一:天上掉下个区块链,吃透区块链的六大要领
本书涉及12大主题、80多个重大议题,采集原材料50万字,凝结着近40人的智慧,他们是企业家、科学家、大学教授、经济学家、比特币研究者、风险投资专家、数字业务发展战略家、法律界人士和科技媒体大佬、视频创作者,为各界人士尤其企业决策者,提供应对区块链的决策内参。
|
区块链 算法
《区块链核心算法解析》| 每日读本书
全面解读共识在各种应用场景中的实现机制!权威、全面、易读好懂!每日搜罗最具权威专业书籍,更多图书请关注“每日读本书”。
1409 0
区块链的原理与应用? -1
读完了 <区块链 领导干部读本> , 以及看了一部分<区块链原理,设计与应用>, 通过对区块链的一些了解跟随网络博客完成demo 创建区块链 区块链就是一串或者是一系列区块的集合,类似于链表的概念,每个区块都指向于后面一个区块,然后顺序的连接在一起.
1261 0
|
区块链 数据安全/隐私保护
区块链的原理与应用? -2
接着上一篇.上一篇还没有输出,其实加入了index在实体类中. package com.sha256.sha256.bean; import com.sha256.sha256.utils.SHA256Util; import lombok.
1076 0