首页 > 其他分享 >【区块链】区块链技术学习总结

【区块链】区块链技术学习总结

时间:2024-05-14 16:18:51浏览次数:23  
标签:总结 以太 POW 比特 学习 中心化 分叉 区块

 

一、区块链技术简介

1.1 区块链概念

区块链是一种按时间顺序将数据区块以顺序相连的方式组合而成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。

简而言之,区块链是一条链,链上链接了许多个不能修改的数据块。

1.2 区块链应用

1.2.1 区块链1.0技术:比特币

诞生于2009年1月,比特币区块链的贡献就是提供了一个新的记账方式——基于密码学的分布式账本。
比特币区块链的缺陷是,所有规则事先写好,无法在此基础上去发展、去拓展新的应用。

1.2.2 区块链2.0技术:以太坊

诞生于2015年7月,以太坊区块链支持在其基础上做其他应用开发,也就是在以太坊区块链当做底层,当做基础设施。 以太坊区块链首次提出“智能合约”。智能合约是一套计算机程序,保证你的合同在不借助于第三方的情况下得到执行。
以太坊区块链的缺点是不支持大规模商业应用开发,而且交易速度仍然很慢。

1.2.3 区块链3.0技术:价值互联网

区块链3.0是从2018年开始的,区块链能够对于每一个互联网中代表价值的信息和字节进行产权确认、计量和存储,从而实现资产在区块链上可被追踪、控制和交易主要解决技术上和性能上支持大规模商业应用的问题。
目前尚无真正的区块链3.0系统正式上线,像EOS、Dfinity等目前处于测试阶段。
在这里插入图片描述

二、区块链1.0技术比特币

2.1 比特币

2.1.1 比特币概念

比特币是一种虚拟货币,是一种加密货币,也是一种分布式数字货币。
在这里插入图片描述

2.1.2 比特币性质

1、去中心化:比特币是第一种分布式的虚拟货币,整个网络由用户构成,完全依赖P2P网络,没有中央银行。去中心化是比特币安全与自由的保证 。
比特币是完全去中心化的,意味着它不受任何政府或金融机构的控制,并且可以在互联网上以匿名方式进行交易。
2、匿名性
3、稀缺性
4、转账成本低
5、全球流通便捷

2.1.3 比特币解决的问题

1、高度自治
2、无国界贸易
3、不可篡改
4、隐私安全

2.2 去中心化模型

2.2.1 去中心化的概念

简单理解,从传统CS模式,过度到P2P模式。去中心,而各点皆为中心。
在这里插入图片描述

2.2.2 去中心化的实现

1、去中心化的点对点电子现金系统
比特币要做的是一个“点对点的电子现金系统”,发送方和接收方直接交易,它们之间不需要中介机构的介入。

2、分布式账本
比特币的区块链是基于工作量证明形成的带时间戳、存储数据的数据块和由哈希指针连接成的链条。
这个链条或者说账本以分布式的方式存储在比特币网络的各个节点上,因而也被称为分布式账本。

3、工作量证明
比特币网络中的节点按照规则进行加密哈希计算,以竞争获得生成新区块的权利。节点在竞争获胜后就获得记账权,它生成区块成为最新区块后,就获得与新区块对应的挖矿奖励。
工作量证明也是区块链账本的安全机制。如果不重做“工作量证明”所需的大量计算则此链条不可修改,这一共识机制保证了区块链上的数据的可靠性。

4、最长链原则
在任何时刻,最长的链条是所有人都接受的最终记录。
由于最长链是由网络中的主要算力完成的,因而只要它们不都与攻击者合作,那么它们生成的最长链就是可信的。这个原则被称为“最长链原则”。

5、去中心网络
比特币的去中心网络的架构非常简洁,本身需要的基础设施很少。它可以在互联网网络上运行。计算机节点可以随时离开或加入这个去中心网络,在加入时它们只需遵守最长链原则即可。

2.2.3 去中心化的优点

1、容错性
2、抗攻击性
3、抗勾结性

2.3 分布式账本

2.3.1 隐私与快速对账

1、比特币系统利用HASH算法对交易信息(账户、交易内容)进行加密,保护隐私
2、比特币系统利用HASH值进行对账

在线哈希加解密网站:https://tool.oschina.net/encrypt?type=2

2.3.2 账本一致性的保证

2.3.2.1 双花问题

“双花”的意思就是双重支付,即为一笔资金被花费了两次。这也是数字货币领域中最大的难题。

2.3.2.2 矿工与挖矿

比特币系统规则:最长链为可信任的链条。
矿工:创造区块,使链增长。
矿工凭计算机处理能力进行挖矿。但因假链是由伪造者自己维护,而真链由网络中其他所有矿工维护,所以假链增速很难快于真链,假链很难长于真链,也就很难取代真链成为主链。
在这里插入图片描述

2.4 工作量证明POW

2.4.1 POW算法

