在可重入攻击中,恶意合约在被攻击合约的第一个函数执行完成前在再次调用合约,这可能导致函数调用与预期行为不一致。
1.配置计算机substrate开发环境 2.使用官方节点模板工程来运行一条基于substrate的区块链 3.使用一个前端模板工程来与substrate链进行交互
一个外部调用是一些区块中包含的来自区块链外部的信息。 外部调用主要分为三类: 固有信息,签名交易和无签名交易。
在 Solidity 中,处理大数溢出和小数点是个头痛的问题,本文也许会给你一些思路。
[第1部分] 使用Solidity 和 React在以太坊上构建具有社交找回功能的智能合约钱包
Avalance团队利用Snow共识开发了一个点对点电子支付系统Avalance,Avalanche可以说就是Snowball共识的实例,它把所有的交易维护成一个有向无环图DAG
实现共识是区块链的核心,最早的基于拜占庭的共识依赖节点间的互相通信来达成共识,但是问题是通信开销与节点个数的平方成正比,没法拓展。后来中本聪在2008年创造性的提出了中本聪共识,这种共识采用概率性安全保证,有一定的概率推翻已有共识。
Eth2.0的共识算法设计目标就是让PoS就有一定的安全性和可用性(certain safety and liveness claims).对应着这个目标,提出了两大组件来定义分叉规则和最终性
PHANTOM在DAG数据结构的区块链上,将中本聪共识进行了泛化,它不需要事先设定出块间隔等限制,因此也接触了中本聪共识对拓展性-安全性的权衡。采用贪心算法,也便于实现,并且安全性也被严格证明了。
Conflux团队注意到不论是中本聪共识还是GHOST共识,他们都是只维护一条主链,非主链的区块则被抛弃了,因此也就导致了这些被丢弃的块不能为整个区块链系统提供安全性,并且也降低了吞吐量(因为这些快被抛弃了,实际上也就是说系统的带宽被浪费了,因此他们就不能为系统贡献吞吐量)