1分钟了解“区块链分叉”的本质

转载自 1分钟了解“区块链分叉”的本质

有不少朋友问,全球每个区块链节点都包含全部数据,都在最新的区块链数据上挖符合条件的区块,如何两个节点同时挖到新区块,出现数据不一致,该怎么办呢?

 

今天,花1分钟和大家介绍什么是区块链分叉,来解答上面的问题。

 

假设当前最新的区块链有三个区块:

 

假设中国有一个节点,美国有一个节点,同时挖到了矿(即找到了符合哈希预期的区块,挖矿的过程详见《1分钟了解挖矿的本质》),这两个节点都会把自己挖到的矿,链到自己本地的区块链上,这就出现了区块链分叉

 

同时,这两个节点会将“我挖到矿啦”同步全球其他节点,以便于其他节点同步完最新的数据后,在最新的区块链上继续挖矿,此时:

  • 离中国节点较近的点,可能先同步到“中国链”,并在此链的基础上继续挖,链条会持续增长

  • 离美国节点较近的点,可能先同步到“美国链”,并在此链的基础上继续挖,链条也会持续增长

  • 节点收到两个冲突的区块链同步,会判断此时哪条链的长度更长,会以长度更长的区块链为准

画外音:长度更长的区块链消耗的计算力更多,不能让大部分矿工“白干啦”。


如此迭代,最终全球区块链终究会达成一致,以最长的区块链为准。

画外音:如果不遵守规则,成为“少数派”的节点挖到的新矿将不会被“多数派”承认,就等于“白干啦”,在区块链系统里,“遵守规则”是所有节点的最佳策略

 

除非,有人掌握了全球51%的计算力(额,这不是相当于中心化了吗),才能为所欲为。承载比特币应用的区块链,一般认为一个区块后面再链了6个区块后,就不肯能被“颠覆”了,故称为“六次确认”

画外音:额,挖到一个新区块别高兴太早,等后面链了6个其他区块的时候,再庆祝吧。承载比特币应用的区块链,平均10分钟生成一个区块,“六次确认”大概需要经历1个小时。如何保证平均十分生成一个区块,详见《1分钟了解区块如何匀速生成》。

 

关于区块链分叉,“软分叉”和“硬分叉”这两个概念是不能不提的。

 

什么是软分叉?

:区块链系统升级后,在所有节点升级到最新的版本之前,由于程序版本的差异可能会产生分叉,只要升级到最新的版本,分叉就会消除,这就是“软分叉”,软分叉是临时的

画外音:原文是说

A temporary fork in the block chain which commonly occurs when miners using non-upgraded nodes violate a new consensus rule their nodes don’t know about.

 

什么是硬分叉?

:有些人头硬,不按照规则来,拉了一个分支,以“道德”或者“法律”的名义,号召大家认可自己的链,形成分叉,这就是“硬分叉”,硬分叉是永久的

 

区块链领域最有名的硬分叉,是“以太坊”分叉,事情大概是这样的:

  • 黑客盗取了大概6kw美元的合约币

  • 以太坊开发团队修改源码,强行把第1920000个区块的资金转移到另一个地址,“夺回”黑客控制的合约币

  • 大部分矿工认同这个修改,一部分矿工不认同这个修改,于是形成了两条链,新链是以太坊(ETH),原链是以太经典(ETC)

  • 大家继续在自己认可的链路上继续挖矿

画外音:

1)区块头里能记录版本信息,所以理论上任何人都可以改程序,升级版本自己玩,只是没有人陪你玩罢了,没人陪你玩,你挖到的矿大家不认可,就只是浪费电。还是那句话,区块链的世界里,遵守规则才能让矿工的利益最大化

2)硬分叉,其实违背了区块链“不能修改”的技术本质,采用了人为手段“强制回滚”,楼主认为,这违背了区块链去中心化的技术本质。

 

讲了四篇区块链,后续开始讲比特币

  • 为什么大家疯狂的挖矿,有什么价值

  • 比特币的本质是啥

  • 区块能匀速生成,比特币为啥总量有限

  • 比特币交易的过程是怎么样的

 

一分钟很短,希望这一分钟,大家有收获。

期待下一个一分钟,有你一起。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/331065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sql server数据库:创建数据库、建立数据库用户、为用户赋予权限

1 使用sql创建数据库 use test go create database test2 on primary (nametest2_data, -- 主文件逻辑名filenameD:\DataSqlserver\test2_data.mdf,--物理路径size5MB,filegrowth15% ) log on (nametest2_log,filenameD:\DataSqlserver\test2_log.ldf, --日志物理文件名size…

review_core_basic_java(1)java程序设计概述

【0】README1)本文部分文字描述转自 “core java volume 1” 旨在review “review_core_basic_java(1)java程序设计概述” 的相关知识;【1】 java 程序设计平台 【2】 java 白皮书的关键术语0)intro:java的设计者编写了颇有影响力…

全球如何保证区块生成是匀速的?

转载自 全球如何保证区块生成是匀速的? 区块链有个特点:虽然大家都在采矿,但挖到矿的速度是均匀的。以承载比特币的区块链为例,平均每10分钟产出一个区块,这个速度基本是不变的。 有朋友就有疑问了,计算能力…

hibernate关联映射:多对一、一对一

配置对象关联关系 - 单向一对多关系 - 例如&#xff1a;班级与学生 Grade类中 public class Grade{private int gid;private String gname;private String gdesc;private Set student new HashSet();//set实现班级与学生的一对多关系 } Grade.hbm.xml中 <hibernate-m…

dom4j-cookbook

