以太坊出块时间的显著降低,使得更容易出现分叉(甚至多个分叉),大型矿池有优势,尤其对个体矿工不公平 因为当出现分叉时,所有个体矿工的算力是分散的,而矿池中的所有算力会集中在其挖出的区块,导致矿池挖出的区块更容易成为最长合法链,造成 mining centralization,这种情况也叫做 centralization bias(中心化带来的不成比例的优势);再加上矿池会在网络的多个地方有接...
以太坊中的交易树和收据树也是 MPT,其好处是支持查找操作,查找的键值是交易在发布的区块中的序号(即排第几),其顺序由发布交易的区块确定 交易树和收据树都是只把当前区块发布的交易组织起来,而状态树是把系统中所有账户的状态都包含进去(原因是:便于查找账户余额,尤其是很久没发生过交易的区块,更重要的是无法找到新账户) 上节课讲到,多个区块的状态树是共享节点的;而每个区块的交易树和收据树是独立的 ...
从账户地址到账户状态的映射:addr -> state 以太坊中的账户地址是 160 bits,也就是 20字节,一般表示为 40个 16进制的数;比特币和以太坊的地址格式、长度都不同,但是以太坊中的地址也是由公钥转换来的(公钥取哈希、进行截取,并只保留后面) 在比特币中,merkle tree 除了证明账户上有多少钱之外,还可以维护各个全节点之间状态的一致性 以太坊的状态树结构以太坊...
一、比特币——基于交易的账本比特币用的是 transaction-based ledger(基于交易的账本),系统没有显示地记录账户的金额,需要通过 UTXO 计算,这种方式隐私性好,但不便于使用 二、以太坊——基于账户的账本以太坊用的是 account-based ledger(基于账户的账本),转账时不需要说明币的来源 1、好处不会出现 double spending attack(双花...
比特币被称为 区块链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...