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. 区块链安全入门笔记(五) | 慢雾科普

    异形攻击--Alien Attack 异形攻击(Alien Attack)实际上是一个所有公链都可能面临的问题,又称地址池污染,是指诱使同类链的节点互相侵入和污染的一种攻击手法,漏洞的主要原因是同类链 ...

  3. 区块链投资入门篇—骨灰版

    区块链技术未来会大规模地普及,比特币是区块链技术的一种具体应用.能抓住这样的机会是每个人一生中难得的机遇,如同90年代初期的证券市场. 目前很多人普遍的问题是不懂,也懒得看,懒得研究.当你看到这篇教程 ...

  4. 区块链技术指南笔记(三):区块链运作的核心技术

    前言 在学习区块链的时候,有很多知识点,作为读者的我们不能第一时间去消化它(也没必要第一遍就弄懂),某些方面的设计思想看的也是一知半解.我遇到这种情况,一般会将书多看几遍,再去寻找各个知识点之间的关系 ...

  5. 私钥经过哈希计算可以产生公钥_「区块链基础概念100」:公钥和私钥 | 027

    免责声明:本文旨在传递更多市场信息,不构成任何投资建议.文章仅代表作者观点,不代表火星财经官方立场. 小编:记得关注哦 投资区块链,猛戳:火星财经App下载 来源:学习区块链 原文标题:「区块链基础概 ...

  6. 区块链从入门到精通 - 区块链培训

    区块链从入门到精通 - 区块链培训 关于本号 不得不说,你够机灵,一路追过来,你也算是很幸运或者说咱俩有缘分了!到了这里,就算到家了!不扯犊子了, 以后有的是机会唠,说正事! 区块链技术人才告急,百万 ...

  7. 区块链基础知识与关键技术解析

    区块链基础 1. 区块链的来龙去脉     1.1 区块链技术起源     1.2 比特币产生背景与现状     1.3 数字货币概念     1.4 比特币技术原理 2. 区块链概念与产业现状   ...

  8. 【区块链开发入门】(四) Truffle详解篇2

    由于本篇篇幅较长,因此转为两篇文章.Truffle详解篇篇1请见:link 目录导航页 [区块链开发入门](一) 以太坊的搭建与运行 [区块链开发入门](二) 以太坊的编程接口 [区块链开发入门](三 ...

  9. 世界经济论坛区块链报告阅读笔记

    文章目录 世界经济论坛区块链报告阅读笔记 DLT应用落地需要什么 报告案例:Global Payments 报告案例:P&C Claims Processing 世界经济论坛区块链报告阅读笔记 ...

最新文章

  1. 干货|4条实用小建议,送给初入NLP领域的你(附链接)
  2. [CSAcademy]Virus on a Tree
  3. Thymeleaf设置属性值
  4. 【NLP】授人以渔:分享我的文本分类经验总结
  5. mit景观生成技术_永远不会再为工作感到不知所措:如何使用MIT技术
  6. 解决:redis.clients.jedis.exceptions.JedisDataExceptionERR This instance has cluster support disabled
  7. CSS中的IFC和BFC入门
  8. git 入门教程之 git 私服搭建教程
  9. F5紧急修复严重的 BIG-IP 预认证 RCE 漏洞
  10. 【SQL】去除表中的重复行
  11. [转载]JSP利用组件实现文件上传的全攻略
  12. a卡是什么?a卡和n卡的区别
  13. ept技术_EPT和VPID简介 - osc_3xz91vxi的个人空间 - OSCHINA - 中文开源技术交流社区
  14. C# 人民币(RMB)转化为大写字母
  15. 计算机文件丢失系统无法启动,文件损坏或丢失windows无法启动_windows无法启动文件损坏解决方法...
  16. 浙大PTA拼题A读者验证码刷题页面、PTA免费刷题页面(不需要读者验证码)
  17. python字符串(二)
  18. Tiny RTC DS1307 时钟模块 完整代码(Arduino)及一些要注意的地方
  19. 复习C语言随笔 十四
  20. 天线巴伦制作和原理_巴伦制作方法

热门文章

  1. css获取父元素下第几个元素出坑和JQuery通过index()获取下标出坑方法
  2. 校园网及入网计算机管理制度,校园网用户入网管理规定
  3. 终于又可以用WLW了.
  4. 计算机主机核心通常包括,2017年计算机一级复习试题及答案解析
  5. 中南大学复试上机:1009: 安全路径
  6. Faceted project metadata file “/game/.settings/org.eclipse.wst.common.projec
  7. 入门金融风控【贷款违约预测】
  8. js插件 excel在线编辑插件X-Spreadsheet
  9. 有些微信朋友,每天喜欢发早安、图片给别人,这些人是什么心理?
  10. 等额本息与等额本金,从财务管理的角度充分考虑货币时间价值,哪个对于购房人来说更划算?