草庐IT

区块链基础入门笔记 一

gronkie 2023-08-14 原文
  1. 比特币用了密码学的两个功能,一个是哈希,一个是签名
  2. 哈希碰撞:例有两个数,x和y,若x != y,但h(x) == h(y),则称为哈希碰撞,哈希碰撞是无法避免的,因为输入空间是大于输出空间的
  3. 哈希函数具有的重要性质:
    1. collision resistance(抗碰撞性):即没有什么人为高效的方法去制造碰撞,只能穷举输入空间所有数
      1. 通过抗碰撞性质,即可证明可以通过hash函数判断数是否被篡改,例h(m),当m被人为篡改后,hash值理应不同
      2. 但是没有哈希函数能在数学上证明抗碰撞性,只能通过实践中的经验,例md5,之前认为很安全,但后面发现可以制造哈希碰撞的方法
    2. Hidding(隐秘性):通过x能算出h(x),但无法通过h(x)反推出x,即h(x)没有泄露x的信息
      1. 该性质成立的前提为输入空间足够的大,且没有将大部分概率分散到小部分空间,即分布较均匀,防止穷举找到x
      2. 当输入空间较小时,可通过在后面加上一个随机数,来满足数足够分布均匀和满足输入空间足够大
    3. puzzle friendly:在数m通过哈希函数函数求出h(m)之前,不能知道h(m)将会若在哪个范围
      1. 挖矿的本质为找出H(block header) <= target,block header即区块链中某个结点(区块)的块头,其中有很多域,其中nonce域是我们可以设置的,而挖矿的过程即不停的寻找随机nonce,使得其满足上面的式子,而puzzle friendly性质本质是说,挖矿的过程没有捷径,只能通过不停的尝试来的到哈希值小于等于目标值的数
      2. 由于puzzle friendly,所以挖矿过程才能做为proof of work(工作量证明),因为找到了nonce符合要求,一定是做了大量的尝试工作,虽然挖矿很难,但验证很简单,只要计算一个哈希值即可
    4. 比特币用的哈希函数为SHA-256(Secure Hash Algorithm),该函数满足哈希函数的以上三个性质
  4. Sealed envelope(密封的信封),例一个人预测第二天股票结果,则他不能将结果公开,避免他人受到影响导致股票被影响,也不能将结果保存在自己那里,避免自己去修改,他可以将结果放在密封的信封里公开保存,到第二天再打开查看预测结果,判断是否正确。而我们可以通过哈希函数的collision resistance和hidding来实现,第一天将预测结果x得到的h(x)公开,他人无法通过h(x)得到x,股票不会受到影响,第二天再把x公开,可通过比较哈希值,防止篡改预测结果x
  5. 由于比特币是去中心化,所以不能像在银行开账户一样,但可以自己开通账户,不需要任何人批准开户,即在本地创建一个公私钥对,在比特币中就代表一个账户,公私钥对概念来源于非对称加密
    1. 对称加密:加密与解密过程中用到的是同一个密钥,这样的话密钥的分发就不是很方便,当网络被窃听时,可能会导致数据信息被盗窃
    2. 非对称加密:加密与解密过程中用到的是一对密钥,在传输过程中,发送方将数据通过接受方的公钥加密后发送,再通过接受方的私钥解密,公钥是可以公开的,私钥是保存在本地,不被公开的
    3. 这个公钥相当于银行账号,发送方转账时只用知道接受方的公钥就行,私钥相当于账户密码,知道密码时,就可以把该账户的钱转走
  6. 公钥私钥的作用即用来签名,比如有a要转比特币给b,要把交易放到区块链上,别人需要知道该交易是否是a发起,是否存在冒名顶替,即验证交易真实性,需要在交易时,a用自己的私钥对交易进行签命,其他人收到这个交易时,可以通过a的公钥来验证签名的正确性
  7. 例256位哈希值情况,随机生成公私钥对与已经存在的公私钥对相同的概率可以视为0,概率极低,前提是我们假设有一个好的随机源,比特币不仅要求生成公私钥时有好的随机源,还要求每一次签命的时候都有好的随机源,否则有可能会泄露私钥。简单来说,一个良好的随机源应该包含如下特性:
    1. 不可预测:任何时间点任何个体和群体都不能预测为发布的随机数
    2. 没有偏向性:最后的输出分布完全是随机的,不能有任何的倾向性
    3. 公共可验证:在随机数生成之后,任何人都可以进行验证
    4. 去中心化:随机数的产生应当是由一群独立而且活跃的个体产生出来
    5. 可获得性:系统必须保持持续运行,总是(按照节奏)不断地输出随机结果

