比特币被称为 区块链1.0,以太坊被称为 区块链2.0
一、以太坊和区块链的对比1、出块时间以太坊的出块时间从比特币的 10分钟 降低到了十几秒
2、共识机制以太坊设计了新的 ghost 共识机制
3、mining puzzle以太坊设计了新的 mining puzzle:比特币的 mining puzzle 是计算型的,比拼的是算力;而以太坊的 mining puzzle 是 memory...
一、哈希指针指针保存的是本地的内存地址,区块链中的哈希指针是如何传递的?其实区块中保存的只有哈希,没有指针(只是形象化的说法)。全节点会把区块以 (key, value) 存储在数据库(level DB)中,且只保存最近的几千个区块
二、区块恋双方把私钥截成两段,每方保存一段不可取,有两点问题:
蛮力攻击更加容易
永久占据 UTXO,浪费资源
建议采取 MULTISIG(多重签名)
三、...
一、比特币的匿名性anonimity(匿名性)、privacy(隐私性)
比特币使用的是 pseudonymity(假名)
Example:一个人通过自己的两个账户 addr1 和 addr2,向商家账户转账 addr3,然后把零钱转入自己的另一个账户 addr4
Inputs: addr1, addr2
Outputs: addr3, addr4
1、破坏比特币匿名性的方法:(1)比特币不...
略(基本没有新东西),详情可参考课程视频:
https://www.bilibili.com/video/BV1Vt411X7JF?spm_id_from=333.788.videopod.episodes&vd_source=69ac93649ea21c4726fe85f272b6d968&p=11
一、State fork(状态分叉)State fork:对比特币当前的状态有分歧造成的分叉,比如两个区块几乎同时生成,造成的分叉
Forking attack 也属于 state fork,但是是人为故意的,所以也叫做 deliberate fork(故意分叉)
二、Protocol fork(协议分叉)Protocol fork:比特币的协议发生改变(通过软件升级),有些节点由于各种原因...
本节课较多用到 PPT 上的动画,视频链接如下:
https://www.bilibili.com/video/BV1Vt411X7JF?spm_id_from=333.788.player.switch&vd_source=69ac93649ea21c4726fe85f272b6d968&p=9
比特币使用的编程语言很简单,内存空间只有一个通用的堆栈
上述的输入脚本包含2...
一、全节点1、一直在线2、在本地硬盘上维护完整的区块链信息3、在内存里维护 UTXO 集合,以便快速检验交易的正确性UTXO(unspent transaction output)
4、监听比特币网络上的交易信息,验证每个交易的合法性(1)是否有合法的签名
(2)是不是 double spending
5、决定哪些交易会被打包到区块里缺省状态下,只要是合法交易、并且交易费符合要求,就会被打包...
一、挖矿难度和目标域值H(block header) ≤ target
调整挖矿难度,就是调整目标空间 在整个输出空间中所占的比例,通俗地说,就是哈希值的前面有多少 0
比特币使用的哈希算法是 SHA-256,整个输出空间是 2^256 个可能的取值
挖矿难度和目标域值成反比:
difficulty_1_target:挖矿难度等于1时,对应的目标域值(挖矿难度最小就是1),此时的目标域值很...
一、网络层级顶层是 application layer,运行着 BitCoin 和 Block chain 协议;底层是 network layer,运行着 P2P Overlay Network
比特币的 P2P 网络很简单,所有节点都是平等的,不像有的网络有 super node / master node
二、加入/离开网络加入网络前,需要和 seed node(种...
比特币采用 transaction-based ledger(基于交易的账本)模式,每个区块中记录交易信息(转账交易、铸币交易),系统上不记录交易信息
一、UTXO比特币的全节点要维护一个数据结构 UTXO(Unspent Transaction Output,所有未被花出去的交易的输出 组成的集合)
一个交易可能有多个输出,即用户可以在一次交易中同时向多人转账(可以节省手续费)
比如:A ...