ZBX Blog

热爱生活,健康工作

LLVM Basic Block frequency

基本块频率

介绍 ​ 看了写论文中评价Fuzzer性能有一项关键性指标,即代码覆盖率(coverage),而Anti-fuzz的论文中则是提出了降低代码覆盖率的方案,而与覆盖率息息相关的是基本块频率,只有热的基本块的访问频率变低才能说明Anti-fuzz确实是有用的,于是查看了下LLVM中关于基本块频率的描述。 ​ 所谓Basic Block基本块,是指程序一顺序执行的语句序列,其中只有一个入口和...

Merkle Patricia Trie

以太坊虚拟机的的存储结构之Merkle Patricia Trie

以太坊中MPT树的结构 每一个以太坊的区块头都包含三棵MPT树,分别是交易树、收据树(交易执行过程中的一些数据)和状态树(账号信息、合约账户和用户账户)。MPT(Merkle Patricia Trie)是以太坊中一种非常重要的数据结构,用来存储用户账户的状态及其变更、交易信息、交易的收据信息。它实际上是三种数据结构的组合,分别是Trie树, Patricia Trie和Merkle树。下...

Ethereum security tools

以太坊安全工具套件

​ 要构建一个安全的Ethereum代码库,熟悉要避免的已知错误,对每个新的代码签入进行静态分析,fuzz新特性,并使用symbolic execution验证final product。 1. Not So Smart Contracts ​ 此repository 包含常见的Ethereum智能合约漏洞示例,包括实际代码。回顾一下这个列表,确保你对可能出现的问题非常熟悉。repo...

Challenges for Combining Smart Contracts with Trusted Computing

将智能合约与可信计算相结合的问题和挑战

Author: Marcus Brandenburger、Christian Cachin 等 1 INTRODUCTION ​ 可信执行技术被设想在区块链和分布式账本上下文中发挥重要作用,特别是对于企业应用程序和联盟区块链。区块链上的智能合约不能保持secret,因为它的数据被复制到网络中的所有节点上。为了解决这个问题,有人建议[2,4,9]使用可信执行环境(TEE),如Intel ...

SGX学习笔记01

Intel SGX之enclave生命周期以及认证

Intel SGX ​ Intel SGX是Intel架构新的扩展, 在原有架构上增加了一组新的指令集和内存访问机制。这些扩展允许应用程序实现一个被称为enclave的容器, 在应用程序的地址空间中划分出一块被保护的区域, 为容器内的代码和数据提供机密性和完整性的保护, 免受拥有特殊权限的恶意软件的破坏。 enclave 生命周期 enclave创建 一个enclave需...

BlockChain Security

区块链安全相关论文

SmartPool 已经有超过区块链总计算能力40%的 mining pool 。这对分散化的本质构成了严重的威胁,使得区块链容易受到多种攻击。Loi等人提出了一种新的mining pool 系统SmartPool。SmartPool从Ethereum节点客户端(即,parity或geth),其中包含mining任务信息。然后,miner 根据任务进行哈希计算,并将完成的shares返回给...

Storm学习01

分布式实时大数据处理框架Storm学习

并发机制 Worker 进程 一个Topology拓扑会包含一个或多个Worker(每个Worker进程只能从属于一个特定的Topology) 这些Worker进程会并行跑在集群中不同的服务器上,即一个Topology拓扑其实是由并行运行在Storm集群中多台服务器上的进程所组成 Executor – 线程 E...

静脉曲张

静脉曲张的病理

​ 静脉曲张是指由于血液淤滞、静脉管壁薄弱等因素,导致的静脉迂曲、扩张。身体多个部位的静脉均可发生曲张,比如痔疮其实就是一种静脉曲张,临床可见的还有食管胃底静脉曲张、精索静脉曲张及腹壁静脉曲张等等。静脉曲张最常发生的部位在下肢。值得强调的是,静脉曲张是其他病变的继发表现。 ​ 导致下肢静脉曲张的原因很多,最多见的为单纯性下肢浅静脉曲张,其主要病因为股隐静脉瓣膜的功能不全。另外一种重要病...

EVM Interpreter

以太坊虚拟机的解释器部分源码分析

​ 在以太坊虚拟机中,解释器扮演着重要的角色,想要弄清楚解释器的原理,必须从虚拟机的源码层面上进行分析。 ​ 从instruction.go文件中的指令解释入手,因为指令很多,只列举几个例子: func opPc(pc *uint64, evm *EVM, contract *Contract, memory *Memory, stack *Stack) ([]byte, error...