文章目录


区块链是一种点对点传输协议,现代密码学,共识算法,分布式数据存储的新型的应用模型
1.可追溯
2.不可篡改
3.去中心化
4.完整备份:区块链具有完整的分布式存储特性
5.历史记录:被存储的数据拥有完整的历史记录,可以快速查看,复原
6.交易广播:一次交易分发给网络中的其他结点,同步进行接收
。。。
**1.独立性:**所有货币都是独立存在的
**2.唯一性:**地址、交易都具有不可重复的唯一性
**3.匿名性:**账户信息和个人信息没有关联,整个交易过程全程加密
4.不可伪造
**1.点对点传输协议:**point to point
**2.现代密码学:**交易安全(哈希技术)+地址安全(公私钥技术)
**3.共识算法:**数据一致性
**4.分布式数据存储:**实现去中心化的重要技术依据
1.区块链
本质:一个分布式账本,通过共识算法来决定谁能抢到当前的记账权。区块链与区块为单位,以区块产生的时间顺序去进行连接。
2.区块
概念:区块链基本组成单位
区块头
1.时间戳
2.当前区块哈希
3.父区块哈希
4.随机数
5. merkle树
6.区块号码
区块体:交易数据
3.分布式数据库
区块链中的区块数据都存储在每一个结点中,所有结点组成了一个分布式数据库。任何多个结点退出都不会影响数据的完整性。
4.结点
运行区块软件的计算机
分类:
全结点: 保存了完整的区块链副本,安全性极高,效率不高
轻结点: 不保存所有区块,需要依赖全结点进行验证交易,效率很高,安全性不高
挖矿结点: 带有挖矿功能的全结点,专门处理交易的验证。
5.挖矿
①对交易进行验证处理(记账),区块就是通过挖矿产生的。
②穷举随机数算法,生成hash,与目标hash进行比较,成功则说明挖矿成功。
6.分叉
①升级分叉
1.矿工遵从不同的机制导致分叉
2.硬分叉:新规则产生区块不允许前项兼容(旧结点无法认可新节点产生的区块)
3.软分叉:新规则产生区块允许前项兼容(旧结点可以认可新节点产生的区块)
②挖矿分叉(多个矿工同时完成工作量证明)

解决方案:不同的矿工跟随链不一样,由于算力不同,必然会出现一条链长一条链短的情况,最后服从长的链。
7.交易
概念:一笔资产在参与方之间的转移
内容:金额,发送者,接受者,交易hash
双花攻击:复用数字货币的数字特性,可以完成同一币多次支付。
8.UTXO交易模式
(unspent transaction output)
比特币独有的交易模式,也是交易过程中的基本单位,主要避免双花攻击。
9.hash函数
将任意长度的数据,通过指定的hash函数,编码为特定长度的字符串。(生成地址,交易验证)
10.加密算法
1.对称加密(加密与解密使用同一个秘钥)
2.非对称加密(加密与解密使用同一对秘钥)
11.merkle树
①可以是二叉树,也可以是多叉树
②快速查找交易是否包含在指定区块中:快速校验,归纳数据交易的完整性
③区块头只需要保存merkle根的hash值
④merkle树支持SPV
12.P2P网络(point to point)
①通过对等网络来分配工作任务的分布式应用架构
②在P2P中,所有网络结点是对等的,不存在任何中心化结点,也不存在所谓的层级结构,所以每个节点都要承担验证功能。
1.公有链(去中心化特性)
①真正意义上的去中心化分布式区块链,任何结点可以随机加入/退出。
2.私有链(可追溯,不可篡改特性)
①部分中心化的区块链,但是有一个中心结点,可以指定参与者。
3.联盟链
①部分中心化的区块链,拥有权限控制的功能。代表:Fabric
1.去中心化:基于分布式系统,无中心结构
2.可靠数据化:分布式存储保护数据安全,参与系统结点越多,数据越安全。
3.开源可编程:区块链提供了灵活的脚本系统,甚至于完善的开发平台,支持用户创建更加高级的应用。
4.集体维护:区块链中的数据由整个系统所有具有记账功能的结点进行维护。
5.安全可行:现代密码学实现
6.准匿名性:采用与身份信息无关的hash作为hash地址与交易ID。
参考资料:哔站up主“学习猿地“系列视频
目录一.加解密算法数字签名对称加密DES(DataEncryptionStandard)3DES(TripleDES)AES(AdvancedEncryptionStandard)RSA加密法DSA(DigitalSignatureAlgorithm)ECC(EllipticCurvesCryptography)非对称加密签名与加密过程非对称加密的应用对称加密与非对称加密的结合二.数字证书图解一.加解密算法加密简单而言就是通过一种算法将明文信息转换成密文信息,信息的的接收方能够通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,算法可以分为对称加密、非对称加密、对称加密和非
?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
Rails相对较新。我正在尝试调用一个API,它应该向我返回一个唯一的URL。我的应用程序中捆绑了HTTParty。我已经创建了一个UniqueNumberController,并且我已经阅读了几个HTTParty指南,直到我想要什么,但也许我只是有点迷路,真的不知道该怎么做。基本上,我需要做的就是调用API,获取它返回的URL,然后将该URL插入到用户的数据库中。谁能给我指出正确的方向或与我分享一些代码? 最佳答案 假设API为JSON格式并返回如下数据:{"url":"http://example.com/unique-url"
我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or
我正在尝试复制此GETcurl请求:curl-D--XGET-H"Authorization:BasicdGVzdEB0YXByZXNlYXJjaC5jb206NGMzMTg2Mjg4YWUyM2ZkOTY2MWNiNWRmY2NlMTkzMGU="-H"Content-Type:application/json"http://staging.example.com/api/v1/campaigns在Ruby中,通过电子邮件+apikey生成身份验证:auth="Basic"+Base64::encode64("test@example.com:4c3186288ae23fd9661c
如何学习ruby的正则表达式?(对于假人) 最佳答案 http://www.rubular.com/在Ruby中使用正则表达式时是一个很棒的工具,因为它可以立即将结果可视化。 关于ruby-我如何学习ruby的正则表达式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1881231/