【0】README1&#xff09;本文译自http://dom4j.sourceforge.net/dom4j-1.6.1/cookbook.html 2&#xff09;intro&#xff1a; 2.1&#xff09;dom4j 是一个对象模型&#xff0c;在内存中表示一颗XML 树。dom4j 提供了易于使用的API以提供强大的处理特性&#xff0c;操纵或控制…

Spring 整合 Quartz 分布式调度

转载自 Spring 整合 Quartz 分布式调度本文旨在对 SpringQuartz 分布式调度有一个直观的了解&#xff0c;通过实际的使用来解决问题。前言为了保证应用的高可用和高并发性&#xff0c;一般都会部署多个节点&#xff1b;对于定时任务&#xff0c;如果每个节点都执行自己的定时任…

使用vo注释做一个poi导出功能

1 jsp中&#xff1a; <a href"${basePath}/manage/bulletinAction.do?methodexportMainProduct&is18th1">导出公司主营产品</a> 2 action中&#xff1a; /*** 导出主营产品*/public void exportMainProduct(ActionMapping mapping, ActionForm fo…

java_basic_review(5) java继承

【0】README1&#xff09;本文主要对 java 继承的一些 重点知识进行复习&#xff1b;2&#xff09;for source code&#xff0c; please visit java_basic_review(5)源代码3&#xff09; proj dir tree【1】super 和 this 的比较1&#xff09;this的用途&#xff1a;一是引用隐…

无监督学习的魅力

转载自 无监督学习的魅力 如果你的一大坨数据没。有。标。签&#xff0c;怎么办&#xff1f; 无监督学习是机器学习算法里非常扑朔迷离的一个类别&#xff0c;负责解决这些“没有真实值 (no-ground-truth) ”的数据。 本文会讲到&#xff0c;无监督学习到底是什么&#xff0c;和…

log4j入门实例

http://www.codeceo.com/article/log4j-usage.html

java_basic_review(5)java反射荔枝

【0】README 1&#xff09;本文旨在 review java反射荔枝&#xff1b; 【1】荔枝如下 【2】实例化Class类对象 Test // 实例化Class类对象public void testInitializeClassObject() {Class c1;Class c2;Class c3;try {c1 Demo.class; // way1.c2 new Demo().getClass(); //…

Java单链表反转

转载自 Java单链表反转 详细过程 &#xff08;一&#xff09;单链表的结点结构:  data域&#xff1a;存储数据元素信息的域称为数据域&#xff1b;  next域&#xff1a;存储直接后继位置的域称为指针域&#xff0c;它是存放结点的直接后继的地址&#xff08;位置&…

java实现压缩图片的方法

前段时间在使用对图片加水印后&#xff0c;由于需加水印的图片的宽度和高度都非常的大&#xff0c;加了水印后图片从几百KB&#xff0c;变成了几MB&#xff0c;严重影响了图片在页面的加载速度&#xff01; 经过仔细的琢磨&#xff0c;决定先对图片进行压缩&#xff0c;再加水…

openfire log4j:ERROR setFile(null,true) call failed.

【0】README 1&#xff09;本文旨在解决 当 openfire server 启动时的报错信息&#xff1b; 【2】errors solutions 【2.1】errors log4j:ERROR setFile(null,true) call failed. java.io.FileNotFoundException: C:\Program Files (x86)\Openfire\bin\..\logs\all.log (…

用js处理图片加载错误时加载默认图片的方法

jsp <img src"${bulletin.logo }" onerror"onfind(this);" > js代码 <script type"text/javascript"> function onfind(img){img.src"/front/images/logo_wutu.jpg";img.onerrornull; } </script>

异常org.xmlpull.v1.XmlPullParserException

【0】对 org.xmlpull.v1.XmlPullParserException 异常的解决方法 Exception in thread "main" java.lang.ExceptionInInitializerErrorat org.jivesoftware.smack.SmackConfiguration.getVersion(SmackConfiguration.java:96)at org.jivesoftware.smack.AbstractXMPP…

跳跃表(Skip list)原理与java实现

转载自 【算法导论33】跳跃表&#xff08;Skip list&#xff09;原理与java实现Skip list是一个用于有序元素序列快速搜索的数据结构&#xff0c;由美国计算机科学家William Pugh发明于1989年。它的效率和红黑树以及 AVL 树不相上下&#xff0c;但实现起来比较容易。作者Willia…

简单的hibernate环境搭建、自动生成model/配置/hibernate.xml配置文件

自己亲测的东西才是最有效果的&#xff0c;下面贴出整个编写的过程。 1 hibernate环境搭建&#xff0c;这个博客非常给力&#xff1a;http://www.111cn.net/wy/js-ajax/93142.htm 需要用到的jar包&#xff1a; 2 使用myeclipse自动生成model/model配置文件/hibernate.xml配…

java_advanced_review(3)补充:利用网络套接字实现类似qq 的控制台通讯

【0】README1&#xff09;本文旨在实现 利用网络套接字实现类似qq 的控制台通讯&#xff0c; client 采用telnet and java app&#xff0c; server采用 java app&#xff1b;2&#xff09;also&#xff0c; you can check out the source code from https://github.com/pacoson…

Java 常见的 30 个误区与细节

转载自 Java 常见的 30 个误区与细节1、在Java中&#xff0c;没有goto语句。因为大量使用goto语句会降低程序的可读性和可维护性&#xff0c;所以Java语言取消了goto的使用。同时&#xff0c;为了避免程序员自行使用goto所带来的混乱&#xff0c;Java语言仍将goto定义为一个关键…