• 04-ETH-交易树与收据树

    交易树(MPT) 只组织当前区块的交易。 提供默克尔证明。 查询操作。 收据树(MPT) 由于 bloom filter 高效查找存在性。 生成摘要,查看映射函数是否存在。 哈希之后映射。 可能会误报,不会不报。 false positive。 不支持删除操作。 添加计数器才可以进行参数操作,类似链接。 每个交易都有一个bloom fliter。 块头有一个总的Bloom filter...
  • ShellCode

    ubuntu(16 32位)概述什么是shellcodeshellcode是一段用于利用软件漏洞而执行的代码,shellcode为16进制的机器码,因为经常让攻击者获得shell而得名。shellcode常常使用机器语言编写。 可在暂存器eip溢出后,塞入一段可让CPU执行的shellcode机器码,让电脑可以执行攻击者的任意指令。 汇编码与机器码机器码可以直接在CPU运行的代码,一般就是可...
  • 03-ETH-状态树

    状态数据结构 addr –>state 余额证明 所有账户的哈希表。 构造默克尔树。 余额只是一种状态。 根据哈希值流程验证即可证明,因为根哈希是一定的在某个时间。 哈希表构造默克尔树不排序 默克尔书不唯一。 排序 代价太大,新建账户的代价太大。 trie(检索树) 输入不管,结果相同。 更新局部性比较强。 存储有点浪费。 PT压缩检索树 访问效率增加。 新增加点,节点可...
  • 02-ETC-账户

    BTC 基于交易的。 需要说明币的来源 验证与一次性花费完 ETH 基于账户的余额管理。 不说明币的来源。 也不需要一次性转完。 天然防御双花攻击。 重放攻击 想要收一个交易的两次结果, 加一个交易次数nonce唯一值。 以确保交易的唯一性。 nonce在签名中被保护。 账户类型外部账户 账户余额 nonce(counter) 合约账户 余额 nonce 不能主动发送交易 可以调用其...
  • 01-ETH-概述

    ETH特殊性 提高内存要求。 goust共识机制。 智能合约,去中心化的合约 去中心化的货币与法币的优势 跨国转账 去中心化合同有什么用 跨国签署。
  • 12 BTC-思考

    1.哈希指针 只是哈希,没有指针。 存储在(key,value)数据库中,level DB 2.区块恋特点:私钥分开 降低账户安全性。 丢失很难找回。 永久保存死钱,浪费空间。 安全方式:多种签名。 3. 分布式共识 为什么区块链系统能够绕过分布式共识中的那些不可能结论。 没有达到真正的共识。 4.比特币的稀缺性稀缺性不适合作为货币 5.量子计算 公钥也不是明文存储。 SHA-256...
  • 11 BTC-匿名性

    匿名性BTC就是化名。 破坏匿名性的可能账户关联交易时,需要一个找零钱的地址,是输入用户的账户。 钱包交易时 实体世界联系交集反推,可以把账户与个人联系起来。 提高匿名性方式应用层 破坏匿名性原因:账户交易集中 coin mixing:混合币,没有信誉度高的机构。 在线钱包可能或有币混合的性质。 交易所不泄露交易记录可以。 网络层 tor 多路径转发 零知识证明概念 同态隐藏(数学基础...
  • 10 BTC-问答

    1. 转账目标地址离线,对于转账交易有什么影响无影响 2.全节点收到的交易会不会出现全新的接受地址会,生成新的公钥不会告诉别人,在UTXO中出现才能别被人发现 3.私钥丢失怎么办没办法 4.私钥泄露怎么办5.转账写错地址怎么办保存在一个由信息生成的公钥,是不合理的公钥。 6. return的无条件返回错误怎么通过验证怎么写上区块链验证:验证的时候不会被执行,只有在花销的时候才会执行retur...
  • 09 BTC-分叉

    造成原因state fork 对于当前区块有分歧。 同时获取到合法块。 forking attack deliberate fork 协议分叉(protocol fork)硬分叉 对于区块链的基本信息的修改,接受与不接受的人之间的分叉。 接受的人认为修改过的为合法区块,未修改为非法区块。 典型的为block size limit 永久性分叉。 加一个chainID作为链的标识。 软分...
  • 08 BTC-脚本

    1. 交易信息a.交易结构 说明: locktime:生效延迟时间。 vin:输入信息。 vout:输出信息。 blockhash:哈希值。 time:交易时间。 blocktime:区块产生时间。 b.交易的输入 txid:之前交易的哈希值。 vout:第几个输出结果。 scriptSig:输入脚本。 c.交易输出 reqSigs:需要多少个签名(单/多重签名)。 ad...
1234