北大肖臻老师<<区块链技术>>笔记1

2023-11-11

课程的大纲

  1. 密码学基础
  2. 比特币的数据结构
  3. 共识协议和系统实现
  4. 挖矿算法和难度调整
  5. 比特币的脚本
  6. 软分叉和硬分叉
  7. 匿名和隐私保护

以太坊是后面的

首先是密码学基础的学习:

crypto-currency(虚拟货币)是不加密的,区块链上所有的教以都是公开的。其中有转账金额和地址。

cryptographc hash function(密码学哈希函数)特点

1.collision resistance 哈希碰撞 (目前无法避免的)

例如:有两个值x和y,其中x!=y,但是hash出来的值H(x)==H(y),这样就是发生了哈希碰撞(collision resistance)。

输入的数值样式可以有很多,无限个。但是哈希函数出来的值是有限个的。可以用来检测数据是否被进行了更改。hash值如果进行了更改就会与原来的值对不上。

没有什么高效的方法去制作人为的哈希碰撞。如果知道一个y,没有特定的寻找x的方法使得H(x)==H(y),只可以使用brute-force(蛮力),一个个去寻找。

目前没有那个哈希函数能在数学上证明是哈希碰撞的。

但是以前MD5刚开始也是认为是哈希碰撞的。但后来人们找到可以人为进行碰撞的方法,所以它并不安全。

2.hiding 单向不可逆

例如:知道一个x,可以计算H(x)。但是知道H(x)却计算不出来x。

因为每一个都可以进行蛮力求解,所以hiding成立需要输入的结果的空间足够的大,这样可以保证每种可能性都大致相同。

其中collision resistance(哈希碰撞)+hiding(单向不可逆)

可以生成digital commitment(数字委托)或者说是digital equivalent of a sealed envelope(数字等效)类似于可以提前把结果放在公证人哪里,等结果出来与之对比。

在hash函数这里就是对数据进行加密,因为hiding的性质,当hash函数加密之后的数据进行更改的时候,就没有办法解密成原来的样子(用到了 collision resistance性质)。

但是如果输入的数据样本过少,可以在后面加上nonce(随机数),这样增大输入空间保证hiding的性质。

3.比特币中的哈希函数往往还有性质3

3.puzzle friendly (没有捷径)

意思是如果你想计算出来的哈希函数满足某些条件或者是某种范围,你没有捷径,puzzle friendly只可以一个个的去尝试。

比特币挖矿的过程就是去寻找一个nonce(随机数),随机数加上区块块头中的其他信息合并在一起作为输入,取得哈希值要小于特定的值。

所以因为有puzzle friendly这个性质使得挖比特币得过程是没有捷径得,只可以一个个得去尝试。

这里提到一个proof of work表示的是挖矿中得工作证明。

可能第一个性质和第三个性质容易搞混

第三个性质(puzzle friendly)意思是无法人为得去获取特定(特征值)得哈希值。

第一个性质(collision resistance) 意思是无法人为的创造哈希碰撞。

这里也有一句话 difficult to solve,but essay to verify

虽然找到一个符合要求的nonce很难,但一旦找到之后去证明是否正确是很简单的,只需要进行一遍计算即可。

SHA-256

比特币使用的哈希函数 SHA-> secure hash algorithm

对称和非对称加密体系

对称是加密和解密用的同一个密钥。

非对称是有一对(public key,private key)

加密利用公钥,解密利用私钥。这里注意加密和解密都要使用的是接收方的公钥和私钥。

比特币签名

因为加密货币是不加密的,需要非对称加密进行签名。意思是比特币的交易是谁发起的,例如用户A用自己的私钥对交易进行签名,其他用户拿到交易信息之后利用A的公钥去验证签名的正确性。

比特币中的签名一般是先对内容取一个哈希,然后再签名。

而且私钥和公钥重复概率极低,目前没有出现。

2022.5.29学习内容总结

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

北大肖臻老师<<区块链技术>>笔记1 的相关文章

