.jpg)
一、比特币如何防止篡改
比特币网络主要会通过以下两种技术保证用户签发的交易和历史上发生的交易不会被攻击者篡改:
非对称加密可以保证攻击者无法伪造账户所有者的签名;
共识算法可以保证网络中的历史交易不会被攻击者替换;
非对称加密
非对称加密算法3是目前广泛应用的加密技术,TLS证书和电子签名等场景都使用了非对称的加密算法保证安全。非对称加密算法同时包含一个公钥(Public Key)和一个私钥(Secret Key),使用私钥加密的数据只能用公钥解密,而使用公钥解密的数据也只能用私钥解密。
请点击输入图片描述
图 2-非对称加密特性
比特币使用了非对称加密算法保证每一笔交易的安全,网络中的每一个账户(地址)都是一对秘钥中的公钥,账户的所有者会持有私钥,下面就是一对刚刚生成的比特币地址和私钥4:
Address: 13RTT8MsbAj7o4zL7w4DNNuuwhgGgHqLnK
Private Key: 469d998dd4db3dfdd411fa56574e52b6be318f993ca696cc5c683c45e8e147eb
需要注意的是,使用网站生成比特币地址和私钥是极其危险的做法,我们并不清楚网站是否会存储私钥,所以建议使用比特币的客户端生成公私钥对。
任何人通过上面的地址 13RTT8MsbAj7o4zL7w4DNNuuwhgGgHqLnK都可以向该账号转账;账号的持有者也可以使用私钥签名交易向其他地址转账,当我们想要向比特币网络中提交一笔新的交易时,需要先构建一个如下所示的交易结构:
{
"txid":"5be7a9e47f56c98e5297a44df52da0475f448ece98bb51489103cdf70653092f",
"hash":"5be7a9e47f56c98e5297a44df52da0475f448ece98bb51489103cdf70653092f",
"version":1,
"size":224,
"vsize":224,
"locktime":0,
"vin": [...],
"vout": [...],
"hex":"0100000001a90b4101e6cbb75e1ff885b6358264627581e9f96db9ae609acec98d72422067000000006b483045022100c42c89eb2b10aeefe27caea63f562837b20290f0a095bda39bec37f2651af56b02204ee4260e81e31947d9297e7e9e027a231f5a7ae5e21015aabfdbdb9c6bbcc76e0121025e6e9ba5111117d49cfca477b9a0a5fba1dfcd18ef91724bc963f709c52128c4ffffffff02a037a0000000000017a91477df4f8c95e3d35a414d7946362460d3844c2c3187e6f6030b000000001976a914aba7915d5964406e8a02c3202f1f8a4a63e95c1388ac00000000",
"blockhash":"0000000000000000000c23ca00756364067ce5e815deb5982969df476bfc0b5c",
"confirmations":5,
"time":1521981077,
"blocktime":1521981077
}
接下来,我们可以使用持有的私钥对整个交易中的全部字段进行签名,然后将签名与交易打包并发送到网络中等待比特币网络的确认就可以了。
在比特币的所有地址中,35hK24tcLEWcgNA4JxpvbkNkoAcDGqQPsP地址中目前持有 250,000多个 Bitcoin5,目前的市值大概为 20亿美元。在只知道地址的情况下,我们来算一下获取该地址对应的私钥需要多长时间。比特币的私钥总共有 256位,即 22562256中可能性:
115792089237316195423570985008687907853269984665640564039457584007913129639936115792089237316195423570985008687907853269984665640564039457584007913129639936
目前我们没有较为快捷的破解手段,只能使用暴力破解计算私钥。假设我们使用 IBM在 2018年推出的超级计算机 Summit6,它能每秒能做 1.4∗10171.4∗1017次浮点数计算,假设该计算机可以每秒计算相同次数的公私钥对(计算公私钥对远比一次浮点数计算复杂),想要找到存放 20亿美元资产的地址对应的私钥需要如下所示的时间:
1.15∗1077365∗86400∗1.4∗1017=2.9∗1052年1.15∗1077365∗86400∗1.4∗1017=2.9∗1052年
我们整个宇宙的存在时间也只是破解该私钥时间的几十亿分之一,所以在目前的计算能力没有革命性突破的前提下,想要通过暴力破解的方式获取公钥对应的私钥只有理论上的可能性,在实践中是完全不可能的7。
共识算法
MySQL等数据库以行为单位存储数据,而比特币这个分布式数据库中存储的基本单位是区块,区块通过哈希指针连接就会构成一棵树,如下图所示,图中绿色的最长链就是网络的主链。
请点击输入图片描述
图 3-区块链和主链
如何让网络中的所有节点对下一个区块中的内容达成共识是比特币需要解决的关键问题,只有让节点对数据达成一致才会保证过去的交易不会被篡改,但是作为在公网运行的分布式数据库,它面对的场景非常复杂,需要解决拜占庭将军问题下的分布式一致性问题。
拜占庭将军问题是 Leslie Lamport在 The Byzantine Generals Problem论文中提出的分布式领域的容错问题,它是分布式领域中最复杂、最严格的容错模型8。在该模型下,系统不会对集群中的节点做任何的限制,它们可以向其他节点发送随机数据、错误数据,也可以选择不响应其他节点的请求,这些无法预测的行为使得容错这一问题变得更加复杂。
拜占庭将军问题描述了一个如下的场景,有一组将军分别指挥一部分军队,每一个将军都不知道其它将军是否是可靠的,也不知道其他将军传递的信息是否可靠,但是它们需要通过投票选择是否要进攻或者撤退:
请点击输入图片描述
图 4-拜占庭将军问题
区块链技术使用共识算法和激励让多个节点在拜占庭将军场景下实现分布式一致性。比特币使用如下的规则让多个节点实现分布式一致性:
引入工作量证明—让节点在提交新的区块之前计算满足特定条件的哈希,取代传统分布式一致性算法中,一人一票(或者一节点一票)的设定;
引入最长链是主链的设定—只有主链上的交易才被认为是合法交易;
引入激励—提交区块的节点可以获得比特币奖励;
通过以上的规则,各个节点会在最长的链上计算哈希,努力提交合法的区块。然而一旦节点中有人掌握了 51%以上的计算能力,它能通过强大的算力改变区块链的历史。因为区块具有连续性,所以前一个区块的改变会使后一个区块计算的哈希失效,如图 4所示,如果攻击者需要改变主链中的倒数第三个黄色区块,它需要连续构建四个区块才能完成对历史的篡改,其他的节点才会在这条更长的链上继续计算:
请点击输入图片描述
图 4- 51%攻击
1使用如下所示的代码可以计算在无限长的时间中,攻击者持有 51%算力时,改写历史 0~ 9个区块的概率9:
#include
#include
double attackerSuccessProbability(double q, int z){
double p= 1.0- q;
double lambda= z*(q/ p);
double sum= 1.0;
int i, k;
for(k= 0; k<= z; k++){
double poisson= exp(-lambda);
for(i= 1; i<= k; i++)
poisson*= lambda/ i;
sum-= poisson*(1- pow(q/ p, z- k));
}
return sum;
}
int main(){
for(int i= 0; i< 10; i++){
printf("z=%d, p=%f\\n", i, attackerSuccessProbability(0.51, i));
}
return 0;
}
通过上述的计算我们会发现,在无限长的时间中,占有全网算力的节点能够发起 51%攻击修改历史的概率是 100%;但是在有限长的时间中,因为比特币中的算力是相对动态的,比特币网络的节点也在避免出现单节点占有 51%以上算力的情况,所以想要篡改比特币的历史还是比较困难的,不过在一些小众的、算力没有保证的一些区块链网络中,51%攻击还是极其常见的10。
防范 51%攻击方法也很简单,在多数的区块链网络中,刚刚加入区块链网络中的交易都是未确认的,只要这些区块后面追加了数量足够的区块,区块中的交易才会被确认。比特币中的交易确认数就是 6个,而比特币平均 10分钟生成一个块,所以一次交易的确认时间大概为 60分钟,这也是为了保证安全性不得不做出的牺牲。不过,这种增加确认数的做法也不能保证 100%的安全,我们也只能在不影响用户体验的情况下,尽可能增加攻击者的成本。
总结
研究比特币这样的区块链技术还是非常有趣的,作为一个分布式的数据库,它也会遇到分布式系统经常会遇到的问题,例如节点不可靠等问题;同时作为一个金融系统和账本,它也会面对更加复杂的交易确认和验证场景。比特币网络的设计非常有趣,它是技术和金融两个交叉领域结合后的产物,非常值得我们花时间研究背后的原理。
比特币并不能 100%防止交易和数据的篡改,文中提到的两种技术都只能从一定概率上保证安全,而降低攻击者成功的可能性也是安全领域需要面对的永恒问题。我们可以换一个更严谨的方式阐述今天的问题—比特币使用了哪些技术来增加攻击者的成本、降低交易被篡改的概率:
比特币使用了非对称加密算法,保证攻击者在有限时间内无法伪造账户所有者的签名;
比特币使用了工作量证明的共识算法并引入了记账的激励,保证网络中的历史交易不会被攻击者快速替换;
通过上述的两种方式,比特币才能保证历史的交易不会被篡改和所有账户中资金的安全。
二、指纹浏览器比特是怎么做到防关联的
在了解这个提问的前提是我们要说明一下什么指纹浏览器,在众多的环境中,指纹浏览器是作为电商环境中的一种辅助软件,中有着跨区域性的电商行业中。运用比较广泛。主要作用就是防止账号关联或者是防止账号的封闭,一般在针对电商平台的严酷的规则中有着重要的作用的。在访问平台的同时,能防止浏览网页跟踪和记录用户的指纹信息,深度隐藏和删除cookies文件。
三、怎样防止计算机感染比特币木马
随着时间的推移,Internet中的病毒会有增无减,并且种类越来越多,功能越来越强大,因此用户需要做好计算机病毒的预防措施,并且还需要在计算机中安装杀毒软件,不定期扫描并查杀计算机中潜藏的病毒
安装杀毒软件(主要用于查杀计算机中的病毒,杀毒软件通常集成了监控识别的功能,一旦计算机启动,杀软就会自动启动,并且在计算机运行的时间内监控系统中是否有潜伏在的病毒,一旦发现便会通知用户进行对应操作(包括隔离感染文件、清除病毒以及不执行任何操作3分钟)因此当用户在计算机中安装杀软后,一定要将其设为开机启动项,这样才能保证计算机的安全)
不轻易打开网页中的广告(Internet中提供了不少的资源下载网站,但是这些网站的安全系数并不高,虽然这些网站提供资源绝大部分都是绿色软件,并未携带病毒,但是在资源下载网页中有着不少的广告信息,这些信息就可能是一个病毒陷阱,一旦用户因为好奇而查看了这些广告信息,这些信息携带的病毒就会入侵到本地计算机,因此不要轻易查看网页中的广告)
利用QQ传送的文件和发送的消息(QQ是国内使用最广泛的即时通信工具之一,黑客通常会利用它来向对方发送文件或者消息,如果用户稍不小心就会让自己的计算机遭受病毒的入侵。当对方向自己传送文件时,如果所发送的文件携带了病毒,一旦自己接收并打开,就会使计算机中毒;如果对方发送含有病毒的网址链接,一旦单击该链接,也会使计算机中毒)
注意陌生人发来的电子邮件(电子邮件是Internet中使用率较高的通信工具之一。利用它,用户可以用非常低廉的价格,以非常快速的方式向Internet中的任何一位用户发送邮件。正因为其通信范围广的特点使许多黑客开始利用电子邮件来传播病毒,例如将携带病毒的文件添加为附件发送给Internet中的其他用户,一旦下载并运行该附件,计算机就会中毒。另外,一些黑客将携带病毒的广告邮件发送给其他用户,一旦浏览这些邮件中的链接,就有可能使计算机中毒,因此建议用户不要轻易打开陌生人发来的广告邮件和附件,如果需要查看附件,则应先将其下载到本地计算机中后使用杀毒软件扫描一下,确保安全后再将其打开)
其次介绍以下常见的病毒传播途径
利用可移动储存设备传播(计算机通过连接到计算机上的U盘、可移动磁盘、手机等等进行传播,U盘具有携带方便的特点,所以他为计算机病毒的寄生提供了更充足的空间)
利用局域网传播(通过数据共享和互相协作的需要,组成局域网的每一台计算机都能连接到局域网中的其他计算机,因此数据也能从一台计算机发送到局域网的其他计算机中)
利用interent传播(将病毒捆绑在用户下载的电子邮件附件、浏览网页和下载网络资源里)
计算机危害性评估
导致死机(计算机中病毒后最常见的就是不断占用CPU使用率和系统内存,直至计算机死机,如果计算机处于死机状态,而主机的硬盘指示灯仍然长时间闪动,可能潜伏在系统中的计算机病毒被激活)
无限弹窗(当X些病毒被激活后,用户启动浏览器,程序就会自动打开无限多的窗口,既占用系统资源,又影响用户正常工作,即使用户手动关闭了窗口,但系统仍然会弹出窗口,而且更多,遇到这种情况,必须利用杀毒软件进行扫描并查杀)
杀软被屏蔽(杀软往往都具有针对性,意思是,杀软只能查杀自己病毒库中保存下的病毒,无法查杀未存在于病毒库中的病毒,所以网络中有着一群不法分子通过层层伪装来躲避杀软检测,如出现这种情况则需要重装系统或者使用在线查杀功能!提醒:重装系统前别忘记备份重要资料~)
系统图标统一(X些病毒会导致磁盘保存的文件图片全都变为统一图标,就像熊猫烧香一样)
系统时间被强制更改(有些病毒会自动修改系统显示的时间,一旦病毒运行,用户每次启动计算机后系统都会显示指定时间,即使修改为准确时间,重启后还会变为病毒自动修改的时间)
提示:用户在下载不明软件时可以使用杀软检测,但通过伪装的病毒程序不易被发现,所以我建议还是最好安装虚拟机或者百度搜索:影子系统(开机进入完全影子模式)但坏处是完全影子模式后你原本保存的软件就讲会被强制恢复
纯手撸版权所有:Kender QQ:1300000705
望采纳~
四、怎么防止比特币病毒 比特币病毒怎么才能预防
比特币病毒预防方法:
1、为计算机安装最新的安全补丁,微软已发布补丁MS17-010修复了“永恒之蓝”攻击的系统漏洞,请尽快安装此安全补丁;对于windowsXP、2003等微软已不再提供安全更新的机器,可使用360“NSA武器库免疫工具”检测系统是否存在漏洞,并关闭受到漏洞影响的端口,可以避免遭到勒索软件等病毒的侵害。
2、关闭445、135、137、138、139端口,关闭网络共享。
3、强化网络安全意识:不明链接不要点击,不明文件不要下载,不明邮件不要打开……
4、尽快(今后定期)备份自己电脑中的重要文件资料到移动硬盘、U盘,备份完后脱机保存该磁盘。
5、建议仍在使用windows xp,windows2003操作系统的用户尽快升级到 window7/windows10,或 windows2008/2012/2016操作系统。
本文来自用户投稿,不代表币大大立场,如若转载,请注明出处:https://czxurui.com/jys/185929.html


发表回复
评论列表(0条)