Block-Chain

Tailwind CSS v3.3

北大区块链公开课

课程信息

  • 基本的数据结构和算法,掌握编程的基本技能:
    • 数组、链表、二叉树、哈希函数
  • 参考资料
    • BitCoin and Crytocurrency Technologies A Comprehensive Introduction
    • 以太坊白皮书、黄皮书、源代码
    • Solidity 文档

课程大纲

  • 比特币
    • 密码学基础
    • 比特币的数据结构
    • 共识协议和系统实现
    • 挖矿算法和难度调整
    • 比特币脚本
    • 软分叉和硬分叉
    • 匿名和隐私保护
  • 以太坊
    • 概述:基于账户的分布式账本
    • 数据结构:状态树、交易树、收据树
    • GHOST 协议
    • 挖矿:memory-hard mining puzzle
    • 挖矿难度调整
    • 权益证明
      • -Casper the Friendly Finality Gadget(FFG)
    • 智能合约

北大 肖臻:http://zhenxiao.com/

密码学基础

哈希特性

  • 哈希碰撞
  • 不可逆(电子盲盒:保证输入随机(nonce))
  • 不可预测

签名

  • public key、 private key
  • 随机源(生成公私钥匙、签名的时候)

日常账户管理:中心化;

比特币账户管理:去中心化;

比特币开户:本地创建一个公私钥对。

对称加密:加密和解密共用一个秘钥。弱点——确保秘钥分发安全。

非对称加密:发送发用接收方公钥加密,接收方用自己私钥解密。同一人的公钥(银行账户)和私钥(密码)。

比特币:用私钥签名,用公钥验证签名,仍然是同一个人的。

比特币中先对一个 message 取一个哈希,然后对哈希进行签名。

比特币的数据结构

哈希指针

普通的指针存储的是某个结构体在内存中的地址。哈希指针除了保存地址之外,还要存储结构体的哈希值。

  • 存储结构体位置
  • 检测结构体是否被篡改

区块链 Block chain

比特币中一个最基本的数据结构:区块链——区块组成的链表。

![image-20221019214744438](/Users/xin/Library/Application Support/typora-user-images/image-20221019214744438.png)

区块链 & 普通链表
  • 哈希指针 & 普通指针
  • 验证区块是否篡改

Merkle tree

binary tree

只要记住 root hash,能检测树中任意位置的修改。

![image-20221019215455907](/Users/xin/Library/Application Support/typora-user-images/image-20221019215455907.png)

Merlkle proof ![image-20221019215930172](/Users/xin/Library/Application Support/typora-user-images/image-20221019215930172.png)

哈希指针不适用环形链表。

比特币的共识协议

去中心化货币

  1. 数字货币的发行。什么时候发,发多少?
  2. 交易的有效性。防止 double spending attack

比特币系统中,每个交易都包含了输入和输出。输入部分要说明币的来源,输出部分要给出收款人的公钥的 hash。

![image-20221019224028902](/Users/xin/Library/Application Support/typora-user-images/image-20221019224028902.png)

Block header

  • version 版本协议
  • hash of previous block header(对块头取 hash)
  • merkle root hash
  • target 挖矿的难度目标阈值
  • nonce 随机值

Block body

  • transaction list 交易列表

full node 全节点 (fully ralidating node)

light node 轻节点(无法独立验证交易的合法性)

账本的内容要取得分布式共识。

分布式共识协议:Paxos

比特币中的共识协议

最长合法链 longest valid chain
分叉攻击 forking attack

争夺记账权 mining

数字黄金 digital gold

争夺记账权的节点 (矿工)miner

transaction-based ledger(BTC)

account-based ledger (ETH)

Solidity Developer

Blockchain protocol engineer 区块链协议工程师

core developer

Security Auditor 安全审计者

Rust developer

Full stack developer 全栈开发者

dappuniversity.com/bootcamp

Solidity

Rust

0x3ed8930aafcd415f5b03ff0344a9ce93d8e8fdab8de3baba8fcf9bd38bd42f39

0xcb84084e7ae8ba270fbfb21e8bdc9ce66f45b9bd91f72988bdf719a419978e37

© 2025 Wonder|沪ICP备2022006836号-1