何为区块链

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

目录
相关文章
|
数据挖掘 数据处理 索引
数据分析必知必会 | TGI指数分析实战
TGI指数,全称Target Group Index,可以反映目标群体在特定研究范围内强势或者弱势。
2848 0
数据分析必知必会 | TGI指数分析实战
|
6月前
|
传感器 运维 监控
智慧看护:可穿戴设备在老年护理中的技术探索
智慧看护:可穿戴设备在老年护理中的技术探索
381 13
|
7月前
|
移动开发 安全 虚拟化
VMware ESXi 8.0U3c - 领先的裸机 Hypervisor
VMware ESXi 8.0U3c - 领先的裸机 Hypervisor
181 0
VMware ESXi 8.0U3c - 领先的裸机 Hypervisor
|
10月前
|
算法 数据建模 网络安全
阿里云SSL证书2024双11优惠,WoSign DV证书220元/年起
2024阿里云11.11金秋云创季火热进行中,活动月期间(2024年11月01日至11月30日),阿里云SSL证书限时优惠,部分证书产品新老同享75折起;通过优惠折扣、叠加满减优惠券等多种方式,阿里云WoSign SSL证书将实现优惠价格新低,DV SSL证书220元/年起。
835 5
|
存储 人工智能 固态存储
掌握未来:打造适用于AI人工智能开发的理想电脑配置指南
在当下技术快速发展的时代,人工智能(Artificial Intelligence, AI)已然成为大势所趋。从语音助手到自动驾驶汽车,AI的应用日渐普及。作为计算机科学的一个分支,AI侧重于创造能够执行各种复杂任务的智能机器。为了进行有效的AI研发,一个强大的电脑配置是必不可少的。本文旨在为AI开发者提供一份详尽的电脑配置建议,帮助您在这个时代浪潮中占得先机。
计算机维修
计算机维修。
425 1
|
小程序 定位技术 API
从新手到行家:支付宝小程序开发的全景攻略
【8月更文挑战第27天】在数字化转型的大潮中,支付宝小程序作为连接商家与消费者的桥梁发挥着重要作用。本文以“美食地图”支付宝小程序为例,从项目概述、开发准备、开发实践、问题解决到最终总结,全面解析支付宝小程序的开发流程。从环境搭建到页面设计,再到业务逻辑实现,最后完成性能优化、测试与发布,详细介绍如何打造一款实用且用户体验优良的小程序。“美食地图”不仅让用户轻松搜索周边美食、查看评价和优惠信息,还能在线预约,极大地提升了便利性和满意度。通过实战案例分享,为开发者提供宝贵的经验参考。
382 0
|
Web App开发 弹性计算 应用服务中间件
阿里云环境使用workbench远程登录ECS,快速搭建Docker环境
本文主要介绍如何在阿里云环境下通过workbench远程登录ECS并快速搭建Docker环境
1834 0
阿里云环境使用workbench远程登录ECS,快速搭建Docker环境
|
Linux Go API
ONL(open network linux) from OCP
https://opennetlinux.org/ github:https://github.com/OpenComputeProject/OpenNetworkLinux Open Network Linux is a Linux distribution for "bare metal" s...
4332 0