写在前边: 对于比特币,咱们未必会遭逢一些难以涌现的期间问题,举例“新区块比旧区块早1秒出身”、“团结时候不同全节点的大小不同”等仙葩表象,对于这些问题,就需要乞助专科的开发者来襄明白惑,在本文中,译者便及第了8个相对较意旨的问题,而来自比特币开发社区的大神们也给出了精彩的谜底。 (注:以下问题和谜底,均来自bitcoin.stackexchange.com)
(图片来自tuchong.com)
问题具体面貌:现实getblockchaininfo时,size_on_disk显现大小比同期(区块)叙述的其他节点小1.2 GB。
欧博入口风险管理txindex=1
可能是什么原因导致的?我依然在twitter上问过其它平等节点运营者,看是否有他东说念主也有相通的履历,但每个东说念主的账本数据王人要比我多。 (https://twitter.com/bitdov/status/1231915231368163328) Ugam Kamat答: 区块链大小上的互异,是由于节点存储的沉沦区块数导致的。沉沦区块是也曾组成主链一部分,但咫尺不属于主链的区块。
举例,淌若有矿工同期在高度102挖取2个区块,当矿工通过gossip网罗中继区块时,与矿工2开采的区块(102b)比较,更围聚矿工1的网罗将开首给与它挖的区块(102a)。Bitcoin core将第一个给与到的有用区块添加到链的尖端。之后在团结高度给与的区块不会被删除,而是保存在数据库中,以防发生重组。因此,淌若在区块(102b)之上挖取下一个区块103,则开首给与到102a的节点,会将其链重组为包含区块102b的链,如下图所示。
Bitcoin Core不会删除从其平等节点那给与到的任何有用区块。它始终存储在数据库中的blocks/blk****.dat文献中(这对于主链中的区块亦然一样的)。但是,软件不会中继沉沦区块。为了给与沉沦区块,当你的平等节点从不同的链视图向你播送区块时,你需要在线。平等节点只会播送他们从现时活动链中看到的那些区块。因此,你只会领有在线时收到的沉沦区块,由于这种可变性,许多节点的比特币区块链大小等于不同的。
问题2:我试着用bitcoin-core客户端同步通盘区块链,然后这花了我大要9天的时候,效用却被防止了,是以我不得不删除并再行同步。有莫得资源不错通过torrent或成例浏览器下载? chytrik答:淌若你用torrent或其它方式下载区块链,但不考证收到的数据,那么你将无法得知收到的数据是否有用。这意味着你可能会松驰下载到一个被抨击者坏心革新的区块链,其中可能纳入了作假往还,删除了正当往还等,这些王人是你无法得知的。这等于为什么bitcoin-core要花消时候来下载和考证区块链的原因:这是在无需信任的情况下,获取现时网罗情景的惟一方法。
请慎重,bitcoin-core鄙人载链数据时最有用,淌若你下载一个区块链的torrent,然后尝试使用它进行考证,则需要更长的时候(你需要恭候竣工的下载,然后进行竣工的考证,而不是并行地现实每个部分)。
我不知说念有哪个软件能比bitcoin-core更有用地现实这些考证过失。淌若RAM诈欺率不足,不错尝试加多-dbcache选项。
博彩平台投注策略 问题3: 为什么比特币第620826个区块比第620825个区块早一秒出身? Andrew Chow答:比特币并莫得要求后一个区块的时候戳要晚于前一个区块,惟一的要求是时候戳大于临了11个区块的时候戳中值。因此,这意味着一个区块在某个边界内的时候戳不错低于其父区块。而第620826个区块早于第620825个,是因为矿工莫得透彻同步的时钟,它们的里面时钟可能略有不同,因此可能会蔓延几秒钟。淌若一个矿工真是很红运,并由于时钟的不同,而很快找到另一个区块,那么由于时钟的不同,他的时钟可能仍逾期于父区块的时候戳。这可能等于这里发生的事情。
问题4 :我能用相通的钱包出手两个比特币节点吗?问题具体面貌:咱们在处事器上有一个比特币全节点和钱包,问题是咱们的大多数钱包很久畴昔就完成同步了。对于咱们来说,似乎此同步任务可能会花消无数时候,而在该时候段内,整个其他肯求王人将无法走访比特币节点,而用户将无法使用咱们的处事器。
咱们磋商在单独的处事器上复制现时的比特币节点,并在那处同步钱包。完成此流程后,咱们会将钱包复制回原始处事器。
这是可行的吗?或者咱们不成在两个不同的比特币节点上有换取的钱包? Gašper Čefarin答:这是可行的,你不错根据需要出手多个具有换取钱包的节点。我念念你之是以要这样作念,是因为同步流程在另一个节点上会更快吗?该流程完成后,你必须要复制竣工的区块链数据,而不是钱包自己。
你可能需要磋商查验的瓶颈,可能是硬盘、CPU或某些情况下的互联网带宽。
问题具体面貌:在对于taproot的扣问中,有东说念主提到输出将径直包含公钥,而不是对它们进行哈希运算。有东说念主说,咫尺,哈希运算并不成实在挣扎量子野心提供匡助,这是为什么? Andrew Chow答:天然哈希一个公钥自己如实挣扎量子野心提供了匡助,但实质上,唯有在“真空”条款下才会是这样的,公钥哈希并不是存在于这样的环境中的,比特币还有好多其它东西需要磋商。
开首,淌若公钥是经过哈希运算的,那么资金唯有在使用前才是受到保护的。一朝使用了P2PKH或P2WPKH输出,就会公开公钥。当往还未经证据时,领有填塞快量子野神思的抨击者不错野心私钥并创建冲突的往还,从而将资金发送给我方,而不是预期的给与者。
此外,淌若抨击者是又名矿工,他们不错对每一笔往还王人这样作念,只需拒却挖取不向我方发送币的往还。
魔改是这部剧目前被嘲得最厉害的点,首先就是《有翡》的名字,原著中的“翡”是匪气的匪、匪徒的匪。书名《有匪》出自两千多年前的一句诗“有匪君子,如琢如磨”。至于为什么改名,很多网友猜测是为后后期方便过审,但这一行为却非常不符合原著的意思。
天然这是一个问题,但东说念主们频频以为,这要比径直花比特币要好,因为他们领有区块链中的公钥。天然这是真是,但是有无数公开公钥的输出。
咫尺有最初550 万 BTC的输出带有公开的公钥,它们要么是因为P2PK输出,要么是因为用户正在重用地址,因此其公钥在其他往还中是公开的。因此,淌若存在一台量子野神思,它能够在合理的时候内为公钥生成私钥,皇冠信用网则抨击者能够获取的比特币等于这些。
因此,天然你的特定输出可能受到哈希的保护,但这些输出的值将是0,因为会罕有百万BTC会被盗。哈希实在能作念的,只是提供一种失实的安全感。
此外,用具和钱包软件也存在一些问题,它们只是在往还和区块链中以其他方式公开公钥。莫得现有的用具将公钥视为稀薄信息,它们莫得原理这样作念。
触及公钥的复杂剧本和合约还存在其他问题,这些剧本(如multisigs)并莫得哈希公钥,此外,这些合约的存在频频是因为并非整个当事方王人必须相互信任(其中一方可能是坏心的),在这种情况下,合约中的坏心参与者将知说念所触及的公钥,并能够窃取与这些输出相关的比特币。现有的公钥哈希无法谨慎这种情况。
欧博正网临了,淌若发现有在不错防止ECDLP的量子野神思,就有可能向后量子密码体制过渡。淌若实时检测到,但仍然来不足进行妥当的升级,整个依赖ECDLP(即ECDSA和Schnorr)签名算法的使用王人不错通过软分叉,从而锁定整个的币。然后,这些币不错通过提供一个零常识的把柄来说明某些非公开的或抗量子的信息,这些信息会标明私钥的整个权。
举例,用户不错提供一个把柄,说明他们领有用于派生给定公钥对应私钥的BIP 32种子。由于它是零常识说明,种子自己不会公开(请慎重,种子不是公奥妙钥对的一部分,因此不存在分享的行家组件)。由于大多数钱包王人使用了BIP 32,这就填塞了。大略还有其他方法不错说明整个权,而毋庸冒着尚未念念到的币风险。
天然,这一切王人假定有一台量子野神思能够野心出一个公钥的私钥,而公众却不知说念这项期间依然存在。实质更可能的情况是,量子野神思的发展将被不雅察到,而且在它们广漠到足以龙套ECDLP之前的某个时刻,比特币将软性地引入一种抗量子签名算法。最终,依赖于ECDLP的签名将被删除。整个这些,王人将在量子野神思实在成为挟制之前发生。因此在这种情况下,哈希公钥不管何如,王人不会提供匡助。
13代皇冠导航使用说明书请慎重,以上整个内容不仅限于量子野神思,它频频适用于ECDSA(或Schnorr)的任何密码学防止。
问题6 : 何如通过分享换取k值的两个签名获取私钥?问题具体面貌:为了创建测试,我编写了我方的ECDSA签名算法,使用它我创建了两个签名,从地址1GXFXm3es....发出,产生往还56ec7ca7df...这些签名使用了换取的k值(尽管k值始终不成类似使用)。
自后,有东说念主从1GXFXm3es.... 这个地址偷走了0.0016BTC,并将这笔钱发送到了17WRjamox6VhTUaHsTWfFnMNDYHvwCtWio。
因此,势必有东说念主在监控区块链是否存在此类失实,并在遭逢此类失实时窃取资金。
那何如从分享换取k值的两个签名获取私钥? Pieter Wuille答: ECDSA签名是(r,s)对,其中r=(kG).x mod n,以及s = (m + rx)/k mod n,这里面的x是密钥,k是立时nonce,而m是信息。
对于团结密钥有两个s值s1和s2,况兼具有换取的nonce k(从而具有换取的值r),则不错现实以下操作: s1 = (m1 + r*x)/k s2 = (m2 + r*x)/k 从中咱们不错得出: s1 * k = m1 + r * x s2 * k = m2 + r * x (s1-s2)* k = m1-m2 k =(m1-m2)/(s1-s2) x =(s1 *(m1-m2)/(s1-s2)-m1)/ r x =(m1 * s2-m2 * s1)/(r *(s1-s2))(all mod n) 因此,你不仅不错消弱地检测具有换取立时数的签名(它们具有可识别的r值),而且一朝有东说念主看到两个签名,就会有一个通俗的公式来野心私钥。
至少从2013年起,这种抨击就已被广为东说念主知了,也有东说念主在积极诈欺它,不要类似使用k值,使用RFC6979敬佩但安全地生成它们。
还要慎重的是,光k值不同照旧不够的,它们也不成以已知的方式关联在一说念,举例,你不成将k值用于一个签名,然后将k + 1用于下一个签名。
1、RSA累加器很难正如实施; 2、RSA累加器需要一个实在开导(单个或多个实体必须得到一个填塞大的整数,它是2个素数的乘积,然后将这些素数丢弃)。比特币的联想频频是为了幸免实在方; 3、对于128位安全级别,你至少需要3000位RSA模块,这意味着说明将是3000位。 与具有最初12层树的Merkle旅途比较,这只是是一个优点,对于区块中的往还而言,这意味着最初4096笔往还。 频频情况并非如斯,即便如斯,也只是强迫如斯。
问题8 : 三种比特币地址类型是否王人不错互操作(legacy、segwit、native segwit)?问题具体面貌:是否不错在整个3种地址类型(legacy、segwit、native segwit-bech32)之间往复发送往还?
或者其中一类不成发送给另一类? Pieter Wuille:在合同层面,它们王人是兼容的,往还可花消其中任何一类,并发送给其中任何一种。
钱包软件天然可能会有抵制,但这些抵制频频与组合无关。
皇冠完整比分网 Murch♦补充回应: 在比特币合同中,从任何类型的输启航送到任何地址类型王人莫得抵制,但是一些较旧的钱包,可能不支撑发送到较新的地址类型。让咱们更好地了解一下在发送比特币往还时,具体可能会发生什么:
皇冠客服飞机:@seo3687给与者遴荐一个他们念念给与资金的地址,这就触及到一个地址方式,而遴荐一种更有用的地址方式,不错节俭开支,这合乎给与者的利益。
发送者遴荐他们念念要花消的输入,输入剧本是由这些输出之前给与到的地址类型开导的。可是,发送者被激发为他们的找零输出遴荐一个有用的地址类型,以节俭畴昔的本钱。
足球网盘网址可是,较旧的电子钱包软件可能无法发送到较新的地址类型。具体来说,原生斥逐见证地址在2017年3月才获取地址要领(BIP-173),并不是整个钱包王人支撑发送到这类地址。在这种情况下,发送者应该提供一个封装斥逐见证地址。整个钱包王人应该能够发送到封装斥逐见证地址,因为它使用了2012年推出的Pay to Script Hash (p2sh, BIP-16) 地址要领。
在职何情况下,发送到任何特定地址类型的问题排列五在线,王人是由发送方钱包中枯竭功能而导致的,而与使用的输入类型莫得任何关系。