比特币系统中,采用工作量证明POW的规则获取记账权。
POW的执行过程:
将不同的nonce值作为输入,尝试进行SHA256哈希运算,找出满足给定数量前导0的哈希值的过程。而要求的前导0的个数越多,难度越大。
在这里插入图片描述
来到在线挖矿网站进行模拟:https://andersbrownworth.com/blockchain
输入待测数据wyt,点击挖矿,得随机数6802,6802为Nonce。此操作意为6802与数据“wyt”经哈希,得值小于目标的哈希值,6802为挖矿次数。
在这里插入图片描述
在这里插入图片描述

2.4.2 双花问题的解决

1、比特币系统规则:最长链为可信任的链条。
2、采用工作量证明(POW)获取记账权。

2.5 比特币的分叉

2.5.1 分叉概念

在这里插入图片描述

2.5.2 分叉类型

1、硬分叉:因为系统更新导致出现分叉,且不可合并。如,比特币扩容。
在这里插入图片描述

2、软分叉:短暂分叉,可合并。如,篡改数据。
在这里插入图片描述

三、区块链2.0技术以太坊

3.1 以太坊

3.1.1 以太坊出现原因

比特币的不足以太坊解决方法
交易速度慢 交易速度加快
POW算法,耗电 POW+POS算法,逐步向POS算法过渡
仅完成了货币的去中心化 智能合约

3.1.2 以太坊概念

以太坊本质上是一个保存了数字交易永久记录的去中心化的公共数据库。这个数据库不需要任何中央权威机构来维持和保护各方的权益。也就是你可以在不需要第三方的情况下进行点对点交易。
以太坊 = 区块链 + 智能合约。
在这里插入图片描述

3.2 智能合约

3.2.1 智能合约简介

智能合约事实上是由计算机代码构成的一段程序。规则明确,所有人必须遵守,无条件执行。

3.2.2 智能合约缔结过程

第一步,参与缔约的双方或多方用户商定后将共同合意制定成一份智能合约;
第二步,该智能合约通过区块链网络向全球各个区块链的支点广播并存储;
第三步,构建成功的智能合约等待条件达成后自动执行合约内容。

3.2.3 智能合约的特点

1、合约内容去信任化
2、合约内容不可篡改
3、经济、高效、无纠纷

3.3 Ghost协议

3.3.1 Ghost协议引入背景

与比特币系统相比,以太坊系统缩短了出块时间。
1、出块时间短的优点:
①交易更快捷,更快被写进区块链
②系统响应时间更快

2、缺点:
①分叉情况更频繁,不利于区块链的安全(算力分散了)
②加剧对个体矿工的不公平,造成挖矿集中化现象

为了解决出块时间短带来的挑战,以太坊采用GHOST协议(贪婪最重可见子树协议、最重合法链)

3.3.2 Ghost协议算法规则

Ghost协议:根据主链出现分叉时,叔父块合并速度的快慢,设立不同级别的奖励促进合并,而不是让分叉在自己的分支上继续挖下去。
在这里插入图片描述
1、选取主链
每次分叉就选取最重子树,而非最长的,直到确定完主链的序。本图中,最终选取的主链是 0, 1B, 2C, 3D, 4B。
同时对于非主链上的块,允许他们被主链引用(主链块最多引用2个),被成功引用后这些块会成为叔块。
在这里插入图片描述

2、区块奖励
主链上的块,每引用一个叔块,奖励1/32的区块奖励。
被引用的叔块获得的奖励为正常奖励的2/8~7/8倍,离叔块越近(区块高度相差越小),奖励越高,最高为7/8。
在这里插入图片描述

3.4 权益证明机制POS

3.4.1 POS算法引入背景

在POW算法挖矿机制下,消耗大量能源,故引入POS算法。但POS算法尚处于实验阶段,故目前以太坊系统采用POW+POS组成Casper协议协议运作。
在这里插入图片描述

3.4.2 POS机制

在这里插入图片描述
在2000区块中A胜出,则在2001区块中B更有可能胜出。

3.4.3 Casper协议

1、规则:根据验证者保证金额占比换算成票数,投票选举区块。

2、相关术语:
·验证者,有资格出块和投票的完整节点。成为验证者需要付出代价。
· 押金,投票者需要放一些币在链上做押金,投票的权利和押金有关,奖金和罚款有关
· 提现的周期是4个月
· 投票其实是广播消息并决定下一个检查点
· 惩罚,没收验证者的押金
· 检查点,每过一个数量的区块是对于整个量进行检查,这个块高度就是检查点

3.5 以太坊分叉

在这里插入图片描述
在这里插入图片描述
· 以太坊系统中硬分叉出现原因:黑客攻击。为了保证投资人的合法权益,以太坊开发团队,更新了以太坊软件,而又因为部分矿工对规则上的分歧,选择不更新软件,最终导致永久的分叉。
在这里插入图片描述

四、1.0技术与2.0技术总结

