我知道每一笔交易都会产生新的密钥对,通常是从一个主密钥(比如高清钱包中的主密钥)派生出来的。如果您对一个事务或接收到的BTC的更改是在多个UTXO中,是否为每个UTXO分别创建了一对密钥?
我的理解有点错误吗?因为当您收到BTC时,是生成一个全新的地址(从新生成的密钥),还是一个绑定到UTXOs的地址?我想是前者。如果是这样的话,那么钱包提供商是否应该尽量减少UTXO的数量?比如说,把我钱包里的所有BTC组合成一个UTXO,用一组钥匙沿着高清衍生路径。
bip32高清钱包
公钥
utxo公司
分享
改进这个问题
跟随
两小时前问的
马特·坦什
4533青铜徽章
添加评论
1个答案
0
您可以将多个事务发送到同一地址(地址重用),但不建议这样做,因为这样不利于您的隐私(在这种情况下,您可以使用同一私钥使用多个UTXO。)链观察员可以看到您在该地址的有效余额不断增加,而不是您将资金接收到多个地址,并且这些多个地址没有链接。
因为当您收到BTC时,是生成一个全新的地址(从新生成的密钥),还是一个绑定到UTXOs的地址?
从您的高清钱包新生成的密钥。
如果是这样的话,那么钱包提供商是否应该尽量减少UTXO的数量?
钱包提供商在购买UTXO时会考虑UTXO或硬币选择。一般来说,在隐私和尽量减少钱包中UTXO的数量之间存在着一种权衡(因此,您将不得不支付未来的交易费用)。
比如说,把我钱包里的所有BTC组合成一个UTXO,用一组钥匙沿着高清衍生路径。
您总是可以创建一个事务,将所有的UTXO发送到一个UTXO(UTXO合并),但正如我前面所说的,这对于隐私来说不是很好,因为链观察者现在知道所有以前的事务,并且总余额与单个事务相关联。
分享
改进这个答案
跟随
10分钟前编辑
如何通过本地网络将比特币节点连接到完整的节点?
我目前在本地网络上有一个完整的比特币节点,我想创建另一个节点,但只通过本地网络更新它。
我尝试过:./bitcoind-connect<iplocal>/bitcoind-addnode<iplocal>但是在意外的标记“newline”附近出现了以下错误语法错误,非常感谢您的帮助。
比特币核心
比特币
分享
改进这个问题
跟随
4月1日20:52问
胡安•大卫•佩ñ甜瓜
111青铜徽章
连接后需要等号(=)。-皮尔维尔4月1日20:21:11
我要试试。/比特币qt-connect=“iplocal”–胡安•大卫•佩ñ甜瓜4月1’20日23:23
添加评论
1个答案
2
如上所述,您的命令需要是./bitcoind-connect=<iplocal>
-connect=将仅连接到指定的节点-addnode=除了尝试连接到全局节点外,还将连接到指定节点。如果你正在引导一个新节点
分享
改进这个答案
跟随
回复时间:5月14日20:21
迈克
35411银徽章99铜徽章
添加评论
如何使用比特币模块从私钥生成Hash160
我想修改脚本代码。该脚本通过函数(pubtoaddr)从随机私钥比特币地址生成,并在比特币模块上工作:
https://github.com/primal100/pybitcointools/blob/master/cryptos/main.py
从比特币进口*
导入操作系统
priv=随机密钥()
pub=privtopub(priv)
地址=pubtoaddr(pub)
….
….
但我需要从Hash160中的随机私钥中获取
由于某些原因,我在main.py中找不到这样的函数
我搜索了一下,发现了一篇文章
>>>导入pybitcointools
>>>privkey=pybitcointools.random\密钥()
>>>私钥
‘34030ce14e32ac982419b3683af3b59d64a29cc93798cf479d610af49d425d13’
>>>pubkey=pybitcointools.privtopub(privkey)
>>>公共密钥
’04CE0ED35340803B0C21F2F7F5D5AB9D687E5FA95A79471C9B5C9D97A0BB170EAC1045230CC51D13B85A5F64FEB80F8FC19358A3967926E3F89D49066B1ABC07′
>>>h160=pybitcointools.hash160(pubkey.decode(’hex’))
>>>h160型
‘1558c7cd9825447a31990ff964f347bb2dbfe9be’
>>>addr=pybitcointools.hex_to_b58检查(h160)
>>>地址
’12wsYc4B9c9JeREqstLZXNWa3n4i42M5jg’
不幸的是我不能从
priv=随机密钥()—>Hash160
怎么做?
私钥
公钥
比特币核心开发
python
PyBitCoin工具
分享
改进这个问题
跟随
9月11日18:40问
德里克·斯沃德尼克
1
添加评论
1个答案
0
我使用的是另一个比特币库。这将从私钥打印地址和哈希值:
从bitcoinutils.setup导入设置
从bitcoinutils.keys导入P2pkhAddress、PrivateKey、PublicKey
def main():
#设置网络
设置(’testnet’)
#提供私有WIF密钥
priv=PrivateKey.from_wif(’cmahea7zqjxrtgabb7lsgbcqur1ux1ojua9jzodmn87k7xcyj5v’)
#获取公钥
pub=priv.get\u public\u key()
#从公钥获取地址
address=pub.get\地址()
#打印地址和哈希160
print(“地址:”,Address.to\u string())
print(“Hash160:”,address.to\u Hash160())
打印(“\n————————————-\n”)
如果uuu name uuuuuuuu==“uuuu main”:
主()
python输出
有关segwit地址,请参阅以下示例:https://github.com/karask/python-bitcoin-utils/blob/master/examples/keys_segwit_addresses.py
分享
改进这个答案
跟随
回复时间:9月11日22:15
普拉扬克
382711金徽章66银徽章1818铜徽章
我会尝试使用这个模块!如何在代码中编写函数,以便以随机方式生成“PrivateKey”?-德里克·斯沃德尼克9月12日5:12
将上述代码中的priv=PrivateKey.from_wif(’cmahea7zqjxrtgabb7lsgbcqur1ux1ojua9jzodmn87k7xcyj5v’)替换为priv=PrivateKey(),并在下面添加一个print语句,以便在每次运行代码时查看新的私钥:print(“私钥:”,priv.to_wif(compressed=True))–Prayank 9月12日7时11分20秒
我能用十六进制格式吗德里克·斯沃德尼克9月12日7:35
如果您要询问私钥WIF,请访问base58:learnmeabitcoin.com/technical/WIF–Prayank 9月12日8:05
发送BTC到旧输出地址
殖民地管道袭击-赎金部分如何追回
来自维基百科:
殖民地管道网络攻击
这篇文章说,不知道联邦调查局是如何获得这个地址的私钥和赎金的。找不到这方面的任何其他来源。有什么理论或证据证明这是怎么做到的吗?
勒索软件
分享
改进这个问题
跟随
昨天问
非政治标签
4344青铜徽章
新贡献者
添加评论
1个答案
4
联邦调查局似乎查获了他们的服务器并在那里找到了私钥。
如果你想知道比特币软件或协议中是否存在缺陷,目前还没有证据。
https://krebsonsecurity.com/2021/05/darkside-ransomware-gang-quits-after-servers-bitcoin-stash-seized/
编辑:
最新消息显示,赎金的比特币存放在加州的一个托管地址(交易所或钱包提供商),联邦调查局用司法部的搜查令将其查获。
因此(令人惊讶的是)黑客丢失比特币的原因似乎是他们使用了保管钱包(美国的),而不是他们有私钥的钱包。
交易流程似乎也很容易跟踪:任何人都可以这样做,即使不知道赎金的地址,只知道赎金的金额,如下所示:
https://blog.wolfram.com/2021/05/25/sleuthing-darkside-crypto-ransom-payments-with-the-wolfram-language/
分享
改进这个答案
跟随
16小时前编辑的
昨天回答的
利凡克利夫
74411银牌1515铜牌
谢谢-我很确定这不是区块链漏洞。罪犯似乎很粗心,没有立即把硬币转移到更安全的冷钱包里。但联邦调查局的结果不错,干得好-昨天的非政治标签
添加评论
HD地址和可追溯性问题
我有一个基本比特币地址,它有接收地址A和B,它们都接收到2个比特币。如果花了3个BTC,那么A和B就在一起了,所以它可能是可追踪的。如果我花了2个BTC(或者清空地址B)呢?B和A还能连在一起吗?
谢谢
地址生成
分享
改进这个问题
跟随
9小时前问的
用户1367323
101
新贡献者
添加评论
1个答案
1
B和A还能连在一起吗?
不是直接的。
然而,这取决于上下文和外部模式和信息。
例如,如果G每个月向地址A、B、C等发送2个BTC,而G没有在其他地方发送钱,人们就可以推断A和B之间有联系。他们可以推测这种联系的性质。其中一些推测可能恰好是正确的。可能还有其他交易或其他外部信息,人们可以用来寻找支持这些推测的证据。
分享
改进这个答案
跟随
什么是忠诚债券?它们在市场中是如何运作的?
我有兴趣了解富达债券在金融领域的基本概念,以及如何在金融市场中应用。
联合
金融
联合市场
分享
改进这个问题
跟随
5月10日10:20问
普拉扬克
382711金徽章66银徽章1818铜徽章
添加评论
1个答案
0
什么是忠诚债券?
忠诚保证是一种保险合同,旨在防止由于伪造、盗窃等造成的损失。雇主通常以商业保险的形式使用这种合同,通常包括雇员从事的不诚实活动。
背景:
第一次提到忠诚债券。这个想法基本上是由彼得·托德发明的:https://bitcointalk.org/index.php?topic=134827.0
将保真度键与混音器结合的旧想法:https://bitcointalk.org/index.php?topic=172047.0
这一建议非常接近市场上的保真债券理念。他谈到要求制造商提供存款,但没有人能想出一种方法,使这种存款分散和不可信任:https://www.reddit.com/r/Bitcoin/comments/2zc5tc/joinmarket_increase_the_privacy_of_bitcoin_and/ctk37hn/?context=1
在市场中增加忠诚债券:
Chris Belcher已经提出了一个pull请求,在Joinmarket中添加了Fidelity债券:https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/872
几乎所有的东西都包含在提交和评论中,这有助于删除bug(如果有的话)并很快将其合并。唯一缺少的主要特征是在冷藏库中保存收益率。
对joinmarket协议的更改是向后兼容的。有关详细信息,请阅读docs/fidelity-bonds.md。以下是总结:
保真度绑定是JoinMarket的一个特性,它提高了系统对sybil攻击的抵抗能力,从而提高了系统的保密性。
保真度保证是一种机制,在这种机制中,比特币的价值被故意牺牲,以使加密身份的获取成本高昂。牺牲的方式可以向第三方证明。JoinMarket的接受者将有更高的概率与发行价值更高的保真债券的制造商建立联合。这会使系统比sybil攻击更昂贵,因为攻击者在创建coinjoin时必须牺牲大量价值,才能经常被攻击者选择。
作为一个制造者,如果你牺牲比特币的价值来创造一个忠诚的保证,你可以参与更多的硬币加入,从而赚取更多的费用。创建保真度保证的最实际的方法是将比特币发送到使用操作码OP\u CHECKLOCKTIMEVERIFY的时间锁定地址。被牺牲的有价值的东西是金钱的时间价值。请注意,长期持有比特币的人(或hodler)基本上可以免费购买锁定时间的保真债券,前提是他们从未打算用自己的比特币进行交易。
富达债券的私钥可以冷藏,以增加安全性(注:尚未在JoinMarket中实施)
保真债券的金融数学:https://gist.github.com/chris-belcher/87ebbcbb639686057a389acb9ab3e25b
要锁多少硬币,锁多久?
富达债券UTXO一经确认就有价值。锁定硬币的保真债券价值的简化公式是:债券价值=(锁定硬币*经验(利率*锁定时间))^2
您可以随时使用orderbook watcher脚本查看自己的fidelity bond值。
还要考虑一下timelocks上比特币wiki页面上的警告
在撰写本文时,富达债券尚未在野外部署,但我建议您在6个月到2年的时间内锁定尽可能多的您满意的硬币。也许在一开始锁定只有1个月或2个月(?)这是一个市场和规则是众所周知的,所以最终你必须作出自己的决定。
分享
我们怎么能相信2140年的供应量不会仅仅增加几行代码?
我们怎么能相信供应不会仅仅增加几行代码?
共识
供给
分享
改进这个问题
跟随
三小时前编辑的
彼得·莫特森
39622银徽章99铜徽章
两天前问的
特维卡斯
27322枚银质徽章88枚铜质徽章
9
我想说,2140年一个更大的担忧是区块链账本的大小,以及是否有足够的带宽在互联网上高效地传递。它已经高达350 GB…–斯蒂克斯昨天
有几个论据可以帮助解决这个问题。首先,并非网络上的每个用户都必须拥有整个区块链的副本。它们可能只需要最后的$n$块与网络同步。并非每个用户都必须是完整节点。完整的节点将存储整个区块链。此外,摩尔定律指出,尺寸在2140年不应该是一个问题
添加评论
2个答案
22
比特币网络由“比特币满节点”组成,这些节点是分布在世界各地的计算机,每个节点独立运行以验证网络状态。
验证的一部分包括确保每一个经过的区块都创造了正确数量的硬币,以便已知和可预测存在的硬币总数。
若要更改此“硬币发行计划”,您必须更改所有这些计算机上运行的代码,以便它们都能独立地商定一些新的发行计划,并且都能以独立的共识继续验证哪些块有效(或无效)。如果您只能更改其中一些计算机上的代码,那么这些计算机将开始遵循剩余比特币网络节点认为无效的块,从而有效地创建网络的altcoin分叉(类似于“比特币现金”的情况)。
任何人,在任何时候,都可以创建一些软件来改变发行计划。那很简单。最困难的部分是说服所有运行比特币满节点的人切换到这个新代码,这会产生更多的硬币。没有人有权将这样的变化推到网络上(自上而下的治理),相反,定义网络的是网络所有节点的独立选择(自下而上的治理)。
所以答案是你不必相信别人不会增加供应。你只需要运行一些代码来验证他们没有。
分享
改进这个答案
跟随
2天前答复
奇特里克
15.5k33金徽章1616银徽章4141铜徽章
很小的一点,但是你不需要改变大多数计算机上的代码吗昨天的小兵
6
@Jiminion这样做只会导致那些计算机分叉(创建altcoin网络)&任何运行原始代码的计算机都会忽略它们,继续正常工作。有一些细微差别(即,每个网络指向它的hashpower有多大),但重要的是:即使大多数节点试图更改规则,也不会迫使其余节点也这样做。您可能会将此与多数攻击相混淆,在多数攻击中,攻击者控制了超过50%的hashpower(但这样的攻击者也不能任意更改网络规则)chytrik昨天
问题是,如果大多数玩家都被说服遵循fork,那么旧网络中的其余玩家就要完蛋了。但这是另一回事阿科斯塔季诺夫昨天
“您必须更改所有这些计算机上运行的代码”这不是每次更新核心代码库时都会发生吗?这些代码库是针对不向后兼容的更改,例如某些性能、大多数错误修复、建议切换到利害关系证明还是其他原因Moo 14小时前
1
据我所知,从来没有一个可信的提议将比特币转换为股权证明。不,一般来说,比特币核心版的新版本不包含向后不兼容的变化(这是比特币和以太坊(Ethereum)之间的关键区别之一
再显示1条评论
好吧,标题是唯一的问题,我们怎么能相信供应不会仅仅增加几行代码?
只是不要对你的代码做任何这样的更改,你永远不会看到供应量的增加。您可以控制计算机上运行的代码。如果您永远不想看到供应量的增加,请不要以这种方式更改代码。
当然,您只能与不希望看到供应增加的人进行互操作。因此,真正的问题与代码的更改无关,它与希望保证仍然有人不希望更改供您互操作的代码有关。
但你不能强迫任何人与你互操作,如果他们不想。
分享
改进这个答案
跟随
昨天回答的
大卫·施瓦兹
49.6k55金徽章11101银徽章172172铜徽章
观看比特币去同步,因为世界上有一半的人想增加供应,而另一半人不想增加供应,这将是一种乐趣约书亚18小时前
添加评论
你的答案
在未来的软fork中启用潜在的次优或未使用的操作码有哪些缺点?
在我看来,有多种方法可以使用操作码和sighash标志构建契约和保险库,但比特币中尚未启用这些方法(例如,OP\u CHECKTEMPLATEVERIFY、sighash\u ANYPREVOUT、OP\u CAT)。
假设在比特币的下一个软分叉中考虑到了这些功能,那么仅仅启用所有这些功能并看看人们用它们构建了什么,还有什么缺点呢?
显然,用一个潜在的次优操作码占用一个保留的opu SUCCESSx是一个缺点。在最坏的情况下,一个拙劣的操作码可能意味着一个UTXO可能无法使用(或者对完整的节点施加不可接受的验证开销)。还有其他潜在的不利因素吗?
我想这部分是因为Satoshi在2010年禁用了很多我不清楚的操作码。动机似乎是安全性,但我还是不清楚究竟什么样的攻击可能与什么操作码和这些攻击的严重性。
脚本
软叉
操作码
分享
改进这个问题
跟随
昨天编辑的
昨天问
迈克尔·福克森
616277银牌2323铜牌
添加评论
1个答案
1
对于一个操作码,除了确保在所有边缘情况下使用有限的资源外,还有另一个需要考虑的问题,我将在这里总结IRC上的其他人简要讨论过这个问题。
为比特币设计未来的操作码有不同的哲学方法。一个维度是操作码的设计应该使用RIS(精简指令集)方法还是CIS(复杂指令集)方法。精简指令集(RIS)方法导致操作码具有最小的功能,但它们可以像构建块一样与其他操作码组合,以创建更强大的功能(如UNIX)。复杂指令集(CIS)导致操作码提供完整和特殊的功能。
另一个方面是关于安全性,以及操作码是否应该被设计成防止步兵,限制程序员构建可能被误用的脚本,从而可能损害用户安全。另一种选择是不太担心用户安全,允许最大的灵活性,并将安全问题推到更高的抽象层(例如Miniscript、Policy、descriptor等)。
这两个维度并不完全正交。如果不考虑这些尺寸,那么您最终会启用一堆新的操作码(和sighash标志),并且不清楚应该使用哪些操作码来做什么,以及应该为如何安全使用它们提供什么指导(如果有的话)。当Satoshi启用和禁用操作码时,他/她并不了解我们在2021年的情况,也没有处理一个系统,该系统存储和传输数十亿美元,而更高的层依赖于对底层所做的更改。
分享
改进这个答案
跟随
“-rpcconnect”选项是如何工作的?
ts提到-rpcconnect可用于向远程比特币核心节点发送命令:https://github.com/bitcoin/bitcoin/blob/master/src/bitcoin-cli.cpp#L70
我正在使用此处提到的格式测试此选项:https://github.com/BlockchainCommons/Learning-Bitcoin-from-the-Command-Line/blob/master/14_1_Verifying_Your_Tor_Setup.md
torify bitcoin cli-rpcconnect=vazr3k6bgnfafmdpcmbegoe5ju5kqyz4tk7hhntgaqscam2qupdtk2yd.onion-rpcport=1309-rpcpassword=password3 getblockchaininfo
如果使用getnetworkinfo中返回的节点的洋葱地址,则会出现以下错误:
错误:无法连接到服务器VAZR3K6BgnFAFMDPCMBEGE5JU5KQYZ4TK7HHNTGAQSCAM2QUPDTK2YD。onion:1309 (错误代码1-“达到EOF”)
如果使用保存在/var/lib/tor/other\u hidden\u service/hostname中的洋葱地址,则会出现以下错误:
错误:授权失败:rpcuser或rpcpassword不正确
我假设连接在第二个错误中工作正常,但rpc凭据有问题。以下是bitcoin.conf的内容:
测试网=1
修剪=1000
服务器=1
倾听=1
代理=127.0.0.1:9050
扭矩控制=127.0.0.1:9051
调试=tor
test.rpcport=18332
test.rpcuser=用户3
test.rpcpassword=密码3
比特币核心
托尔
分享
打印此问题
跟随
%1 / %2
12小时前问的
普拉扬克
382711金徽章66银徽章1818铜徽章
通过getnetworkinfo公开的洋葱地址是不相关的。比特币核心只是为P2P通信自动设置洋葱服务,而不是RPC12小时前的皮特·维尔
谢谢您。我想这两个都可以用。12小时前的星期一
您的命令不包含-rpcuser.-麻吉弟弟周立铭♦ 10小时前
@安德烈如何解决这个问题:1小时前的普拉扬
添加评论
1个答案
1
-命令中缺少rpcuser。另外,通过getnetworkinfo公开的洋葱地址也不相关。比特币核心只是为P2P通信自动设置洋葱服务,而不是RPC。
以下命令工作正常:
torify bitcoin cli-rpcconnect=vazr3k6bgnfafmdpcmbegoe5ju5kqyz4tk7hhntgaqscam2qupdtk2yd.onion-rpcport=1309-rpcuser=user3-rpcpassword=password3获取区块链信息
分享
改进这个答案
跟随