diff --git a/BTC/readme.md b/BTC/readme.md index b768c9eb0..007645753 100644 --- a/BTC/readme.md +++ b/BTC/readme.md @@ -19,6 +19,15 @@ crypto 不到一年的时间。如果其中有任何错误的话,可以尽情指正。大家都只是海边 捡贝壳的小孩而已。 +|时间| 名称 | 发明者 | 突破 | 相比比特币的区别 | 完成度 | +| ---- | ----- | ----- | ---- | ---- | ---- | +|1983 | eCash | David Chaum |发明的盲签名技术, 第一次提出了加密电子货币概念,引入了公钥,私钥等加密概念 | 中心化网络, 无共识机制,无挖矿机制 | 提出概念,实现系统 | +|1997 | Hashcash | Adam Back | 完善了工作量证明机制 , 让密码朋克意识到可以在工作量证明的基础上构建一种全新的货币 | 无法控制算力总量,并非电子货币范畴 | 提出概念,实现系统 | +|1998 | B-money | Wei Dai | 这是首个不依赖中心化机构的匿名数字货币方案, 引入工作量证明的思想来解决数字货币产生的问题 提出了分布式加密货币概念,任何人(或部分参与者)都可以维护一套账本,构成一套 P2P 网络,使用者在网络内通过对带签名的交易消息的广播来实现转账的确认 | 分布式系统,共识机制弱 | 提出概念 | +|1998 | Bit-gold | Nick-Szabo | 完善了POW挖矿机制,引入了时间戳,参与者需要贡献算力来解决“加密难题”,成功解决这些“难题”的参与者广播给全网络,并且每个难题结果都是下一个问题的一部分,从而创建了一个不断增长的具有新属性的链, 引入了PBFT注册小组解决双花问题 | 总量不可控,拜占庭容错方式不完善,容易遭到女巫攻击 | 提出概念 | +|2005 | RPow | Hal Finney | 完善了Hashcash并且引入了Token Money概念,实现了Hashcash算力无线增长的问题 | 并非电子货币范畴 | 提出概念,实现系统 | + + > P.S. 本文只是技术分析介绍,对于投资理财不做任何推荐担保。投资有风险, > 入市需谨慎,对于市场和生活要常怀敬畏之心。 @@ -72,7 +81,7 @@ Private Key 通过椭圆曲线加密得到 Public Key,然后 Public Key 两个变量,无法直接求解,如果随机数是个确定的值,那么就能直接通过公 式将另一个变量求解出来,从而将你的公私钥给破解。Sony 的 PS3 就是因为 用于签名的随机数是固定的,结果被人给破解了。具体的可以参考知乎文章: -[一文读懂 ECDSSA 算法如何保护数据](https://zhuanlan.zhihu.com/p/97953640) +[一文读懂 ECDSA 算法如何保护数据](https://zhuanlan.zhihu.com/p/97953640) 那为什么 bitcoin 不直接使用公钥呢?很简单,因为公钥中会包含 0 O l 1 这些容易混淆的字符,有时很难将其区分,而转账时地址一旦输错,是不能追回 diff --git a/basic/40-Flashbots/scripts/send-1559-flashbot.js b/basic/40-Flashbots/scripts/send-1559-flashbot.js index 516458205..eb367e52e 100644 --- a/basic/40-Flashbots/scripts/send-1559-flashbot.js +++ b/basic/40-Flashbots/scripts/send-1559-flashbot.js @@ -100,6 +100,19 @@ async function main() { ); console.log("submitted for block # ", blockNumber + i); + + //type 2 + const minTimestamp = (await provider.getBlock(blockNumber)).timestamp + const maxTimestamp = minTimestamp + 120 + + const bundleReceipt = await flashbotsProvider.sendRawBundle( + signedTransactions, // bundle we signed above + blockNumber + 1, // block number at which this bundle is valid + { + minTimestamp, // optional minimum timestamp at which this bundle is valid (inclusive) + maxTimestamp, // optional maximum timestamp at which this bundle is valid (inclusive) + // revertingTxHashes: [tx1, tx2] // optional list of transaction hashes allowed to revert. Without specifying here, any revert invalidates the entire bundle. + }) // const bundleSubmission = await flashbotsProvider.sendRawBundle( // signedTransactions,