用未用完的硬币强制私钥变得容易了吗?

使用未使用的硬币正确猜测私钥的可能性是否因以下原因而增加:
使用更多的地址会导致更多的私钥带有未使用的硬币(即,随机私钥可能有硬币的可能性更高)。
事实上,很多人使用确定性钱包(即,如果前20个钱包是空的,人们可以贴现数十亿个确定性生成的私钥)。
这在安全方面意义重大吗?
安全
私钥
确定性钱包
分享
改进这个问题
跟随
12小时前问的
保罗
1
新贡献者
添加评论
1个答案
0
它从大约0增加到大约0。
由于高清钱包的种子基本上是随机的,我不认为这有帮助。
这并不重要。
分享
改进这个答案
跟随
3小时前回答的
红砂砖
11k22金徽章1717银徽章3636铜徽章
添加评论

Web

比特币真的稀缺吗?

比特币真的稀缺吗?

我是加密/区块链的新手,但我对这些可能性非常兴奋。考虑到人们对这一话题的热情,我想非常明确地说,我并没有试图起诉比特币或加密货币。我在试着理解整件事是怎么运作的。
我的理解是,比特币的数量是有限制的:2100万比特币。因此,比特币作为价值存储的优点之一是,不能像美联储“印刷”美元那样“印刷”更多的比特币。
我还了解到,人们可以将比特币兑换成发行量有限的其他加密货币,如Litecoin。而且,据推测,没有什么能阻止另一种加密货币以类似的规则被创建……等等。
那么,比特币——作为一种价值存储——真的有限吗?如果像比特币这样的所有货币都是可互换的,那么它们之间的有效区别是什么?在10年内,为什么我需要比特币(Bitcoin)、Litecoin(Litecoin)和任何其他类似构造的资产中存储价值?从理论上讲,难道所有的资本不应该均匀地流入所有这些货币吗?同样,假设它们可以互换。
可扩展性
分享
改进这个问题
跟随
14小时前问的
德斯坦
10111青铜徽章
新贡献者
最后3点在回答比特币和Altcoins时提到:bitcoin.stackexchange.com/a/105589–13小时前的Prayank
添加评论
1个答案
0
是的,比特币被刻意限制,因为比特币的比特币数量永远不会超过2100万比特币。
不,其他货币形式的存在并不影响这种特殊货币形式的特征。这是一个固有的特征。
是的,新的货币形式的潜力意味着,一般来说,就印在钞票正面的数字总和而言,货币是无限的,但这个数字并不是特别有意义。所有可用货币形式的实际集体价值都是由外部因素决定的。
所有这些都没有影响到地球上不可能有超过2100万个BTC。从这个意义上说,比特币确实很稀缺。这是真的,无论它需要10000 BTC买一个比萨饼或纳纳索希买一辆法拉利。
在这个问题上进行哲学上的争论是毫无意义的。这种稀缺形式的唯一显著影响是对比特币价值的通货紧缩影响。或者至少是缺乏大规模或长期的通胀影响。还有一些东西对比特币有通货膨胀或通货紧缩的影响。也就是说,影响其价值的外部因素。
分享
改进这个答案
跟随
两小时前编辑的
2小时前回答的
红砂砖
11k22金徽章1717银徽章3636铜徽章
添加评论Web