有关区块链基础入门笔记 一的更多相关文章

  1. 区块链之加解密算法&数字证书 - 2

    目录一.加解密算法数字签名对称加密DES(DataEncryptionStandard)3DES(TripleDES)AES(AdvancedEncryptionStandard)RSA加密法DSA(DigitalSignatureAlgorithm)ECC(EllipticCurvesCryptography)非对称加密签名与加密过程非对称加密的应用对称加密与非对称加密的结合二.数字证书图解一.加解密算法加密简单而言就是通过一种算法将明文信息转换成密文信息,信息的的接收方能够通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,算法可以分为对称加密、非对称加密、对称加密和非

  2. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  3. 软件测试基础 - 2

    Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功

  4. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  5. 微信小程序开发入门与实战(Behaviors使用) - 2

    @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

  6. 【Java入门】使用Java实现文件夹的遍历 - 2

    遍历文件夹我们通常是使用递归进行操作,这种方式比较简单,也比较容易理解。本文为大家介绍另一种不使用递归的方式,由于没有使用递归,只用到了循环和集合,所以效率更高一些!一、使用递归遍历文件夹整体思路1、使用File封装初始目录,2、打印这个目录3、获取这个目录下所有的子文件和子目录的数组。4、遍历这个数组,取出每个File对象4-1、如果File是否是一个文件,打印4-2、否则就是一个目录,递归调用代码实现publicclassSearchFile{publicstaticvoidmain(String[]args){//初始目录Filedir=newFile("d:/Dev");Datebeg

  7. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

  8. 【网络】-- 网络基础 - 2

    (本文是网络的宏观的概念铺垫)目录计算机网络背景网络发展认识"协议"网络协议初识协议分层OSI七层模型TCP/IP五层(或四层)模型报头以太网碰撞路由器IP地址和MAC地址IP地址与MAC地址总结IP地址MAC地址计算机网络背景网络发展        是最开始先有的计算机,计算机后来因为多项技术的水平升高,逐渐的计算机变的小型化、高效化。后来因为计算机其本身的计算能力比较的快速:独立模式:计算机之间相互独立。    如:有三个人,每个人做的不同的事物,但是是需要协作的完成。    而这三个人所做的事是需要进行协作的,然而刚开始因为每一台计算机之间都是互相独立的。所以前面的人处理完了就需要将数据

  9. 区块链入门教程(6)--WeBASE-Front节点前置服务安装 - 2

    文章目录1.任务背景2.任务目标3.相关知识点4.任务实操4.1安装配置JDK4.2启动FISCOBCOS4.3下载解压WeBASE-Front4.4拷贝sdk证书文件4.5启动节点4.6访问节点4.7检查运行状态5.任务总结1.任务背景FISCOBCOS其实是有控制台管理工具,用来对区块链系统进行各种管理操作。但是对于初学者来说,还是可视化界面更友好,本节就来介绍WeBASE管理平台,这是一款微众银行开源的自研区块链中间件平台,可以降低区块链使用的门槛,大幅提高区块链应用的开发效率。微众银行是腾讯牵头设立的民营银行,在国内民营银行里还是比较出名的。微众银行参与FISCOBCOS生态建设,一定

  10. iNFTnews | 周杰伦18年前未发布的作品Demo,藏在了区块链技术里 - 2

    当音乐碰上区块链技术,会擦出怎样的火花?或许周杰伦已经给了我们答案。8月29日下午,B站独家首发周杰伦限定珍藏Demo独家访谈VCR,周杰伦在VCR里分享了《晴天》《青花瓷》《搁浅》《爱在西元前》四首经典歌曲Demo背后的创作故事,并首次公布18年前未发布的神秘作品《纽约地铁》的Demo。在VCR中,方文山和杰威尔音乐提及到“多亏了区块链技术,现在我们可以将这些Demos,变成独一无二具有收藏价值的艺术品,这些Demos可以在薄盒(国内数藏平台)上听到。”如何将音乐与区块链技术相结合,薄盒方面称:“薄盒作为区块链技术服务方,打破传统对于区块链技术只能作为数字收藏的理解。聚焦于区块链技术赋能,在

随机推荐