比特币的算法能被破解吗比特币的算法能被破解吗知乎
大家好,比特币的算法能被破解吗相信很多的网友都不是很明白,包括比特币的算法能被破解吗知乎也是一样,不过没有关系,接下来就来为大家分享关于比特币的算法能被破解吗和比特币的算法能被破解吗知乎的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
本文目录
FBI能破解比特币吗用量子计算机破解比特币算法需要多长时间高中生如何理解比特币加密算法比特币如何算出来的FBI能破解比特币吗实际破解不可能,有说法是说FBI通过黑客中转的服务器提供商强制提供了服务器权限,从而拿到了私钥。在我看来没有全部扣押很可能说明这笔钱已经变现了,这个已经是在别人的钱包中了,所以只能不要脸的硬扣人家比特币。
我来回答:关于FBI如何取得了黑客比特币地址的私钥,尽管有许多猜测,但显然没有人知道真相如何。
一位旧金山FBI的工作人员ElvisChan在接受NBC采访时,拒绝透露获取私钥的细节,因为在未来的行动中还有可能用到同样手段。但同时,他也明确说明,这次的行动并不依赖于“等待犯罪分子使用美国的加密货币服务”。
这一说法至少否定了FBI是通过交易所获得黑客资金的猜测,大多数交易所有严格的KYC/AML政策,更何况是美国的交易所,因而黑客不大可能直接使用美国的交易所洗钱。
由于此次行动只是恢复了部分勒索资金,也基本上否定了FBI已经破解比特币加密算法的猜测,因为假如FBI已经破解了加密算法,显然可以恢复全部的资金。
ElvisChan还提到,此次行动得益于“大多数互联网的基础设施都在美国”,从而给FBI提供了方便。
因而最接近事实的猜测是,勒索者使用了位于北美的全节点钱包,而全钱包在广播交易时,会泄露节点的IP。从安全的角度来说,每个地址只能使用一次,而通过区块链浏览器查询可知,勒索者先后两次使用转移资金的地址bc1qq2euq8pw950klpjcawuy4uj39ym43hs6cfsegq发送比特币,导致IP泄露,从而使得FBI抓住了获取私钥的机会。
币印CTO李天昭表示,黑客把勒索得来的比特币存储在使用美国公司云服务的比特币钱包上,而该云服务器位于美国境内被FBI直接接管,从而在没有私钥的情况下拿回了赎金。
比特币地址数量是2的256次方,有正余的地址大约5千万个,破解的概率几乎为零,概率太低,相当于在整个宇宙原子个数中找一个特定原子。
比特币在地址中转移是可以追踪的,无论转移多少次,但是不知道谁在转移转移到哪里。
但是一旦转到交易所那么就可以知道在谁的交易所账户里了,提现更可以追踪到提现到那个现金账户,这些都是人为可控的,除非不在线交易,否则就不可查。
本人用python写过一套程序,可以从核心钱包提取正余额地址,做成数据库,然后随机生成私钥,私钥生成三种比特币地址与数据库的正余额地址做比对,一旦对比成功就拥有了这个地址里的比特币,但是运行了半年没有成功过。理论上要集合全球所以算力,运行上千个世纪才能历遍所有地址。
还有一种情况就是私钥泄漏,比如放在服务器上,任何时候私钥都要离线存储。
找到密钥比破解密钥要容易的多。
比如严刑逼供,比如搜查,比如到服务器去找。
总之黑客也是要用密钥的对吧。
拿到你记录密钥的纸条了,这算不算破解?
比特币看似安全,但毕竟需要换成真实世界的钱的,毕竟还有人参与的地方。
真要追查,很多地方能追查到,并不需要破解比特币。
不是FBI,能不能破解比特币?
破解比特币有两个方法,一个是靠数学家,一个是靠比特币的发明人。
第一种办法,就是现在的数学家有没有能力对比特币的加密提供反加密的算法。如果可以提供,那么比特币将毫无安全性和价值。
第二种办法,就是留着后门,如果是这样子,就可能令这种加密货币受到致命的打击。
用量子计算机破解比特币算法需要多长时间破解比特币区块链算法需要多长时间?苏塞克斯大学的研究团队评估认为,拥有3.17亿个量子比特的量子计算机可以在1个多小时内突破比特币的加密;拥有19亿个量子比特的量子计算机可以在10分钟内破解加密。
所有的比特币交易在添加到区块链之前都需要由加密货币矿工网络进行验证。这个验证系统告诉系统谁拥有账本中的什么金额。在验证过程中,交易被赋予了一个带有加密密钥的指定。如果一个人或团体破解了这个密码,它将允许访问和拥有比特币集群。
不过现阶段最强大的量子计算机是拥有127个量子比特(qubits)的IBM超级计算机,是破解比特币代码的最佳设备。Webber表示在量子计算机取得巨大突破之前,想要破解比特币的算法是不太可能的。而想要发明这种高性能的量子计算机,至少还需要10年以上时间。
但Webber和他的同事仍然对比特币的未来表示担忧。他说道:“我们需要改变我们的加密技术,因为在未来,它们并不安全”。
高中生如何理解比特币加密算法加密算法是数字货币的基石,比特币的公钥体系采用椭圆曲线算法来保证交易的安全性。这是因为要攻破椭圆曲线加密就要面对离散对数难题,目前为止还没有找到在多项式时间内解决的办法,在算法所用的空间足够大的情况下,被认为是安全的。本文不涉及高深的数学理论,希望高中生都能看懂。
密码学具有久远的历史,几乎人人都可以构造出加解密的方法,比如说简单地循环移位。古老或简单的方法需要保密加密算法和秘钥。但是从历史上长期的攻防斗争来看,基于加密方式的保密并不可靠,同时,长期以来,秘钥的传递也是一个很大的问题,往往面临秘钥泄漏或遭遇中间人攻击的风险。
上世纪70年代,密码学迎来了突破。RalphC.Merkle在1974年首先提出非对称加密的思想,两年以后,WhitfieldDiffie和WhitfieldDiffie两位学者以单向函数和单向暗门函数为基础提出了具体的思路。随后,大量的研究和算法涌现,其中最为著名的就是RSA算法和一系列的椭圆曲线算法。
无论哪一种算法,都是站在前人的肩膀之上,主要以素数为研究对象的数论的发展,群论和有限域理论为基础。内容加密的秘钥不再需要传递,而是通过运算产生,这样,即使在不安全的网络中进行通信也是安全的。密文的破解依赖于秘钥的破解,但秘钥的破解面临难题,对于RSA算法,这个难题是大数因式分解,对于椭圆曲线算法,这个难题是类离散对数求解。两者在目前都没有多项式时间内的解决办法,也就是说,当位数增多时,难度差不多时指数级上升的。
那么加解密如何在公私钥体系中进行的呢?一句话,通过在一个有限域内的运算进行,这是因为加解密都必须是精确的。一个有限域就是一个具有有限个元素的集合。加密就是在把其中一个元素映射到另一个元素,而解密就是再做一次映射。而有限域的构成与素数的性质有关。
前段时间,黎曼猜想(与素数定理关系密切)被热炒的时候,有一位区块链项目的技术总监说椭圆曲线算法与素数无关,不受黎曼猜想证明的影响,就完全是瞎说了。可见区块链项目内鱼龙混杂,确实需要好好洗洗。
比特币及多数区块链项目采用的公钥体系都是椭圆曲线算法,而非RSA。而介绍椭圆曲线算法之前,了解一下离散对数问题对其安全性的理解很有帮助。
先来看一下费马小定理:
原根定义:
设(a,p)=1(a与p互素),满足
的最下正整数l,叫作a模p的阶,模p阶为(最大值)p-1的整数a叫作模p的原根。
两个定理:
基于此,我们可以看到,{1,2,3,…p-1}就是一个有限域,而且定义运算gi(modp),落在这个有限域内,同时,当i取0~p-2的不同数时,运算结果不同。这和我们在高中学到的求幂基本上是一样的,只不过加了一层求模运算而已。
另一点需要说明的是,g的指数可以不限于0~p-2,其实可以是所有自然数,但是由于
所以,所有的函数值都是在有限域内,而且是连续循环的。
离散对数定义:
设g为模p的原根,(a,p)=1,
我们称i为a(对于模p的原根g)的指数,表示成:
这里ind就是index的前3个字母。
这个定义是不是和log的定义很像?其实这也就是我们高中学到的对数定义的扩展,只不过现在应用到一个有限域上。
但是,这与实数域上的对数计算不同,实数域是一个连续空间,其上的对数计算有公式和规律可循,但往往很难做到精确。我们的加密体系里需要精确,但是在一个有限域上的运算极为困难,当你知道幂值a和对数底g,求其离散对数值i非常困难。
当选择的素数P足够大时,求i在时间上和运算量上变得不可能。因此我们可以说i是不能被计算出来的,也就是说是安全的,不能被破解的。
比特币的椭圆曲线算法具体而言采用的是secp256k1算法。网上关于椭圆曲线算法的介绍很多,这里不做详细阐述,大家只要知道其实它是一个三次曲线(不是一个椭圆函数),定义如下:
那么这里有参数a,b;取值不同,椭圆曲线也就不同,当然x,y这里定义在实数域上,在密码体系里是行不通的,真正采用的时候,x,y要定义在一个有限域上,都是自然数,而且小于一个素数P。那么当这个椭圆曲线定义好后,它反应在坐标系中就是一些离散的点,一点也不像曲线。但是,在设定的有限域上,其各种运算是完备的。也就是说,能够通过加密运算找到对应的点,通过解密运算得到加密前的点。
同时,与前面讲到的离散对数问题一样,我们希望在这个椭圆曲线的离散点阵中找到一个有限的子群,其具有我们前面提到的遍历和循环性质。而我们的所有计算将使用这个子群。这样就建立好了我们需要的一个有限域。那么这里就需要子群的阶(一个素数n)和在子群中的基点G(一个坐标,它通过加法运算可以遍历n阶子群)。
根据上面的描述,我们知道椭圆曲线的定义包含一个五元祖(P,a,b,G,n,h);具体的定义和概念如下:
P:一个大素数,用来定义椭圆曲线的有限域(群)
a,b:椭圆曲线的参数,定义椭圆曲线函数
G:循环子群中的基点,运算的基础
n:循环子群的阶(另一个大素数,<P)
h:子群的相关因子,也即群的阶除以子群的阶的整数部分。
好了,是时候来看一下比特币的椭圆曲线算法是一个怎样的椭圆曲线了。简单地说,就是上述参数取以下值的椭圆曲线:
椭圆曲线定义了加法,其定义是两个点相连,交与图像的第三点的关于x轴的对称点为两个点的和。网上这部分内容已经有很多,这里不就其细节进行阐述。
但细心的同学可能有个疑问,离散对数问题的难题表现在求幂容易,但求其指数非常难,然而,椭圆曲线算法中,没有求幂,只有求乘积。这怎么体现的是离散对数问题呢?
其实,这是一个定义问题,最初椭圆曲线算法定义的时候把这种运算定义为求和,但是,你只要把这种运算定义为求积,整个体系也是没有问题的。而且如果定义为求积,你会发现所有的操作形式上和离散对数问题一致,在有限域的选择的原则上也是一致的。所以,本质上这还是一个离散对数问题。但又不完全是简单的离散对数问题,实际上比一般的离散对数问题要难,因为这里不是简单地求数的离散对数,而是在一个自定义的计算上求类似于离散对数的值。这也是为什么椭圆曲线算法采用比RSA所需要的(一般2048位)少得多的私钥位数(256位)就非常安全了。
比特币如何算出来的从比特币的本质说起,比特币的本质其实就是一堆复杂算法所生成的特解。特解是指方程组所能得到有限个解中的一组。而每一个特解都能解开方程并且是唯一的。
以钞票来比喻的话,比特币就是钞票的冠字号码,知道了某张钞票上的冠字号码,就拥有了这张钞票。而挖矿的过程就是通过庞大的计算量不断的去寻求这个方程组的特解,这个方程组被设计成了只有2100万个特解,所以比特币的上限就是2100万个。
要挖掘比特币可以下载专用的比特币运算工具,然后注册各种合作网站,把注册来的用户名和密码填入计算程序中,再点击运算就正式开始。完成Bitcoin客户端安装后,可以直接获得一个Bitcoin地址,当别人付钱的时候,只需要自己把地址贴给别人,就能通过同样的客户端进行付款。
在安装好比特币客户端后,它将会分配一个私钥和一个公钥。需要备份你包含私钥的钱包数据,才能保证财产不丢失。如果不幸完全格式化硬盘,个人的比特币将会完全丢失。
钱包
比特币钱包使用户可以检查、存储、花费其持有的比特币,其形式多种多样,功能可繁可简,它可以是遵守比特币协议运行的各种工具,如电脑客户端、手机客户端、网站服务、专用设备;
也可以只是存储著比特币私密密钥的介质,如一张纸、一段暗号、一个快闪U盘、一个文本文档,因为只要掌握比特币的私密密钥,就可以处置其对应地址中包含的比特币。比特币无法存入一般的银行账户,交易只能在比特币网络上进行,使用前需下载客户端或接入线上网络。
以上内容参考百度百科-比特币
如果你还想了解更多这方面的信息,记得收藏关注本站。