睿阳知识库 睿阳知识库
首页
  • npm库配置
  • PC端

    • npm常用命令
    • vue问题记录
    • SEO基础知识及优化
    • 禁止别人调试我的前端页面代码
  • 移动端

    • 小程序
    • Risun.js使用说明
  • Java

    • Maven库配置
    • RSP开发框架
    • RSP框架插件
  • .NET

    • Nuget库配置
  • Python

    • Pypi库配置
  • 常见问题

    • Word转Pdf字体错乱
    • 使用Jacob进行Word导出PDF
  • 自动部署
  • 前端带路径
  • Linux

    • 应用部署
  • Windows

    • 应用部署
  • 视频监控
  • MySQL系列~
  • 应用高可用
  • 静态代码扫描
  • OpenSSH版本升级
  • 区块链~
  • 软件过程文档目录
  • 著作权申请须知及申报示例
  • 项目申报技巧
  • 项目竣工资料清单
  • 科技项目申报流程及注意事项
  • 初级职称申报
  • 产品需求文档基础知识
  • 产品经理需了解的技术知识
  • 墨刀原型设计指南
  • 文档规范
  • 文档规范
  • 投标工作总结(一)
  • 科技项目申报心得体会
  • 数字孪生
  • AI
  • RSP基础平台
  • RMCloud
  • 区块链
  • 网络态势感知
  • 国产化
  • 数据湖
  • 贡献度
  • 文档编写说明
  • Markdown教程
工作链接
首页
  • npm库配置
  • PC端

    • npm常用命令
    • vue问题记录
    • SEO基础知识及优化
    • 禁止别人调试我的前端页面代码
  • 移动端

    • 小程序
    • Risun.js使用说明
  • Java

    • Maven库配置
    • RSP开发框架
    • RSP框架插件
  • .NET

    • Nuget库配置
  • Python

    • Pypi库配置
  • 常见问题

    • Word转Pdf字体错乱
    • 使用Jacob进行Word导出PDF
  • 自动部署
  • 前端带路径
  • Linux

    • 应用部署
  • Windows

    • 应用部署
  • 视频监控
  • MySQL系列~
  • 应用高可用
  • 静态代码扫描
  • OpenSSH版本升级
  • 区块链~
  • 软件过程文档目录
  • 著作权申请须知及申报示例
  • 项目申报技巧
  • 项目竣工资料清单
  • 科技项目申报流程及注意事项
  • 初级职称申报
  • 产品需求文档基础知识
  • 产品经理需了解的技术知识
  • 墨刀原型设计指南
  • 文档规范
  • 文档规范
  • 投标工作总结(一)
  • 科技项目申报心得体会
  • 数字孪生
  • AI
  • RSP基础平台
  • RMCloud
  • 区块链
  • 网络态势感知
  • 国产化
  • 数据湖
  • 贡献度
  • 文档编写说明
  • Markdown教程
工作链接
  • 视频监控
  • MySQL系列

  • 应用高可用
  • 静态代码扫描
  • OpenSSH升级
  • 区块链

    • 0.学习路线
    • 01.概述
    • 02.预备知识
      • 一. 中心化
      • 二. 非对称加密
      • 三. 哈希算法
    • 03.区块链原理
    • 04.比特币挖矿原理
    • 05.比特币交易原理
    • 06.电子钱包
    • 07.以太坊概述
    • 08.以太坊账户
    • 09.以太坊交易
    • 10.以太坊数据结构
    • 11.以太坊客户端
    • 12.以太坊权益证明
    • 13.智能合约
    • 14.Solidity精解
    • 15.HardHat说明
    • 16.去中心化应用
    • 17.区块链-供应链
  • 技术
  • 区块链
孙超
2023-06-12
目录

02.预备知识

在阐明区块链工作原理前,我们需要知道并理解一些知识点。

# 一. 中心化

中心化是一种网络结构或系统模式,它依赖于一个中心节点或实体来控制或管理数据和信息,而其他的节点或参与者必须服从或依赖于这个中心。中心化的特点是权力集中、节点从属、网络脆弱和不透明。

现实中的常见的中心化机构和组织一般有:政府部门、金融机构、企业组织、非政府组织。

# 二. 非对称加密

有一对私钥和公钥,私钥持有人自己保管,公钥是公开的。私钥进行加密,公钥进行解密。公钥进行加密,私钥进行解密。

非对称加密的基本工作原理:

生成密钥对:首先,生成一对相关的密钥,其中一个是公钥,另一个是私钥。这两个密钥是数学上相关的,但不能通过已知的算法从公钥计算出私钥。

公钥加密:使用公钥加密要传输或存储的数据。任何人都可以获得公钥并使用它来加密消息。

私钥解密:只有私钥的持有者才能解密由公钥加密的数据。私钥保密,并且不应该与其他人共享。

例子:

Server - Client 通信

1. Server 发送信息

  (1) 对发送信息进行 Hash,生成摘要 digest。
  (2) 使用私钥对 digest 进行加密,生成数字签名 Signature。
  (3) 将回复信息和数字签名一同发送给 Client。

2. Client 验证消息
  
  (1)Client 使用公钥对签名进行解密,得到 Server 发送的摘要 digest 信息。
   (2) Client 对 Server 的回复信息进行 Hash,与 Server 发送的摘要 digest 信息进行比较。一致,则Server回复信息未被修改。

# 三. 哈希算法

单向散列算法,又称hash函数(杂凑函数,或者杂凑算法),就是把任意输入消息字符串变成固定长的输出串的一种函数,这个输出串称为该消息的杂凑值,一般使用产生消息摘要,密钥加密等。具体指的是根据输入消息计算后,输出固定长度数值的算法,输出数值也成为“散列值”或消息摘要,其长度通常在128~256位之间。比特币使用的哈希算法有两种:SHA-256 和 RipeMD160。

这类算法的特点是:正向计算容易,反向计算非常困难。例如:hash('123')=415258067487166476,其中hash('123')容易计算出415258067487166476,但通过415258067487166476很难计算出'123'

哈希碰撞

碰撞是指,如果两个输入数据不同,却恰好计算出了相同的哈希值。一个安全的哈希算法需要满足条件:碰撞率低。

SHA-256的理论碰撞概率是:尝试2的130次方的随机输入,有99.8%的概率碰撞。注意2130是一个非常大的数字,大约是1361万亿亿亿亿。以现有的计算机的计算能力,是不可能在短期内破解的。

Merkle Hash(默克尔哈希)

一种哈希树(Merkle Tree)结构中的哈希值。默克尔哈希是通过对数据块进行哈希计算,并通过递归地将哈希值进行合并,最终生成一个唯一的根哈希值。

Merkle Tree是一种二叉树结构,其中每个叶子节点都包含数据块的哈希值。而非叶子节点是通过将其子节点的哈希值拼接并再次进行哈希计算得到的。

Merkle-Tree

01.概述
03.区块链原理

← 01.概述 03.区块链原理→

最近更新
01
vue问题记录
10-11
02
RSP进度
10-09
03
贡献度
09-28
更多文章>
Copyright © 2014-2025 甘肃睿阳科技有限公司 陇ICP备15001783-1号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式