一、比特币如何防止篡改
比特币网络主要会通过以下两种技术保证用户签发的交易和历史上发生的交易不会被攻击者篡改:
非对称加密可以保证攻击者无法伪造账户所有者的签名;
共识算法可以保证网络中的历史交易不会被攻击者替换;
非对称加密
非对称加密算法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%防止交易和数据的篡改,文中提到的两种技术都只能从一定概率上保证安全,而降低攻击者成功的可能性也是安全领域需要面对的永恒问题。我们可以换一个更严谨的方式阐述今天的问题—比特币使用了哪些技术来增加攻击者的成本、降低交易被篡改的概率:
比特币使用了非对称加密算法,保证攻击者在有限时间内无法伪造账户所有者的签名;
比特币使用了工作量证明的共识算法并引入了记账的激励,保证网络中的历史交易不会被攻击者快速替换;
通过上述的两种方式,比特币才能保证历史的交易不会被篡改和所有账户中资金的安全。
二、如何避免比特币投资交易中的风险
任何投资,与收益如影随形的是风险。比特币等数字资产的投资风险主要在于数字资产保存是否安全、交易平台是否正规可靠以及政策动向对市场的影响。其中,确保数字资产安全对于所有比特币持有者来说,是重中之重。
比特币系统的有一致命软肋是,持有者一旦丢失钱包秘钥,里面的比特币就再也找不回来了。2016年底,深知这一“痛点”的孙泽宇和团队研发了一款名叫“库神”(COLDLAR)的数字资产硬件钱包。
各大数字资产交易平台如同“银行”,而库神则让用户绕开平台,更安全的掌握自己的数字资产。而库神的核心优势在于,这是一种离线的“冷钱包”,通过二维码的方式让私钥永不触网,根绝了被黑客窃取的风险。具体来说,库神冷钱包由两部分组成:硬件冷钱包及联网端APP。硬件冷钱包主要负责构造交易并对交易进行数字签名,联网端APP负责联网查询余额及广播发送交易。联网端APP上涉及到的都是公开透明的信息,并无安全风险。
在选择交易平台方面,其一,应该选择成交量大、有口碑、玩家众多的交易平台;其二,手续费较高的交易平台可能会更安全;其三,可以选择有知名投资机构投资的交易平台,比如火币网获得了真格基金、红杉资本的投资。同时,可以根据就近原则,选择本地交易平台,掌握一手信源。
伴随着区块链技术的广泛应用、监管政策的逐步完善,对于投资者来说都是一个积极的信号。类似“暂停提币业务”这种短期的微小震荡,投资人不用过于担心。但若政策会带来长期影响,可以考虑先离场。
三、比特币成洗钱犯罪新手段,如何学会避坑
比特币作为一种网络数字货币可以说是很多人喜欢的,因为对于很多人来说比特币都会给自己带来很高的收益,但时候对于这样的事情我们是严厉打击的,这样的产品在很大程度上都会涉嫌非法集资或者说是洗钱犯罪。
对于比特币的监管是十分难得,因为比特币是一种虚拟网路数字货币,那么对于很多人炒比特币这样的行为自然就会十分不好管理的,虽然说我们很多时候都会对这样的行为进行制止,但是人的利益心都是十分大的,在很多时候可以说就是因为自己的利益心会让自己受到损失。
二、如何避免比特币洗钱犯罪
1、不要轻易去相信任何的高回报投资,在很多时候我们在网上都会遇到一些推广投资的人,那么我们去相信这样的行为自然就会让自己的经济受到损失。
2、对于一些虚假的平台自己一定要去分辨,千万不要随意向任何平台充值自己的资金,因为一旦进行充值那么可能就会面临无法提现。
3、不要轻易去想象去相信一些炒比特币可以赚钱的说法,因为这些行为在很大程度上就是在帮助一些违法犯罪分子犯罪。
三、为什么比特币会成为洗钱犯罪手段
1、在网上进行的违法犯罪手段十分难追查,对于一些犯罪分子来说就是一个漏洞。
2、更加容易利用人心,因为在网络上的交易对于很多人来说是十分方便的,那么自然就十分容易落入骗子的套路。
3、自己的利益心是十分强的,在很多事时候认为这样的行为可以让自己赚到钱那么就会去相信这些犯罪分子的言论,那么自然就会让我们受到损失。
在平时进行网络交易的时候一定要注意自己的安全,千万不要随意去相信任何网上投资和网上炒股的事情。
本站所有软件信息均由用户上传发布,版权归原著所有。如有侵权/违规内容,敬请来信告知邮箱:764327034@qq.com,我们将及时撤销! 转载请注明出处:https://czxurui.com/jys/149697.html
发表回复
评论列表(0条)