深入浅出区块链 Day2

双花攻击是指一个代币被花费了两次,这在任意的区块链系统中是不被允许的。如果避免了双花问题,基本就能避免上述作弊中收益过大的问题,因为攻击者首先要窃取到你的私钥,同时又能控制了你的计算资源(算力)。

所有记账节点都会遵循以下两条规则: 规则一:一个代币如果已经被花费,那么会被标记成已花费,如果再次接收到这个代币被花费的请求,那么记账节点会拒绝打包这笔交易; 规则二:如果同时接收到两个信封,这两个信封中装的两笔交易出现了一个代币被花费了两次的情况,这种情况也就是我们所说的分叉(Fork),那么选择挖矿难度比较大的那个信封。 规则一避免了未确认的交易出现双花,规则二基本避免已经确认的交易中(信封中)的双花问题。 假设作弊者的计算资源(算力)占整个系统的 30%,那么连续两次获得记账权的概率是 9%,看起来作弊的可能性还是挺高的,如果是连续 6 次获得记账权呢?概率直降到万分之七。

相关推荐
程序员黎剑14 分钟前
我把算卦变成了一段if-else
java·vue.js·spring boot·后端·ai编程
SimonKing16 分钟前
Base62编码生成6位不重复短码的背后设计
java·后端·程序员
IT_陈寒26 分钟前
JavaScript的隐式类型转换又双叒坑了我一次!
前端·人工智能·后端
她说彩礼65万37 分钟前
Asp.net core 返回类型
数据库·后端·asp.net
小呀小叮当~1 小时前
Telegram 有哪些实用功能?一文了解
前端·人工智能·后端·其它
卷福同学2 小时前
AI编程出海第一步:别急着写代码,先找到老外真正愿意付费的需求
人工智能·后端·面试
北冥you鱼3 小时前
Go-Ethereum (Geth) 最佳实践:从部署到生产环境优化
开发语言·后端·golang
程序员爱钓鱼5 小时前
Rust 函数与返回值详解:参数、表达式与返回类型
后端·rust
遨游DATA15 小时前
Spring Boot 启动失败排查:如何区分多 Bean 冲突与清理阶段异常
java·spring boot·后端
IT_陈寒15 小时前
Java线程池这个坑我算是踩明白了
前端·人工智能·后端