一、全节点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 ...
一、Double spending attack(双花攻击)双花攻击指同一笔资金被重复支付的情况,也是数字货币面临的主要挑战 中心化解决方案:数字货币上添加唯一编号,并由央行维护一个数据结构,展示每个编号的货币由谁持有;如果付费方的货币在表中对应的持有人与此人不符,则证明该货币已支付给其他人 去中心化的解决方案:比特币 关注:货币的发行(挖矿)、交易的有效性验证(防范双花攻击) 二、交易的有...
一、Hash Pointers(哈希指针)哈希指针除了地址之外,还要保存地址的哈希值,用于检测结构体的内容是否被篡改 Block chain is a linked list using hash pointers. 区块链中的第一个区块叫 genesis block(创世区块),其 height(高度)为 0;最后一个区块叫 most recent block 后一个区块中的哈希指针是对...
Crypto-currency(加密货币) 区块链和比特币主要用到:哈希函数 和 数字签名 一、Cryptographic Hash Function(哈希函数)区块链用到了哈希函数的 抗碰撞性 和 隐私性;比特币除了这两个性质,还要求 谜题友好性 (1)Collision resistance(抗碰撞) x≠y, H(x)≠H(y) 给定一个x,没有高效的方法找到一个y,满足H(x)...
本课程主要讲:比特币和以太坊 两种加密货币 视频链接: https://www.bilibili.com/video/BV1Vt411X7JF/?spm_id_from=333.337.search-card.all.click&vd_source=69ac93649ea21c4726fe85f272b6d968
一、TCP 和 UDP 的区别TCP 和 UDP 都是传输层协议,不同点在于: TCP 是 面向连接的、可靠的、面向字节流 的 UDP 是 面向无连接 的 TCP 的三大核心特性 1、面向连接在客户端和服务器互相通信之前,TCP 需要三次握手建立连接,而 UDP 不需要 2、可靠性TCP 的可靠性体现在有状态、可控制。 (1)有状态TCP 会记录发送的数据,以及其中被接收和未被接收的数...
一、相同点1、都可以描述对象和函数的类型但语法不一样,type 使用 = 赋值 12345678interface User { name: string age: number}interface SetUser { (name: string, age: number): void} 123456type User =...