4.1 1.0技术向2.0技术的演变

在这里插入图片描述

4.2 区块链技术的应用

1、区块连+金融: 构建新时期的信任体系
2、区块连+能源 :打通能源互联网的必由之路
3、区块连+医疗: 为患者打造完整的治疗体系
4、区块连+教育: 打造教育生态
5、区块连+版权: 三位一体保护著作人权益
6、区块连+农业 :让食物更纯净
7、区块连+公益: 让每一份爱心都有归宿
8、区块连+社交: 用户自己控制数据
9、区块连+物联网: 线上与线下完全融合
10、区块连+云存储: 颠覆存储市场
11、区块连+AI 人工智能: 重新定义世界黑科技

五、Reference

2小时学会区块链:https://www.bilibili.com/video/BV1gt411T7Tq

六、总结

2023年回归CSDN,重新出发,选择区块链技术进行学习,记录下自己每一步的成长。道阻且长,行则将至;行而不辍,未来可期。

2023年1月3日于家中。

 

标签:总结,以太,POW,比特,学习,中心化,分叉,区块
From: https://www.cnblogs.com/huanghanyu/p/18191558

相关文章

  • 【强化学习】A grid world 值迭代算法 (value iterator algorithm)
    强化学习——值迭代算法代码是在jupyternotebook环境下编写只需要numpy和matplotlib包。此代码为学习赵世钰老师强化学习课程之后,按照公式写出来的代码,对应第四章第一节valueiteratoralgorithm可以做的实验:调整gama值观察策略的变化调整惩罚值(fa)的大小观察......
  • C#TMS系统学习(联表报表)
    C#TMS系统代码-联表报表学习领导被裁了之后很快就有人上任了,几乎是无缝衔接,很难让我不想到这早就决定好了。我的职责没有任何变化。感受下来这个系统封装程度很高,我只要会调用方法就行。这个系统交付之后不会有太多问题,更多应该是做小需求,有大的开发任务应该也是第二期的事,嗯?怎么......
  • CompletableFuture学习
    CompleteFuture学习packagecom.example.CompleteFutureTest;importjava.util.concurrent.CompletableFuture;importjava.util.concurrent.ExecutionException;/***completeFuture用法*/publicclassTest{publicstaticvoidmain(String[]args)throwsI......
  • 机器学习实践第四篇——贝叶斯分类器
    一.什么是贝叶斯分类器  1.1贝叶斯定理  贝叶斯定理是贝叶斯统计学中的核心定理,它描述了在获得新的观察数据后如何更新概率估计。贝叶斯定理的数学表达如下:  $$P(A|B)=\frac{P(B|A)\cdotP(A)}{P(B)}$$  其中,$P(A|B)$表示在给定观察数据$B$的条件下,事件$A$发......
  • Vue学习知识汇总
    官网:https://cn.vuejs.org/前置知识:完整的学习vue:html+css、JavaScript、css3、HTML5、第三方库、网络通信、ES6+、webpack、模块化、包管理器、css预编译器体验vue功能:html+css、JavaScriptVue拥有以下特点:渐进式组件化响应式Vue的应用场景:前台的部分页面......
  • 计算机网络常见面试题总结(上)
    计算机网络常见面试题总结(上)OSI七层模型应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。每一层都为上一层提供服务TCP/IP四层模型应用层,传输层,网络层,网络接口层,各层相互独立,为上层提供服务常见的网络协议应用层:HTTP,超文本传输协议,浏览器网页使用的就是HTTP请求加载的。SM......
  • 树链剖分 学习笔记
    树链剖分学习笔记时更。还没开始学,放个板子先。板子#include<bits/stdc++.h>#definefo(x,y,z)for(int(x)=(y);(x)<=(z);(x)++)#definefu(x,y,z)for(int(x)=(y);(x)>=(z);(x)--)typedeflonglongll;inlineintqr(){ charch=getchar();intx=0,f=1; for(;ch......
  • pytest 学习 - 03 fixture
    前言有的场景setup与teardown无法满足,如:有的用例需要登录才能执行,有的用例不需要登录。fixturefixture可以满足以上特殊的场景。1.只有登录的函数上面加上 @pytest.fixture()2. 在要使用的测试方法中传入(登录函数名称),就先登录案例[email protected]()def......
  • redis学习笔记3: redis常用命令
    redis学习笔记3:redis常用命令在此处输入redis命令字符串操作命令setkeyvalue设置指定key的值(类似于put)getkey获取指定key的值setexkeysecondsvalue设置带有过期时间的keysetnxkey......
  • redis学习笔记4: 在Java中操作Redis
    redis学习笔记4:在Java中操作RedisRedis的Java客户端Jedis[命令和原生Redis基本相同]Lettuce[性能高效]SpringDateRedis[可以在Spring项目中使用,简化操作]SpringDateRedis使用方式导入maven坐标<!--https://mvnrepository.com/artifact/org.springfra......