随机推荐

  • 电池充放电自动测试系统介绍

    电池是国民经济的基础产品 广泛运用在交通运输 通讯 电力 铁路 国防 计算机 应急设备等各个领域 传统电池检测生产方式已经很难满足电池产品的市场需求 那么如何高效快速的进行电池产品的性能检测呢 今天就给大家介绍一款全能型电池测试系统 电池充
  • Redis连接报错:ERR Client sent AUTH, but no password is set

    如果在redis windows conf或者redis conf 我的是这个配置文件 文件夹中设置了密码 但是会报错 ERR Client sent AUTH but no password is set 用记事本打开redis wind
  • AD20/Altium designer——过孔盖油

    1 AD中添加的过孔默认是不会进行盖油的 在3D视图下如下 可以很明显看出来 2 进行过孔盖油需要双击过孔 在弹出的属性栏里进行如下操作 3 过孔盖油后 可以看见只有小孔了
  • 如何轻松玩转Rust语言

    Rust是由Mozilla主导开发的通用 编译型编程语言 设计准则为 安全 并发 实用 支持函数式 并发式 过程式以及面向对象的编程风格 本期Meetup由FISCO BCOS核心开发者李陈希给大家分享如何轻松玩转Rust语言 围绕Rust
  • DVWA失效的访问控制

    失效的访问控制 可以认为是系统对一些功能进行了访问或权限限制 但因为种种原因 限制并没有生效 造成失效的访问控制漏洞 比如越权等 这里以DVWA为例 先访问低难度的命令执行并抓包 删除cookie 并在请求头添加路径 dv vulnerab
  • 在使用win10 cmd的时候python报错:python不是内部或外部指令,也不是可运行的程序或批处理文件

    今天想用cmd运行python脚本 但是弹出了python不是内部或外部指令 也不是可运行的程序 解决方法如下 右键我的电脑 属性 高级 环境变量 path 双击path 新建 在下面的框中把python路径填进去 下面来说找路径 win1
  • 【Typora】设置图片保存相对路径

    当使用Typor编写markdown文件时 如果拷贝到其他地方 经常会图片丢失 为了解决这个问题 我使用了图片相对路径设置 文件 gt 偏好设置 找到 图片插入 设置之后保存Typora 文件路径如下 这样就不怕找不到图片啦
  • 【GD32】从0开始学GD32单片机(12)—— TIMER高级定时器详解+DMA修改PWM波占空比例程

    目录 简介 重复计数器 互补模式和死区插入 中止模式 霍尔传感器接口功能 DMA模式 例程 简介 上两篇介绍了基本定时器和通用定时器 下面是文章的链接 TIMER基本定时器详解 1毫秒延时例程 TIMER通用定时器详解 PWM波形输出捕获例
  • Python如何优雅地可视化目标检测框

    1 引言 随着计算机视觉算法工程师的内卷 从事目标检测的小伙伴们越来越多了 很多时候我们费了九牛二虎之力训练了一版模型 可是可视化出来的效果平淡无奇 是不是有点太不给力啦 作为计算机视觉工程师 我们是不是应该关注下如何优雅地可视化我们模型地
  • 漫谈 ChatGPT 与问答式 BI

    近日 观远数据G park Let s Date BI 系列直播第二期 2023 金融业如何应对 流浪数据 顺利落幕 观远数据联合创始人兼首席数据科学家字节带来了 漫谈 ChatGPT 与问答式 BI 的探索思考 字节一方面介绍了一系列 C
  • IDEA这样配置,好用到爆炸

    1 idea 简介 IDEA 全称 IntelliJ IDEA 是 JetBrains 公司 使用 java 编程语言开发的集成环境 这家公司总部位于捷克共和国的首都布拉格 公司旗下还有其它产品 例如 WebStorm PyCharm Ph
  • secureCRT连接,密码是正确的却提示密码错误

    最近用securecrt连接kali 输入的密码绝对是正确的却提醒密码错误 发现是密码认证默认出了问题 解决方法 1 进入配置文件 2 改为允许以root进行登录 把permitrootligin 后改为yes 把最前面的 删掉 3 将密码
  • 2023 年 Pycharm 最新下载安装教程,亲测可用,持续更新

    前言 PyCharm 是一款功能强大的 Python 编辑器 具有跨平台性 鉴于目前最新版 PyCharm 使用教程较少 为了节约时间 来介绍一下 PyCharm 在 Windows下是如何安装的 这是 PyCharm 的下载地址 http
  • 华为机试---字符串运用-密码截取

    题目描述 Catcher是MCA国的情报员 他工作时发现敌国会用一些对称的密码进行通信 比如像这些ABBA ABA A 123321 但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解 比如进行下列变化 ABBA gt 12ABB
  • Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks 中文翻译

    Social GAN Socially Acceptable Trajectories with Generative Adversarial Networks 中文翻译 如有异议 请多指教 非专业人员 仅供参考 摘要 理解人类的运动行为对
  • 【C++习题笔记】谭浩强C++程序设计(第三版)第七章

    本文是谭浩强老师c 程序设计 第三版 第七章的习题总结 主要涉及结构体的内容 1 定义一个结构体变量 包括年 月 日 编写程序 要求输入年月日 程序能够计算并输出改日是本年中的第几天 注意闰年问题 include
  • 《30天自制操作系统》笔记(02)——导入C语言

    30天自制操作系统 笔记 02 导入C语言 进度回顾 在上一篇 记录了计算机开机时加载IPL程序 initial program loader 一个nas汇编程序 的情况 包括IPL代码 helloos nas 编译生成helloos im
  • C++学习(七十五)有关Orekit

    Orekit ORbits Extrapolation KIT 是一款占用空间少的低层空间动力学 Java 库 它提供基础的元素 比如轨道 日期 属性和框架 和多种算法支持转换 分析和数值传递 Orekit 是纯 Java 库 运行时只依赖
  • 《C++11标准库》4.3.1标准的 Exception Class(异常类)

    所有被语言本身或标准库抛出的异常 都派生自基类 exception 定义于
  • 北大肖臻老师<<区块链技术>>笔记1

    课程的大纲 密码学基础 比特币的数据结构 共识协议和系统实现 挖矿算法和难度调整 比特币的脚本 软分叉和硬分叉 匿名和隐私保护 以太坊是后面的 首先是密码学基础的学习 crypto currency 虚拟货币 是不加密的 区块链上所有的教以