代码编织梦想

  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. 可获得性:系统必须保持持续运行,总是(按照节奏)不断地输出随机结果
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_52212261/article/details/127141277

区块链投资入门篇—骨灰版_rectsuly的博客-爱代码爱编程

区块链技术未来会大规模地普及,比特币是区块链技术的一种具体应用。能抓住这样的机会是每个人一生中难得的机遇,如同90年代初期的证券市场。 目前很多人普遍的问题是不懂,也懒得看,懒得研究。当你看到这篇教程的时候,说明你已经走在了时代的前列。 从怀疑到坚信,只需要你注册一个账号,拿出哪怕100元来参与。先上车再熟悉,这是对新人的

区块链入门笔记(一)——比特币的原理和挖矿机制_说到做到_我的忍道的博客-爱代码爱编程

一、比特币: 1. 分布式的虚拟货币。     区别于现实银行的中央系统货币。 2. 基础设施搭建     1)完全公开     2)只是记录每笔交易信息     3)记录完全公开,个人信息不公开,有完整的公钥加密系统,可以保证唯一性和安全性     4)矿工:挖矿来增加区块链、挖矿成功奖励比特币     5)建立初始区块链,即初始比特币、初始交易记录 3

区块链入门学习笔记(一)_老鼠爱上叮当猫的博客-爱代码爱编程

比特币的原理和运行机制 1.比特币产生的动机 以物易物实物货币(黄金)符号货币(纸币)中央系统虚拟货币分布式虚拟货币(中本聪) 2.基础设施搭建 (1)账簿公开机制 账簿不记录余额,只记录交易。 账簿由私有改为公

区块链入门笔记_messi-q的博客-爱代码爱编程

区块链入门笔记        区块链(BlockChain),是区块(Block)和链(Chain)的直译, 每个区块存储规定时间内的交易数据.并通过密码学的方式.形成一个不可篡改、全员共有的分布式账本。       区块链中的交易是一种去中心化机制,区块链特性:分布式存储,数据可溯源,不能被篡改,去中心化。       哈希:将一串明文数据加密成一

区块链安全入门笔记(一) | 慢雾科普_fly_鹏程万里的博客-爱代码爱编程

虽然有着越来越多的人参与到区块链的行业之中,然而由于很多人之前并没有接触过区块链,也没有相关的安全知识,安全意识薄弱,这就很容易让攻击者们有空可钻。面对区块链的众多安全问题,慢雾特推出区块链安全入门笔记系列,向大家介绍十篇区块链安全相关名词,让新手们更快适应区块链危机四伏的安全攻防世界。 钱包 Wallet 钱包(Wallet)是一个管理私钥的工具

区块链安全入门笔记(三) | 慢雾科普_fly_鹏程万里的博客-爱代码爱编程

虽然有着越来越多的人参与到区块链的行业之中,然而由于很多人之前并没有接触过区块链,也没有相关的安全知识,安全意识薄弱,这就很容易让攻击者们有空可钻。面对区块链的众多安全问题,慢雾特推出区块链安全入门笔记系列,向大家介绍十篇区块链安全相关名词,让新手们更快适应区块链危机四伏的安全攻防世界,同时欢迎添加文章末尾二维码催更! 共识 Consensus 共

区块链安全入门笔记_链客区块链技术问答社区的博客-爱代码爱编程

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 虽然有着越来越多的人参与到区块链的行业之中,然而由于很多人之前并没有接触过区块链,也没有相关的安全知识,安全意识薄弱,这就很容易让攻击者们有

区块链入门笔记(一)区块链概括-爱代码爱编程

区块链入门 李永乐老师的两个视频可以快速帮助入门区块链 1.比特币和区块链啥原理?矿机挖矿咋回事? 2.比特币交易如何防伪?私钥公钥地址啥意思? 比特币发展历史 在2008年之前,主要研究是比特币的基础例如数据加密、分布式系统等等。 1.中本聪在2008年11月的时候发表了著名的论文《比特币:点对点的电子现金系统》,2009年1月紧接着用他第一版的

区块链入门知识笔记-爱代码爱编程

区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。 1 区块链基础知识 1.0 区块链的核心技术有哪些? 区块链主要解决交易的信任和安全问题,

链圈摆渡人笔记——区块链安全入门:钱包-爱代码爱编程

随着越来越多人参与区块链这个行业中来,为行业注入新活力的同时也由于相关知识的薄弱以及安全意识的匮乏,给了攻击者更多的可乘之机。面对频频爆发的安全事件,希望博主的文章能让新入手的圈内人更快的适应区块链危机四伏的世界。 钱包Wallet 钱包(Wallet)是一个管理私钥的工具,数字货币钱包形式多样,但它通常包含一个软件客户端,允许使用者通过钱包检查、存储

区块链学习笔记(四)密码学与安全技术-爱代码爱编程

目录 一、Hash算法与数字摘要 1、定义及特性 2、常见算法 3、数字摘要 二、加解密算法 1、对称加密算法 2、非对称加密算法 3、混合加密机制 三、消息认证码与数字签名 1、消息认证码 2、数字签名 四、数字证书 五、PKI体系 六、默克尔树结构 七、布隆过滤器 1、基于Hash的快速查找 2、更高效的布隆过滤器

区块链入门-爱代码爱编程

我将给大家讲解以下问题: 1.什么是比特币:比特币的本质,电子货币与数字加密货币的区别         推荐零基础的同学从《精通比特币(第二版)》这本书开始学习,中文版或者英文版都可以。      我们放慢一点学习进度,第一次只讨论什么是比特币和区块链的概念  我将和大家讨论电子货币与加密货币的区别 2.什么是区块链:请先看看这个视频https:

区块链入门教程-爱代码爱编程

1.什么是区块链 从字面上看:         区块链是由一个个记录着各种信息的小区块链接起来组成的一个链条,类似于我们将一块块砖头叠起来,而且叠起来后是没办法拆掉的,每个砖头上面还写着各种信息,包括:谁叠的,什么时候叠的,砖头用了什么材质等等,这些信息你也没办法修改。 从计算机上看:         区块链是一种比较特殊的分布式数据库。分布式数据

区块链学习_深海空间i的博客-爱代码爱编程

学习视频:北京大学肖臻老师《区块链技术与应用》公开课_哔哩哔哩_bilibili                 “不要被学术界的思维限制了头脑,不要被程序员的思维限制了想象力” 尚硅谷区块链全套教程完整版(深入掌握以太坊核心技术)_哔哩哔哩_bilibili 风格差异很大。 1.比特币被称为加密货币 2.区块链上内容都是公开的,包括区块的地址,