通俗易懂,到底什么是区块链?
链客,专为开发者而生,有问必答!
此文章来自区块链技术社区,未经允许拒绝转载。
2017年9月4日,中国政府正式明令禁止ICO和数字货币交易行为,随即关闭了多个数字货币交易所。同时政府也多次声明,不会将区块链与数字货币划等号,依然非常重视区块链技术在中国的发展。随后,中国工业和信息化部成立了一个专门研究区块链的实验室——可信区块链开放实验室,进一步明确政府对区块链技术发展的重视和支持。
什么是区块链?
区块链技术源于比特币,是比特币底层支撑技术。中国政府禁止比特币交易主要是担心数字货币交易带来的金融风险,以及避免不法人士利用数字货币交易的法律漏洞设计交易骗局。但区块链是一种技术,可以让交易突破传统的信任交易模式和集中化架构,实现非安全环境下的交易安全。由于区块链技术能解决传统互联网交易过程中面临的诸多问题,近年来得到了各国政府及企业的广泛关注。目前,对于区块链技术很多网站都有详细的解释,但由于过于专业,很难让人理解,现在我们以一种通俗易懂的方式来帮助读者解读什么区块链?
简单来说,区块链就是一个分布式账本,通过去中心化、去信任的方式集中维护一个可靠的数据库。以支付宝交易为例,传统的交易方式是买家在淘宝平台购买商品,然后将购买商品的钱打到支付宝这个中介平台,待卖方发货以及买方确认收到货之后,再由买方通知支付宝将钱打到卖方账户。但区块链技术支撑的交易模式完全不同,买家和卖家可直接进行交易,不需要通过任何中间平台做信用交易,交易后系统通过广播的形式将交易信息发布到P2P网络中,所有收到交易信息的节点或主机会在确认信息无误后记录下这笔交易。这就相当于所有的节点主机都为这边交易做了数据备份,即便某一台机器出现宕机、系统崩溃、木马攻击和数据篡改等情况也不会影响数据的记录,因为还有无数台机器作为备份。
从数据的角度讲,区块链是一种几乎不可能被更改的分布式数据库,这种分布式不仅体现在存储架构上,也体现在分布式记录,即由系统参与者共同维护。从技术的角度讲,区块链并不是单一的技术,而是多种技术的复合体,包括分布式存储、数字签名和P2P网络架构等。
区块链的工作原理
区块链的数据存储方式其实就是“区块”+“链”。这就好比我们的日记本,每一页都是一张纸,纸上可以记录有用文字信息,但每一页都会有页码,记录每页文字所处的顺序。对比来说,区块就是“纸”,用来记录创建期间发生的所有价值交换活动。页码就是“链”,按照时间先后顺序将区块存储在数据库中。
那么或许你就要问,那么多节点到底选择有谁来优先记录区块信息?其实很简单,就是谁最先完成记录就以谁为准。如图1所示,如果老张和老李要进行一笔交易,就会产生一笔账单记录,账单记录会显示付款人信息、收款人信息、交易的内容以及当前所处的链条序列。在交易完成后,区块链系统会将本次交易清单与上一账单编号的数据进行加密之后发布到全网所有的节点,也就是接入网络中的每一台主机,所有节点在收到公告账单信息后会争夺第一记账权,这一过程包括验证交易双方的信息,在得到确认之后更新账簿,以第一个完成账单记录的节点为准。因此,一旦第一个记账完成,所有节点只能接收记账信息并更新本地账簿,这就是共识机制。
由于每笔账单交易的记录都包含上一个链条的信息,因此一旦某一条交易记录被篡改就自然会出现信息错误或上下链条信息部匹配,而且容易出现链条分叉,因此,采用区块链技术记录的数据篡改难度几乎不可能,数据的容错性极高。而且由于所有账单交易数据的公布都是以加密的方式在网络中发送,要想在网络中篡改数据就必须至少截获51%以上的节点数据并在极短的时间内破解,这种情况可以认为几乎没有可能。
区块链发展存在哪些瓶颈?
从2009年比特币出现,区块链技术的发展时间还比较短,各种层次的应用研究仍然在不断深入的过程中。但由于区块链突破的传统的集中式数据防护架构以及非信用的安全模式,其应用依旧存在着一定的安全局限,从技术层和业务层都面临诸多挑战。
首先,共识机制的挑战。区块链中的共识算法是否能实现并保障真正的安全,需要更严格的证明和时间的考验。采用的非对称加密算法可能会随着数据、密码学和计算技术的发展而变的越来越脆弱,未来可能具有一定的破解性。此外,区块链上包含账户安全的私钥是否容易窃取仍待进一步探索。
其次,51%攻击是否能突破。在比特币中,若控制节点中绝大多数计算资源,就能重改公有账本,这被称为51%攻击。真实的区块链网络是自由开放的,所以,理论上,区块链上无法阻止拥有足够多计算资源的节点做任何操作。在现实情况下,发起51%攻击是具有一定可行性的。当然,拥有足够的算力并不会迅速破坏整个体系——至少不是短时间内,但可能会导致系统混乱。
第三,N@S攻击。针对PoW共识算法容易遭受51%攻击的问题,一些研究人员对PoW共识算法进行了改进,但在解决旧有问题的同时,也引入了区块分叉时的N@S(Nothingatstake)攻击问题。比如,在某些情况下一个区块可以暂时拥有两个子区块。这种分叉状态出现时,一般是两个矿工都在短时间内发现了工作量的解答,然后将所添加的传播到临近网络中去,其他节点便慢慢形成两种版本(子区块)的区块链。区块链中规定,这种情况下的判定条件是选择工作总量最大的那条子区块。出于自身利益最大的考虑,节点上可以同时在两个分支上继续工作,以保证利益的获取。假设99%的节点用户都如此理性地考虑收益的话,即便攻击者只掌握1%的权益依旧可以决定区块链的分支走向。他可以发出交易请求,获得资产,然后再从另一条分支上获取添加货币到自己的钱包中。
此外,区块链也存在一些难以克服的不足:效率问题。区块链没有单一节点可信任,通过计算来换取信任。简单的一个承认交易操作,需要大量的计算参与进来。比如匿名引发的风险。区块链开发者认为匿名性在区块链交易中是重要的,并非“抗审查”。如果矿工决定不处理某笔交易在地址间的收发,那就证明交易是受矿工审查的。如果交易是匿名的,矿工就不能决定优先处理哪些交易,也就不能进行审查。但匿名性会造成非法交易的猖獗,执法部门很难溯源。
结束语
尽管存在一定的安全局限和难以克服的不足,但区块链技术提供了一个规模化的共识机制,可以作为一种更高效解决信任问题的手段,建立去中心化的可信网络。目前,区块链的应用已从单一的数字货币(如比特币)应用,延伸到经济社会的各个领域,除金融服务行业的应用相对成熟外,其他行业的应用还处于探索起步阶段,期待区块链技术的更新和完善。
相关文章:

select三级联动 怎么删除前一个的_python测试开发django57.xadmin选项二级联动
前言当我们选择项目分类的时候,一个项目下关联多个模块,同时有这两个选项框的时候,需要实现选中一个项目,模块里面自动删除出该项目下的模块,如下图这种解决基本思路:1.写个jqeury脚本监听change事件2.ajax…

安装wdcp的方法和bug
1.Wdcp安装SSH登录系统,这里讲解源码编译安装和RPM包安装两种 a.源码编译安装 下载源码包wget http://dl.wdlinux.cn:5180/lanmp_laster.tar.gz 解压并安装 tar zxvf lanmp_laster.tar.gz sh in.sh linux安装wdcp之后mysql找不到my.cnf,locate my-medium.cnf。 cp /…

第七周读书笔记
《深入理解计算机系统》从程序设计与性能优化的角度介绍了计算机系统,让我从程序员的角度了解了计算机系统,更深入地理解了硬件、操作系统和编译系统等对应用程序性能和正确性的影响,并掌握了基本的程序优化设计技术,为编写更高效…

是什么限制了区块链技术的应用?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 2017年已经匆匆离去,回顾过去一整年,似乎区块链应用一直处于隐忍未发的状态,很多项目的落地已处于验证阶段&…

软件包管理(rpmyum)
一、rpm包管理器 rpm是一个功能强大的包管理工具,可用于构建,安装,查询,验证,更新和卸载软件包。 用法: rpm [OPTION...] 配置文件: /var/lib/rpm/ 已安装rpm包的元数据 选项: -i&am…