为什么在比特币的代码“unconfTxs”中使用“blockIndex”`

我正在阅读rpc的estimateSmartFee方法的代码,我不明白为什么在TXS中使用blockIndex?
estimateSmartFee loop unconf TXS以获取费率(代码:https://github.com/bitcoin/bitcoin/blob/0.18/src/policy/fees.cpp#L291)
但是值unconfTxs[blockIndex][bucketinex]将在TxConfirmStats::ClearCurrent中重置,或者在TxConfirmStats::removeTx中减少。为什么不这样定义呢?
源文件费用.cpp
unsigned int TxConfirmStats::NewTx(unsigned int nBlockHeight,double val)
{
无符号int bucketindex=bucketMap.下界(val)->秒;
unsigned int blockIndex=nBlockHeight%未确认TXS.size();
unconfTxs[块索引][块索引]++;
返回bucketindex;
}
无约束TXS
//未完成交易的内存池计数
//对于每个bucket X,跟踪mempool中的事务数
//对于每个可能的确认值Y都是未确认的
std::vector<std::vector<int>>unconfTxs;//unconfTxs[Y][X]
比特币
分享
改进这个问题
跟随
11月28日19点20分被问到
托克斯特托克斯特
3533青铜徽章
添加评论
1个答案
0
整个向量就是跟踪自从一个事务进入mempool以来经过了多少个块,以及它的速率是多少。因此,它允许估计器在feerate为X的情况下查看mempool中有多少个事务在Y块中。这允许估计器查看可能需要什么feerate才能在Y块中确认事务。
如果你只知道每种费率下的交易数量,那只会告诉你未确认交易的费率分布。这对于估计在一个事务包含在一个块中之前要经过多少块是没有帮助的。
分享
改进这个答案
跟随

Web

区块链大小差异

截至2021年3月,约有700000个区块[1]。为什么区块链的大小只有~350GB[2],而不是700GB,因为区块大小是1MB?
谢谢你的帮助。
块链
块大小
分享
改进这个问题
跟随
两小时前问的
雅各布斯坦奇
10322青铜徽章
新贡献者
添加评论
1个答案
1
1 MB是最大大小,而不是每个块的大小。在早期,交易很少,大多数街区几乎都是空的。
分享
改进这个答案
跟随
1小时前回答
利凡克利夫
44511银质徽章1313铜质徽章
添加评论

Web

自动化Bip39种子回收

我最近忘记了密码,所以被锁在了账本外面。当我试图从我的恢复短语重置时,我意识到我只有24个必要的单词中的23个(不知道它是怎么发生的)。我不确定这个词在哪个位置,但我确信其他23个词的顺序是正确的。也就是说,我必须在其他任何位置上尝试所有的可能性。
我发现这篇文章给了我一个单词列表来填充缺失的单词:丢了比特币钱包,12个助记符种子短语单词中只有11个。我怎样才能得到我的比特币?
我正在寻找一段代码,可以让我搅拌的解决方案,而不用手动尝试钱包一个接一个。
钱包回收
记忆种子
分享
改进这个问题
跟随
10月9日18:52编辑
墨奇♦
52.8K33232金徽章145145银徽章459459铜徽章
10月9日16:59被问到
内特·格雷
3133青铜徽章
你需要一个程序来生成所有可能的组合吗?一个例子是一个程序,里面保存了所有可能的文件组合。或者你正在寻找一个程序来测试所有可能的组合直接在处置?– vincenzopalazzo 10月9日19:49
我现在列出了所有的可能性,通过代码上的链接,原来的职位。我只想有一个自动化的方法来测试大约200个条目的列表(我相信由于校验和规则,列表太小了)。我下载了electrum钱包,并已手动测试了一些,但过程是相当乏味的– 内特·格雷10月9日20:11
添加评论
3个答案
0
你知道钥匙链上的一个地址吗?Ledger使用BIP44派生,因此您可以编写一个循环来检查不同的种子短语,并将结果地址与您知道的应该在keychain中的地址进行比较。这样你就可以在不需要在线的情况下输入恢复词。
例如,如果是我,我可能会用bitcoinjs库写一些东西。下面是用bitcoinjs编写的一个开始(注意,我使用的是3.3.2版)。这将获取一个恢复种子和一个地址,它将搜索密钥链并告诉您地址是否存在于其中。
//var words=“段增加英寸确保玉米雪茄建议获取产量证明”;
//var addr=“1C4XZQX7UH8CNXZAN5CRUJKBXGB1GUWP”;
var searchbtn=document.getElementById(“搜索BTN”);
searchbtn.onclick =函数(){
变量字=document.getElementById(“文字”)。价值;
变量地址=document.getElementById(“地址”)价值;
变量深度=document.getElementById(“深度”)。值;
墨水链(addr,words,depth);
}
函数inkeychain(addr,keychain,depth){
var isfound=假;
对于(var i=0;i<深度;i++){
变量种子=hd.bip39.mnemonicToSeed(钥匙链);
var根=b。bitcoin.HDNode.fromSeedBuffer(种子)
//常量根=bitcoin.HDNode.fromSeedHex(seed.toString(’hex’))
var钱包=root.derivePath(“m/44’/0’/0’/0/”+i);
//遗产
变量地址=wallet.getAddress();
变量wif=wallet.keyPair.toWIF();
//赛格威特p2sh
变量pubKey=wallet.keyPair.getPublicKeyBuffer();
var pubKeyHash=b。bitcoin.crypto.hash160(公开密钥);
var脚本=b。bitcoin.script.witnessPubKeyHash.output.encode(pubKeyHash);
var scripthash=b。bitcoin.crypto.hash160(手稿);
var scriptPubKey2=b。bitcoin.script.scriptHash.output.encode(散列);
变量p2shsegwit=b。bitcoin.address.fromOutputScript(脚本PubKey2);
if(地址===addr){
isfound=真;
console.log(地址,wif);
$(’#result’).html(’在keychain中的’+i+’位置找到了’+addr+’);
警报(’找到!’);
}else if(p2shsegwit===地址){
//检查是否存在segwit p2sh
isfound=真;
console.log(德国威斯康辛州);
$(’#result’).html(’在keychain中的’+i+’位置找到了’+addr+’);
警报(’找到!’);
}
}
if(isfound===false){
$(’#result’).html(’无匹配项’);
}
}
https://bitcoinfunction.com/?id=5d9ea508d9bed
从这里开始,您可以更进一步,让单词变量成为一个包含所有不同组合的数组,然后循环它们。
分享
改进这个答案
跟随
编辑时间:10月10日3:27

我只知道24个单词中的23个,实际上我刚刚发现了我将比特币从另一个钱包转移到分类账的交易记录。在这种情况下,你的方法行得通吗?另外,如果我在electrum中手动测试一组单词,并选择m/84’/0’/0’,而不是m/44’/0’/0’,它是否会显示钱包中是否有硬币?我对电脑略知一二,但有些问题我想不通,所以很抱歉问了一些看似愚蠢的问题。– 内特·格雷10月10日19:53
添加评论
0
从您链接到的相关问题扩展这个答案(使用python),我们可以开始缩小可能性列表。
从已知单词的有序列表开始:
有序\u已知\u单词=[
“荣耀”,
“两次”,
“电影”,
“近”,
“高级”,
“信任”,
“雷声”,
“背书”,
“建议”,
‘方案’,
“习惯”,
‘限制’,
“慢”,
“院子”,
“堵塞”,
“参加”,
‘轴’,
“够了”,
‘仅’,
“魔法”,
“头发”,
‘规则’,
‘区域’,
]
首先,为缺失单词的每个可能位置生成短语模式:
def生成短语模式(有序的已知单词,助记符长度=24):
模式列表=[]
对于范围内的i(0,助记符长度):
列表模板=[‘{x}’]*助记符长度
单词位置=0
对于位置,枚举中的已知单词(有序的已知单词):
如果i<=位置:
列表模板[position+1]=已知单词
其他:
列表模板[位置]=已知单词
单词位置+=1
列表_patterns.append(’,’.join(列表\模板))
返回\u模式的\u列表
这将使列表列表产生如下结果:
{x} ,荣耀,两次,电影,接近,高级,信任,雷霆,支持,建议,计划,习惯,限制,缓慢,码,阻塞,出席,轴,足够,只有,魔术,头发,规则,区域
荣耀,{x},两次,电影,接近,高级,信任,雷霆,支持,建议,计划,习惯,限制,慢,码,阻塞,出席,轴,足够,只,魔术,头发,规则,区域
荣耀,两次,{x},电影,接近,高级,信任,雷霆,支持,建议,计划,习惯,限制,慢,码,阻塞,出席,轴,足够,只,魔术,头发,规则,区域
荣耀,两次,电影,{x},接近,高级,信任,雷鸣,支持,建议,计划,习惯,限制,慢,码,阻塞,出席,轴,足够,只,魔术,头发,规则,区域
荣耀,两次,电影,近,{x},高级,信任,雷鸣,支持,建议,计划,习惯,限制,慢,码,阻塞,出席,轴,足够,只,魔术,头发,规则,区域
荣耀,两次,电影,接近,高级,{x},信任,雷鸣,支持,建议,计划,习惯,限制,慢,码,阻塞,出席,轴,足够,只,魔术,头发,规则,区域
荣耀,两次,电影,接近,高级,信任,{x},雷鸣,支持,建议,计划,习惯,限制,慢,码,阻塞,出席,轴,足够,只,魔术,头发,规则,区域
荣耀,两次,电影,接近,高级,信任,雷霆,{x},支持,建议,计划,习惯,限制,慢,码,阻塞,出席,轴,足够,只,魔术,头发,规则,区域
荣耀,两次,电影,接近,高级,信任,雷霆,支持,{x},建议,计划,习惯,限制,慢,码,阻塞,出席,轴,足够,只,魔术,头发,规则,区域
荣耀,两次,电影,接近,高级,信任,雷霆,支持,建议,{x},计划,习惯,限制,慢,码,阻塞,出席,轴,足够,只,魔术,头发,规则,区域
荣耀,两次,电影,接近,高级,信任,雷霆,支持,建议,计划,{x},习惯,限制,缓慢,码,阻塞,出席,轴,足够,只,魔术,头发,规则,区域
荣耀,两次,电影,接近,高级,信任,雷霆,支持,建议,计划,习惯,{x},限制,缓慢,码,阻塞,出席,轴,足够,只,魔术,头发,规则,区域
荣耀,两次,电影,接近,高级,信任,雷霆,支持,建议,计划,习惯,限制,{x},慢,码,阻塞,出席,轴,足够,只,魔术,头发,规则,区域
荣耀,两次,电影,接近,高级,信任,雷霆,支持,建议,计划,习惯,限制,缓慢,{x},码,阻塞,出席,轴,足够,只有,魔术,头发,规则,区域
荣耀,两次,电影,接近,高级,信任,雷霆,支持,建议,计划,习惯,限制,缓慢,码,{x},阻塞,出席,轴,足够,只,魔术,头发,规则,区域
荣耀,两次,电影,接近,高级,信任,雷霆,支持,建议,计划,习惯,限制,缓慢,码,阻塞,{x},出席,轴,足够,只,魔术,头发,规则,区域
荣耀,两次,电影,接近,高级,信任,雷霆,支持,建议,计划,习惯,限制,慢,码,阻塞,出席,{x},轴,足够,只,魔术,头发,规则,区域
荣耀,两次,电影,接近,高级,信任,雷霆,支持,建议,计划,习惯,限制,缓慢,码,阻塞,出席,轴,{x},足够,只,魔术,头发,规则,区域
荣耀,两次,电影,接近,高级,信任,雷霆,支持,建议,计划,习惯,限制,缓慢,码,阻塞,出席,轴,足够,{x},仅,魔术,头发,规则,区域
荣耀,两次,电影,接近,高级,信任,雷霆,支持,建议,计划,习惯,限制,缓慢,码,阻塞,出席,轴,

def生成所有有效短语(短语模式):
从btctools.HD文件导入检查,单词
短语总数=[]
对于短语模式中的模式:
对于单词:
助记符=pattern.format格式(x=文字)
如果检查(助记符):
总计_短语.附加(助记符)
返回总计\u短语
在这一点上,我们有180个有效的24字助记符短语,其中一个包含您的硬币。
而你可以手动检查所有这些,这将是一个乏味的任务。正如m1xolyd1an的回答中所讨论的,如果您知道以前使用的地址之一,我们可以使用这些助记符短语中的每一个来生成每个短语产生的前5个左右的确定性地址,并执行比较以检查地址匹配。
从btctools导入Xprv
导入json
主地址列表=[]
对于所有短语中的短语:
m=从助记符(短语)
#检查前几个地址空间是否存在已知匹配
对于范围(0,5)中的i:
地址=(m/44./0./0./0/i).地址(’P2PKH’)
如果addr==’1C26mdyEsNpe4fpkYtuHzH4Y378wez8mxP’:
主地址_列表.append({addr:phrase})
elif addr==’1BjoCJhvRCx9nVLPaKhg4qQ2YYps8mDgY4’:
主地址_列表.append({addr:phrase})
打印(找到地址匹配:’,len(主地址列表))
打印(json.dumps文件(主地址列表,缩进=4,排序键=True)
如果找到任何地址匹配项,则将它们打印为键值对:
{
“<地址>”:“<记忆短语>”
}
下面是两个以不同方式合并上述逻辑的python脚本:
https://github.com/d-fay/cryptotools/blob/master/solve\u partial\u 12word\u助记符\u example.py
https://github.com/d-fay/cryptotools/blob/master/solve\u partial\u 24word\u助记符\u example.py
分享
改进这个答案
跟随
编辑时间:3月27日1:03
回复时间:2月28日5:49
塔基2
10133青铜徽章
添加评论
-1
1-恐怕您无法找到/搜索24个助记种子短语单词中有23个的比特币地址。
另一个灾难是不知道单词的顺序。
继续。。。我的建议是生成并保存一个熵,就像这个例子中的十六进制值。这样,在这种情况下,您可以轻松检索任何地址。
分享
改进这个答案
跟随
19年10月24日1:23答复
坎雷
1
作者提到要确定其他23个单词的顺序——taky2 Feb 28’20 5:50
添加评论

Web

比特币兑换自导IRA LLC

我有一个自我指导的个人退休账户,通过一个有限责任公司控制资金。是否有人以其有限责任公司的名义在比特币交易所注册,如果有,哪些交易所对建立这样一个实体是用户友好的?
提前谢谢!
交易所
分享
改进这个问题
跟随
1月18日2:41问
蕾妮·D
1122枚青铜徽章
添加评论
1个答案
0
Coinbase很简单,只花了几天时间。我提供了所有需要的信息,而且很简单。我还建立了一个双星没有问题。
分享
改进这个答案
跟随
4月8日23:37答复
乔治罗德里格斯
1
添加评论
你的答案

Web

云计算的未来趋势

传统云计算领域主要分为计算、存储以及网络CDN,其中计算所占体量最大。在区块链云计算赛道中,Filecoin是去中心化存储、THETA是去中心化网络CDN,Dfinity是去中心化CPU计算,深脑链则是去中心化GPU计算。
去年英伟达市值超越英特尔,标志着传统云计算从CPU向GPU转移的主流趋势。而去中心化GPU在人工智能、云游戏以及区块链零知识证明计算领域都有着广泛的用例。

深脑链主网上线在即:

深脑链(DBC)是2017年年底成立的国产项目,力图通过区块链技术构建全球最大的分布式高性能算力网络。经过四年的运营,深脑链在去中心化计算(GPU)赛道首先落地。
为了进一步赋能区块链生态,实现更多的商业落地,深脑链DBC即将基于波卡Substrate上线主网。主网公测分为阶段一和阶段二,分别有51个节点和21个节点;目前DBC主网公测第二阶段即将启动,基础门槛为500万DBC ,共选出21个超级节点,每个节点可以获得39.6万DBC 奖励。
此外,DBC的挖矿模型也十分独特:不同于大多数项目只有挖矿收益,DBC矿工还将获得额外的GPU算力出租收益。这项收益主要来自于包括人工智能、云游戏、视觉渲染、区块链等相关行业的企业租用DBC算力网络的算力付费。Web

币圈清算」2020年暴跌黑天鹅剧本

吃个大饼  船员  2019-12-18 10:42:15  发布在 生活漫谈 143762  27
本剧本纯属虚构,如有雷同,纯属巧合

2020年的1月份,距离减半还有四个月。中国沉浸在过年的节日里,但是币圈这个节似乎过的很沉闷。2023年,回过头来,人们称之为2020年为「币圈清算」年,整个币圈似乎经历了一次清算。

在2019年10月开始,币圈人就盼着减半的行情启动,没想到迎来的是一次又一次的暴跌和阴跌,但是人们希望还在,还是不断在抄底和定投。

在减半故事的刺激下,矿工们开始加扛杠买矿机,矿机厂家纷纷推出了各种矿机金融产品,分期支付、算力期货、矿机期货。后世的人们原以为矿机巨头们是大而不倒的存在,没想到矿机厂家为了面对日益竞争的局面,自身企业也加足了杠杆。比特大陆面临着矿机市场萎缩的局面,以及内部股东的斗争,向民间资本和机构借贷了大量的资金用于矿机的扩大生产和市场价格战。

交易所巨头们认为这是最后一次战役,决定了谁是老大的最后一次牛市战役,于是疯狂地布局和加码,前三交易所中的币安因为19年遇到了盗币有窟窿,在交易所中增发了比特币从散户中拿到资金进行扩张和布局(纯属虚构,假的,只是为了小说素材),火币发力合约,为了合约深度设置了诸多机器人,相当于当市场的对手盘。(纯属虚构,假的,只是为了小说素材)imtoken 布局dex ,疯狂在国外招人,成本急剧上升。比特派为了支持更多的链和服务高效,集合了更多功能,甚至向矿池业务衍生。(全部是假的,小说素材需要)一线的区块链公司全部在加杠杆,增加成本开支布局,卯足劲等着减半的大牛市。

创业公司虽然感觉19年年底不太好过,但是都是强撑着等着2020年一波牛市,雨露均沾赚点钱,所以也都咬着牙不裁员,手头上甚至有很多主流币。甚至一些二线区块链创业团队还在扩张,被一些政策上和国际上利好的消息面所吸引,认为自己可以努力一下够上一线。

还有很多人拿着 USDT 等着行情一启动,马上就上。USDT 市场发行总量一度超过 60 亿美金。散户们上一波牛市或多或少被割,不甘心,一有现金马上抄底购入比特币。

都等着减半牛市。

但是19年最后的两个月剧情不对,市场一直阴跌,没有任何涨的迹象。大家互相鼓气,没事,过了这个年就好。没想到在过年前,经历了一次暴跌,比特币直逼 5000 美金,甚至下探到 4000 多的价位。而主流币更是惨淡,跌幅一度超过30%。有些人嗅到了不一样的味道,这个年过的苦闷,不敢有太大的开支。不过还是有希望过完年会好。

2月,仍然没起色,场外的 USDT 一直处于负溢价,似乎没有人要 USDT。但是2月还是有一些略微的5%的涨幅,有些人受到了鼓舞。

3月行情突然向下探了一波。市场开始恐慌了,所有乐观崩到了极点,开始崩不住了。几大传销大盘,plustoken等在持续抛盘,甚至加大了抛盘的速度。矿工开始有些人撑不住了,他们加码的杠杆,已经没有流动资金和借贷可以加仓了,分期的矿机开始续不上了,之前的矿机大半已经关机了,很多矿场已经没人挖矿了。矿机市场开始出现大面积违约。

往下 4000 美金,比特大陆的杠杆爆了。矿工的违约出现了多米诺骨牌反应,比特大陆后期支付不起矿机代工生产的费用了。资金上出现了大窟窿。

4月,有传闻某头部交易所丢币,已经没有足够的币给用户了。开始出现了币圈用户提现到钱包大面积行为,首先是一大交易所出现了暂停提币,给出的原因是系统维护。一周后,仍然维护,市场更加恐慌了,提币的人更多了,两天后,另外一大交易所也暂停提币。市场彻底恐慌了。各种消息满天飞,也不知道是真是假。

5月减半。行情没有如约而至,而是继续向下,没有入场资金。矿工纷纷割肉,比特大陆一片混乱,算力开始骤降。

6月7月,仍然不见起色。矿工发现算力下降了非常多,原来的矿机勉强可以挖矿了,没人再继续购买新的矿机了。国内几大矿机厂家都出现了资金问题。而暂停提币的交易所,陆陆续续放了一些币出来,交易所也找外面的资本借贷了大量的资金来填补窟窿。

7月、8月、9月,惨淡。10月,美国 FBI 通过各种渠道施压,连续关闭了 泰达 数个存美金的账户,消息传出,市场疯狂挤兑,USDT 暂停提现美金,跌至0.6美金一枚。泰达高层与美国周旋两个月,无效,11月中旬,放出公告,泰达进入破产程序,市面上的 USDT 一夜归零。

泰达的清算造成了 BTC 的一波小涨幅,涨幅将近20%,许多人把 USDT 买成比特币。但是市场持续的低迷,已经让市场信心和资金都处于崩溃的边缘,随后比特币仍然继续往下跌。

2020年12月,一片惨淡。

2021年,3月。某大交易所进入破产程序,比特大陆缩减规模,裁员高达80%。市场似乎再也起不来了,曾经的巨头们也龟缩到小规模。似乎又回到了2015年的起点。

2022年,惨淡中市场在恢复。回过头来看2019年下半年开始,整个市场都在疯狂加杠杆,原以为是韭菜收割机的公司也在加杠杆,而一旦币价下跌,连环暴雷。

2020年是币圈的清算年,全部重新洗牌,而清算都缘于各方的杠杆加到了极致,加上全球的经济衰退导致了币圈也一起清算。

2023年,市场开始进入慢牛,而市场上的佼佼者们似乎换了一批全新的面孔。

说明:暴跌写着玩玩,不要当真。

来源:@茶猫-MOREWeb

科学挖矿]常用挖矿软件和工具链接

 
算力论坛  版主  2019-04-25 07:29:05  发布在 算力论坛 110460  7
需要整理的资料很多,暂时放一些简单的。

挖矿新闻

https://cryptoage.com/zh/

自动挖矿类

Nicehash,显卡CPU挖矿,安装软件自动选择当日最高收益挖矿,按比特币结算,适合新手和购买出售算力。https://www.nicehash.com/

华硕量子云,显卡挖矿。https://www.quantumcloudai.com/

razer雷蛇,显卡挖矿积分换雷蛇的键盘鼠标等。https://www.razer.com/softminer

玩客云,带宽挖矿积分换购物卡或日常用品。https://www.onethingcloud.cn/

Honeyminer,显卡挖矿。https://honeyminer.com/

Minergate, 显卡挖矿。https://cn.minergate.com/

手动集成类

轻松矿工,常用挖矿软件图形界面操作,需要参考各矿池配置。http://www.qskg.top/

挖矿系统

Mineros,U盘、硬盘和无盘挖矿系统,安装后用盘启动可在网页配置。https://www.mineros.cn/

Hiveos, https://cn.minergate.com/

矿池列表

https://miningpoolstats.stream

https://poolexplorer.com/algorithm

挖矿收益

https://2cryptocalc.com/most-profitable-gpu
https://www.coincalculators.io/

https://www.asicminervalue.com/

算力历史记录查看

https://bitinfocharts.com

https://www.crypto51.app/

7-360天涨跌幅

https://cryptodeltas.sciusanalytics.com/

项目评级和排行

https://weisscrypto.com/en/coins

https://www.f2pool.com/coins

https://www.altdex.co/privacy/

https://messari.io/onchainfx

其它

51攻击成本
https://www.crypto51.app/

创宇区块链实验室 | Harvest.finance 闪电贷攻击事件

 

创宇区块链安全实验室 水手 2021-04-20 14:50:41 发布在 区块链社区

8004 1

前言

前不久,DeFi 项目 Harvest.finance 遭受黑客攻击,黑客利用闪电贷套利 2400 万美元,涉及金额巨大,轰动一时

知道创宇区块链安全实验室  旨在通过全盘梳理攻击流程和代码细节,一窥闪电贷套利的秘密。

全盘梳理

基础信息

攻击者地址:0xF224ab004461540778a914ea397c589b677E27bb
攻击合约地址:0xc6028a9Fa486F52efd2B95B949AC630d287CE0aF
首次攻击 tx:0x35f8d2f572fceaac9288e5d462117850ef2694786992a8c3f6d02612277b0877
VaultProxy(fUSDC):0xf0358e8c3CD5Fa238a29301d0bEa3D63A17bEdBE
CRVStrategyStableMainnet:0xD55aDA00494D96CE1029C201425249F9dFD216cc
VaultYCRV:0xF2B223Eb3d2B382Ead8D85f3c1b7eF87c1D35f3A
CRVStrategyYCRVMainnet:0x2427DA81376A0C0a0c654089a951887242D67C92
convertor:0xfCA4416d9dEF20aC5b6Da8b8b322b6559770eFbF
*为方便起见,后面提到的地址均只用地址前 4 位代表

交易始末

从 tx0x35f8 中的代币转移记录中可以大致看出事件经过

详细的合约调用过程可通过以太坊交易分析平台载入交易 hash 进行分析

流程分析大致如上,事件概括起来即是攻击者 0xf224 部署了攻击合约 0xc602,然后一系列闪电贷攻击均在攻击合约的 0xfdb57542 方法中进行,其中核心流程就是通过 Uniswap 的 Flash Swap 进行闪电贷,先获得大量 USDT 和 USDC 为后续攻击做准备,然后重复执行如下动作:

  1. Curve ySwap 中进行 USDT=>USDC 的巨额兑换(巨额兑换造成 y 池中 USDC 价格上涨)
  2. USDC 质押存入 VaultProxy fUSDC 池( USDC 价格上涨,铸造出较平常更多的 fUSDC )
  3. Curve ySwap 进行 USDC=>USDT 回兑(1 步骤的逆操作,USDC 价格恢复)
  4. VaultProxy fUSDC 池中赎回 USDC ( USDC 价格回落,赎回出较平常更多的 USDC )

最后归还闪电贷并将获利的 USDC 兑换为 ETH 提取

代码细节

攻击合约未开源,暂时不作分析。可先从关键的 VaultProxy fUSDC 池合约 0xf035 的 deposit 函数入手,分析 fUSDC 的铸造量是如何计算的

从质押函数中可以看出 fUSDC 的铸造量是根据 fUSDC 总量和 USDC 策略的总投资量的比例来决定的

underlyingBalanceWithInvestment 函数实现如下:

fUSDC 池代理合约 0xf035 会进一步调用 CRVStrategyStableMainnet 策略合约 0xD55a 去进一步查询已投资的底层资产 USDT 的量

来到稳定币策略合约 0xD55a,investedUnderlyingBalance 函数实现如下:

这里的调用就稍微复杂一点了,从 ycrvVault 合约 0xF2B2 获取 shares 与 price,将乘积传入 underlyingValueFromYCrv 函数,结果与该合约 USDT 的量的和作为最后的函数返回值

我们先来看 ycrvVault 合约 0xF2B2

该金库合约 0xf2b2 本身继承了 ERC20,具有代币属性,从构造函数中可以看出代币代表 fyToken

也就是说上面获取的 shares 即是策略合约拥有的 fyToken 量

然后是 price,来看 getPricePerFullShare 函数:

可以明显看出 price 即是 yToken 对 fyToken 的占比,那么 shares 与 price 的乘积即代表策略合约所占有的 yToken 量,最后传入 underlyingValueFromYCrv 函数,在该函数中会调用 convertor.yCrvToUnderlying

这里就到了整个过程中最关键的地方了,也是问题的根本所在

convertor 合约 0xfCA4 并未开源

我们再次回到以太坊交易分析平台,查看整个 deposit 调用过程

可以看到前面的调用流程分析如实,并且 convetor 的调用最终会调用 Curve 的 Zap.calc_withdraw_one_coin,而该函数用于查询 lpToken 的赎回价

问题就在这里了,这里相当于就是向 Curve 问价,而调用传入的是 yToken 的量,那么返回的就是 yUSDC 兑换 USDC 的价格,即 USDC/yUSDC

而当前面巨额兑换 USDC 后,y 池中 USDC 价格上涨,那么相对价格 USDC/yUSDC 就会下跌。Harvest.finance 的 USDC 策略中 yUSDC 资产所具有的 USDC 净值经 calc_withdraw_one_coin 计算而来就损耗减少,最终反映到 deposit 函数的 fUSDC 铸造算法中,将导致 fUSDC 铸造量增加


总结

归根到底,Harvest.finance 被攻击的本质原因在于对策略稳定币价值的估价出现了问题,直接调用易被操纵价格的 Curve 的 calc_withdraw_one_coin 函数来估价,从而使攻击者有机可乘。这就是一次典型的喂价机制不完善导致的价格操纵的经济攻击事件。

知道创宇区块链安全实验室官网:www.knownseclab.com
知道创宇唯一指定存证平台www.attest.im
联系我们:blockchain@knownsec.com



知道创宇区块链安全实验室导航


微信公众号
@ 创宇区块链安全实验室

微博
@ 知道创宇区块链实验室
https://weibo.com/BlockchainLab


知乎
@ 知道创宇区块链安全实验室
https://www.zhihu.com/org/zhi-dao-chuang-yu-qu-kuai-lian-an-quan-shi-yan-shi


Twitter
@KS_Blockchain_
https://twitter.com/KS_BlockchainWeb