python yield理解_对Python中Yield的理解
看到下面这段程序的时候,有点不明白这个yield到底是个啥东西,看了网上很多的博客,大致理解了yield的含义,所以记录下来。要说yield首先要说python中的生成器,那么什么是生成器?假设有一个包含一百万个元素的列表&…

Linux下文件的三种时间戳
Linux下文件的三种时间标记 三种时间对应关系表 columncolumncolumn访问时间Accessatime修改时间Modifymtime状态改动时间Changectime如何查看文件文件的三种时间戳 stat filename 三种时间戳的解释 访问时间:读一次文件的内容,这个时间就会更新。比如mo…

比特币和以太坊本质有什么区别?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 14年的时候,币圈 (当时还没有链圈之说,链圈应该是17年的事情了,区块链概念的流行是15年底…

HDU1402(FFT入门)
题目链接:http://acm.hdu.edu.cn/status.php?userReykjavik11207&pid1402&status5 本题数据范围为5e4,常规方法O(n2)肯定是不行的。 FFT是离散傅里叶变换DFT的快速形式 对多项式f(x) a0 a1x a2x2 an-1xn-1,有两种表示法&#x…

python怎么读_如何用Python读写文件
前面我们已经介绍了很多Python相关的基础知识,大家是不是对Python已经有了进一步认识了呢?作为人工智能时代的热门编程语言,开始接触并学习Python的孩子越来越多,家长们都不想让自己的孩子落于人后,近期前来找陈老师咨…

什么是区块链智能合约?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 自从2009年第一枚比特币诞生,九年多时间里,区块链技术正在被应用在人们生活的各方各面,从1.0时代的数字货币&…

python数据分析基础 余本国_Python数据分析基础
本书根据作者多年教学经验编写, 条理清楚, 内容深浅适中, 尽量让读者从实例出发, 结合课后练习, 少走弯路。本书涉及的内容主要包括Python数据类型与运算、流程控制及函数与类、Pandas库的数据处理与分析等。作者通过近三轮的教学,对Python3.x的基础知识进行了筛选和…

stm32F042 (二) 按键触发中断
已经实现GPIO口输出高低电平控制LED,这里实现按键触发中断来改变LED闪亮的频率,因为PB3连着LED,所以PB3的输出模式没有改变,随意选一个GPIO口PA7接按键产生中断。因为nucleo开发板是裸板,所以按键、上拉电阻是另找在面…

区块链和智能合约的关系
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 尽管比特币(Bitcoin)和以太坊(Ethereum)是经常被一起提及的两个词,但实际上࿰…

repo同步代码_iTOP-4412开发板android4.0代码下载和编译
Android4.0 源码可以从光盘,网盘获取稳定版本,也可以从 GitHub 下载我们的开发版本。GitHub 仅提供源码下载,不提供二进制下载,二进制文件存放在光盘和网盘中。基于迅为4412开发板6.3.1.1 repo 下载android 代码管理不同于 uboot,…

vue项目构建实战基础知识:SPA理解/RESTful接口介绍/static目录配置/axios封装/打包时map文件去除...
一、SPA 不是指水疗。是 single page web application 的缩写。中文翻译为 单页应用程序 或 单页Web应用,更多解释请自行搜索。 所有的前端人员都应该明白我们的页面的 url 构成:http://www.fengcms.com/index.html?namefungleo&old32#mylove/is/wo…

神奇的输入 while(cin....)如何在遇见换行之后进入下一层循环读入
1 cin>>m>>n;2 for(int i1;i<m;i){4 int x0;5 char ch ;6 while(ch!10) //在遇到换行之后进入下一层循环读入。7 {8 x;9 cin>>c[x]; 10 chgetchar(); 11 } 神奇的输入。 get skill!转载于:https://www.cnblogs.com/zyker/p/588…

区块链中的“智能合约”有何应用?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 如刺金般闪耀的区块链时代,投资者的热潮还将持续升温,与此同时金融的大佬已经开始注意到区块链应用落地场景的实现ÿ…

米勒罗宾素性测试(Miller–Rabin primality test)
1 #include<iostream> //该程序为哥德巴赫猜(想输出所有的组合)2 #include<cmath>3 #include<cstdlib>4 #include<ctime>5 #include<cstdio>6 7 using namespace std;8 9 typedef unsigned long long ull; 10 typedef u…

Linux Linux程序练习十一(网络编程大文件发送UDP版)
//网络编程发送端--大文件传输(UDP) #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h>#include <sys/types.h> #include <sys/socket.h> #include <n…

iic通信原理_电子知识之IIC通信原理和协议分享
IIC 的一些特征: 两条总线:串行数据总线(SDA)和串行时钟总线(SCL)真正的多主机总线连接到相同总线的ic数量只受到总线的最大电容400pF限制。串行8位双向数据在标准模式下可达100K bit/s快速模式400K bit/s,高速模式下3.4Mbit/s.数据有效性规定࿱…

以太坊核心概念
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 以太坊虚拟机(EVM) 以太坊虚拟机(EVM)是以太坊中智能合约的运行环境。它不仅被沙箱封装起来&#…

使用rest_framework写api接口的一些注意事项(axios发送ajax请求)
1. 类继承GenericAPIView,定义queryset 印象深刻的事:由于原来对于继承关系不太清楚,写接口 APIView/泛指GenericAPIView不太关注queryset没有设置渲染器:默认 [JSONRenderer,BrowsableAPIRenderer]BrowsableAPIRendererÿ…

iir数字滤波器_手把手教系列之一阶数字滤波器设计实现(附代码)
[导读] 前面分享了 IIR/FIR/mean/梳状数字滤波器的具体设计实现,这几种使用起来或许觉得计算量大,相对复杂。实际工程应用中通常有必要过滤来自传感器或音频流的数据,以抑制不必要的噪声。有的应用场景,可能只需要一个最简单的一阶…

正则表达式中$1,$2 ===算是什么意思
$1,$2...是表示的小括号里的内容 $1是第一个小括号里的 ,$2是第2个小括号里的 比如 /gai([\w]?)over([\d])/ 匹配 gainover123 $1 括号里的 n $2 第2个括号里的 123转载于:https://www.cnblogs.com/vertko/p/5888902.html

为什么以太坊能成为区块链2.0的代表之作?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 区块链的学习进入到第四天,前三天学习比特币,分别从比特币的前世、货币属性和背后的区块链技术学习。 比特币是区块链的1…
(转)搭建企业内部yum仓库(centos6+centos7+epel源)
搭建企业内部yum仓库(centos6centos7epel源) 原文:https://www.cnblogs.com/nulige/p/6081192.html https://www.linuxidc.com/Linux/2017-11/148723.htm---------部署yum仓库与定制rpm包 1. 创建yum仓库目录mkdir -p /data/yum_data/cd /data/yum_data/#可以上传rp…

vs按f5没反应_《死神vs火影》中最受欢迎的游戏角色,仙鸣当之无愧上榜
hello!大家好,又到了一日一度的杨某讲游戏环节啦,赶紧系好安全带,准备上车吧。《死神vs火影》作为一款深受广大群众欢迎的街机游戏,自然而然地涌现出了一系列知名游戏角色。那么,大多数人心目中最喜欢&…
IEC61850笔记--IEC61850应用入门(二)
IEC61850标准学习和调试,测试的记录文档,主要参考了IEC61850标准文档,《IEC61850应用入门(第二版)》,开源代码libIEC61850及libIEC61850说明文档。 IEC61850标准内容参考IEC61850标准文档,以及IEC61850标准介绍文档《I…

区块链赚钱的9种方式
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 物联网火了一段时间,人工智能火了一段时间,无人驾驶火了一段时间。现在,通通被区块链的风头盖住了,都…