主页 > imtoken钱包下载教程 > 第 1 节有关比特币的常见问题

第 1 节有关比特币的常见问题

imtoken钱包下载教程 2023-05-19 07:07:51

第 1 部分:关于比特币的常见问题解答(一)一个小故事

有一天,一个同学在网上漫游的时候,发现了一家网店,里面有新潮有趣的产品,最重要的是,这家网店支持比特币支付。作为比特币的坚定信徒,他和店主聊得很投机,决定以10个比特币的价格从他那里购买一件产品。与店主约定,前者将10个比特币发送到后者的地址,后者收到比特币后发货。

店主先打开自己的比特币钱包,创建一个新的比特币地址提供给高年级同学进行支付。这里,店主创建新地址的本质是生成一个密钥对,由公钥和私钥组成,其中私钥只有店主知道,而公钥是公开的,可以用于验证付款的真实性。

在收到店主的地址信息后,学长也打开了自己的比特币钱包客户端,并指示客户端将10个比特币发送到店主的收款地址。在钱包客户端中,存储了长人所有地址的私钥。为简化问题,我们假设长仁输入其中一个地址。收到了 11 个比特币,这笔款项仅从该地址中扣除。发送比特币时,钱包客户端用该地址的私钥对交易进行签名,并向全网公布交易信息。

此时,网络上的所有节点,或者每个矿工,都会验证交易是否有效。验证方法也很简单,取出这个地址的公钥,对比一下。在这里,我们的两位矿工宋焕平和谢空空也收到了交易信息。在验证交易有效后,他们将交易放入内存并等待进入数据块。一段时间后,宋焕平的电脑​​计算出一个符合条件的随机值,系统宣布新的合格数据块诞生,并向全网公布消息。其他节点(包括 sleep empty)接收它,并在这个数据块之后启动。新的采矿工作。并且将常人和掌柜的交易信息打包放入宋焕平挖掘的数据块中,初步确认。当下一个区块链接到这个区块时,交易将被进一步确认。连续收到6次区块确认后,张先生与掌柜的交易基本“不可逆”确认。

掌柜发现10个比特币已经到了他的地址,经过一段时间的等待确认后,他将商品发给了他的同学常仁,交易完成。

(二)确认时间问题

在这个故事中,最引人注目的问题是比特币的确认时间。宋焕平等矿工不断求解满足条件的随机值,获得随机值所需时间已由系统预先确定,平均为10分钟。也就是说,无论宋焕平睡得安稳,空空人有多辛苦,挖出一个数据块的时间,总是10分钟左右。如果要保证交易的不可逆性,需要6个数据块进行确认,至少需要1个小时。

为什么比特币交易需要确认?这涉及双重支出。如果常任先生给掌柜支付了10个比特币,但没有等系统确认,他用同一个地址(里面有11个比特币)向其他地址支付了10个比特币,他使用了一些技术手段(例如, 10个比特币被分成很小的部分,发送到几个地址,这样系统会先确认交易),这样下一个交易在前一个之前被确认,那么店主最终不会得到这10个比特币。简而言之,比特币交易等待的时间越长,得到的确认越多,它就越安全。

如果交易发生在网上,并且销售不是一个对时间非常敏感的项目,那么等待 1 小时的确认时间也没关系。但如果比特币交易发生在日常生活中,确认时间就会成为一个严重的问题。我们很难想象,上班前7点11点买糯米鸡早餐的白领,要在店里等上十分钟甚至一个小时才走。

这个问题的本质实际上是信任。您是否信任与您打交道的人是解决问题的关键。为了分析方便,我们将其分为以下几种情况进行讨论:

(1)熟人交易

这里的熟人不一定是朋友,可能是你和你楼下店的老板。他每天都会看到你上下班,并在你见面时向你打招呼。你经常去他的商店买东西。这种情况下,他不会太在意确认时间,因为你已经是老顾客了。不太可能因为讨价还价而失去声誉。

比特币密码是几位数

(2)陌生人的商品交易

陌生人之间的第一次交易,相互之间很难立即建立信任。在这种情况下,确认时间是必要的,但不一定是不可接受的。想象一下你去4S店买车,当你用比特币买车时比特币密码是几位数,店员会同时帮你购买和销售这种商品,通常比比特币的确认时间要长很多。那么,商家和您就不会太在意交易的确认时间了。

(3)陌生人的小额交易

这是比特币当前技术的最大问题。在一个大城市里,许多小交易发生在陌生人之间。 2013 年在美国圣何塞举行的比特币大会上,提出了许多解决方案来解决这个问题。最重要的一种叫做链下交易,即交易不在区块链中进行。确认。如果有一家公司能够以其一贯优秀的口碑赢得用户的信任,从而推出自己的在线钱包软件。然后,只要商家和客户都注册了公司账户,客户就可以将自己的部分比特币存入公司账户,通过在线钱包,购买商家的产品,将比特币从自己的账户到商家的账户。由于这笔交易实际上只是公司系统内的一笔金额的转账,并不涉及区块链的确认,所以交易几乎是瞬间完成的。通过这种方式,可以解决陌生人之间的小额交易问题。

(三)钱包的安全问题

在常人与掌柜的交易中,双方均使用比特币钱包客户端。大多数用户会选择Bitcoin-QT等客户端作为自己的比特币钱包来存储私钥。钱包在比特币使用中的作用至关重要。但老实说,使用比特币的大部分风险都集中在钱包上,比如:

出现以上所有问题的原因是钱包客户端的特性造成的。

(1)官方钱包客户端的风险

首先要注意的是,所有钱包客户端都没有比特币。从比特币的特性来看,它实际上是一个在互联网上流动的大账本中的数字。比特币钱包存储用户的私钥,用于证明用户的对账簿。某些数字拥有所有权。每当用户想要使用他的比特币财产时,他就使用钱包中某个地址的私钥进行签名,从而向全网广播,证明该地址中的比特币是属于他的。

以官方钱包客户端Bitcoin-QT为例,客户端存储比特币私钥的文件为Wallet.dat,一般win8系统下存储路径为C:\Users(你的用户电脑)。名称)\Appdata\Roaming\BitCoin。 (需要注意的是,Appdata一般是隐藏文件夹,需要修改系统设置才能让隐藏文件可见。)Wallet.dat文件本质上是一个私钥池,里面存放着这个所有地址的私钥钱包。有了这个文件,用户就可以证明钱包地址里的比特币是他所有的。

所以钱包风险其实可以分为几种情况:

比特币密码是几位数

wallet.dat 文件被盗

这是最常见的钱包风险。如果用户的电脑被成功破解,并且wallet.dat文件被黑客获取,那么黑客也就拥有了对钱包地址的控制权。在用户察觉之前,黑客会转移该地址可以控制的所有比特币。

wallet.dat 文件丢失

这并不罕见。如果wallet.dat文件在没有备份的情况下误删除,用户的所有比特币都将丢失。与 wallet.dat 被盗不同的是,在这种情况下,这些比特币只会像幽灵一样在互联网上漫游,再也没有人有权使用它们,因为唯一能证明所有权的私钥,已经永远消失了。这些丢失的比特币将减少现有比特币的总量。

walllet.dat 备份错误

比特币钱包客户端的设置使wallet.dat的备份成为一项技术任务。稍有不慎就会导致严重的比特币损失。

在Wallet.dat的私钥池中,初始状态的私钥有100个。当你“生成”一个新地址时,客户端实际上并没有生成一个新地址和对应的公私钥,而只是从私钥池中取出一个来使用,同时生成一个(真实的)一个将新的私钥和地址放入私钥池中,保持未使用的私钥数量为100。

使问题更复杂的是客户端本身的更改机制设置。比特币本身的规则规定,支付时必须将一个地址上的所有比特币都花掉,剩余的金额除了支付比特币到另一个地址外,还必须归还到原地址。例如,以下交易之一:

图 5-1 比特币交易示意图

17C的地址之前包含0.1890067个比特币,当17C的所有者向18y的地址发送支付0.1个比特币的指令时,系统将取出所有0.1890067个比特币在17C地址,将0.1个比特币转入18y地址,将剩余的0.0890067个比特币转回17C地址。

比特币密码是几位数

为了保护用户的匿名性,客户端不会将余额发回原地址,而是从私钥池中取出一个新地址放入余额,默认不显示这个新地址在客户端的界面中。

所以每次用户进行交易时,都会取出私钥池中的原始私钥,同时会添加一个新的私钥。如果用户在备份 wallet.dat 后进行了一百次交易,则原私钥池中的所有原私钥将被用完,接下来使用尚未备份的新私钥。使用新私钥进行交易后,如果用户恢复原来的备份文件,那么所有没有备份的新私钥都会丢失,这些新地址中的比特币也会丢失。

(2)解决方案:提高钱包安全性

为了增加钱包的安全性,有以下几种选择:

通过前面的介绍可以看出,私钥的作用是证明你在某个地址拥有比特币。这是存储比特币最安全、最可靠的方式。

网上有完整的离线钱包使用教程。主要原理是把私钥放在永远不联网的电脑里,把存放比特币的钱包地址放在联网的电脑里。由于联网的电脑没有私钥,所有的交易订单都放在联网的电脑上。需要通过U盘在离线电脑上获取私钥签名,然后带回在线电脑上,将交易全网广播。存储私钥的计算机不会与网络接触,因此可以保证私钥的绝对安全。

如果使用得当,纸钱包和大脑钱包都有非常高的安全系数。这里,注意:

——大脑钱包密码的复杂度。

p>

由于银行和其他机构的关系,人们习惯了4-6位的密码。他们以为大脑钱包的密码只需要6位,但他们错了。银行和网站有专门的系统来保护用户信息,不允许黑客多次尝试密码;并且比特币的所有地址都是在线公开的。黑客可以不断试错,直到找到相应的私钥。然后,找到一个 6 位密码对应的私钥需要多长时间?我们假设用户有一点计算机基础知识并且知道密码应该使用数字、大小写字母和符号,那么每个密码有95种可能(26个大写字母、26个小写字母)、10个数字的组合, 33个符号)和6位密码有A(95,6)约等于8.6亿种可能性。看起来很多,但实际上一台普通的电脑可以遍历所有结果2 分半钟。

理论上,8位以上95个字符的密码应该是安全的,因为目前的电脑速度,暴力性差的方法对于8位以上的密码基本是无能为力的。但问题是,人脑很难想出一个完全随机的 8 位密码。我们能想到的密码总是与我们的日常思维习惯密不可分。黑客一般都有一个密码字典,里面记录了各种可能的密码组合。通过这种方法,破解一个8位的普通密码通常只需要几分钟。想出人脑只需要几分钟。一个可靠的大脑钱包密码是非常困难的。一个好的脑钱包密码要求是:1.足够长,40个字符以上,防止暴力破解; 2. 其他 人类不容易猜到; 3. 给你,好记。

比特币密码是几位数

更好的方法是“加盐”,即在原用户密码上加一个随机密码。互联网上有很多页面具有生成随机密码的功能。用户可以先生成一个20位的随机密码,并通过多种方式(文本打印、加密压缩、云存储等)保存密码。然后把密码和原来的密码结合起来(可以放在前端、后端或者中间),按照这个方法生成一个新的脑钱包密码,基本是安全的。即使黑客知道你的常用密码,或者知道你的随机密码,也无法轻易获得你的大脑钱包密码。

另一个好方法是从电子书中选择您最喜欢的一段。比如我喜欢Linda的《西班牙游记》,决定用这本书第35页的第三段作为我的大脑钱包密码。所以我只需要记住《西班牙游记》第35页第三段的信息,没有人能猜出我个人特征强烈的大脑钱包密码。

——关于变更机制的说明。

纸质钱包和大脑钱包非常适合存储比特币,但在付款方面有点麻烦。如果你选择使用区块链观察模式,将纸钱包或大脑钱包的地址放在上面,那么在支付的时候,你也可以直接输入私钥来调用这些资金。但是对于安全需求比较强的人来说,一旦在网上输入了私钥,对应的地址就不再安全了。因此,除非需要用完钱包里的所有资金,否则一般不建议在区块链客户端导入私钥进行支付。

另一种方法是使用Bitcoin-QT等钱包客户端导入私钥使用。导入私钥后,纸/脑钱包里的钱就变成了你钱包客户端的一部分,使用方法和平时没什么区别。但是由于前面提到的找零机制的存在,将私钥导入纸/脑钱包并进行支付后,需要注意原纸/脑钱包中的比特币余额,所有这些都有被转移到客户的另一个隐藏地址。 如果您需要将纸/脑钱包放回,您需要再次付款以将余额发送回原始地址。一旦有用户,通过客户端导入大脑钱包的私钥进行支付后,随意删除客户端的wallet.dat文件。当他回头查看自己大脑钱包的地址时,发现里面所有的比特币都不见了,损失惨重。

(四)区块链内容的合法性

在之前的故事中,老同学和店主会将所有的区块链信息下载到自己的本地硬盘中,并及时更新区块链信息。但有时区块链中不仅有交易信息,还有一些其他可能违反当地法律的奇怪内容。乍一看,这似乎不是问题。但在许多国家,这将是一个严重的法律问题。

在每笔比特币交易中,都可以嵌入一小段信息,比如一句话,或者一段代码。但是之前发生的事情是,一些用户已经将儿童色情图片的代码上传到了区块链上。只要使用一定的解码软件,就可以将这段代码转换回图片。

问题是:在许多国家/地区,故意以任何形式保存儿童色情图片都是非法的。现在比特币的特性决定了每个用户都必须将所有的区块链历史信息下载到自己的电脑上。所以本质上,每个比特币用户都以某种形式存储了一些被禁止的内容。想象一下,如果上传的色情内容足以引起新闻传播,比特币用户将很难辩称他们不知道区块链包含被禁止的儿童色情内容。在这种情况下,法律将如何裁决是立法者必须认真面对的问题。

(五)SHA-256被破解了怎么办?

整个比特币的安全核心在于SHA-256安全哈希算法。根据维基百科的定义,SHA-256等SHA算法可以计算出一个数字信息对应一个固定长度的字符串。根据输入的信息,对应的字符串很可能不同。 SHA-256 被称为“安全”算法,基于以下两点: 1) 从信息摘要推断原始输入信息在计算上很困难。 2)在计算上也很难找到对应于相同信息摘要的两组不同信息。输入信息的任何变化都极有可能导致不同的信息摘要。

比特币密码是几位数

在一个完整的比特币交易过程中,SHA-256算法在几个地方都会用到,其中最重要的就是矿工的挖矿。一笔交易必须经过矿工确认后才能放入区块中进行全网广播,而区块的产生是一个寻找随机数计算特定哈希值的过程。采矿过程。矿工需要依靠强大的算力不断尝试,平均需要十分钟才能找到随机数。这种所谓的“工作量证明”机制确保没有人可以伪造和重复任何交易。

如果SHA-256算法被破解,攻击者可以从两组不同的消息中推导出相同的消息摘要,即可以在很短的时间内找到随机数快速生成区块。在这种情况下,基于工作量证明的比特币安全机制就没用了。

但是,最坏的后果不太可能发生。首先要注意的是,SHA256算法是目前公认的最难破解的算法之一,因此也被银行、军队等对安全性要求非常高的机构所采用。如果SHA256被破解,那么首先受害的肯定不是比特币。

目前网上对SHA256可能被破解的担忧主要来自之前MD5被破解的问题。 2004年,中国山东大学教授王晓云发表了MD5破解报告。需要明确的是,这份报告只是证明了有一种方法可以产生强特定碰撞,但弱特定碰撞对于伪造数字签名是必要的。所以MD5实际上并没有被破解,更不用说比MD5更安全的SHA256了。担心SHA256被破解会破坏比特币是没有根据的。

但是,探索 SHA256 在遥远的未来被破解的可能性会很有趣。如果 SHA256 确实被破解,比特币社区本身将如何应对,无论对银行和军事安全的影响如何?

事实上,中本聪本人已经回答了这个问题。在 2010 年 6 月 14 日关于 bitcointalk 的帖子中,他讨论了两种情况:一种是 SHA256 突然宣布成功,在这种情况下,比特币社区的大多数用户可以决定,在某个区块之前的所有区块都被识别为“诚实”出块,出块后再次使用新算法进行挖矿。还有一种情况,SHA256不是突然破解的,只是发现了可能的隐患,可以逐步进行转换。使用新算法的客户将提前开发并同意在某个区块后开始实施。在区块被挖掘之前,所有用户都会更新他们的客户端。

从以往的经验来看,大部分加密算法都是逐渐发现漏洞,在很长一段时间内,被其他算法所取代。因此,最有可能的情况是,在未来 5-10 年内,比特币使用的 SHA-256 算法将开始寻找一种可以产生强特定碰撞并被宣布为不安全算法的方法,比特币社区将因此在某段时间内,开始统一切换到使用新算法的客户端,过渡顺利。

(六)51%攻击的问题

51% 攻击是从比特币成立的第一天开始就有人担心的问题。正如我们之前的例子所解释的,比特币系统中的交易信息存储在区块链中。学长同学和掌柜的新交易放在宋焕平新挖的区块中,这个区块附在之前最长的区块上。区块链的终结。一般来说,一条区块链是一系列直线连续的区块组合,但也有一些特殊情况会导致区块链出现“分叉”,即在区块链的末端,有两个相互冲突的区块。在这个例子中,我们假设一个区块中包含的交易信息是长人向掌柜支付了10个btc;在另一个区块中,交易信息是常任同学向自己的另一个地址发送了10个btc。当出现冲突区块时,比特币网络将投票决定哪个交易有效。出块后,继续挖新块,最后最长的区块链将被视为唯一有效的区块。

如果年长的同学足够聪明,有足够的计算能力,他会把支付给掌柜的比特币同时支付给自己。并且因为他的算力超过50%,从长远来看,他可以比别人更快地找到挖出区块所需的随机数,因此,长仁实际上拥有决定哪个区块有效的权力。

给出51%攻击的定义。当攻击者控制了全网50%以上的算力时,从他控制的那一刻起,他就可以:

他不能做什么:

51% 攻击无论如何对比特币来说都不是什么大问题 首先,51% 攻击已经是比特币世界中最古老、最著名的攻击方式了。每个人都在关注,每个人都知道相应的应对措施。 51% 攻击并没有想象中的那么有效。二是挖矿 比特币矿机的出现,使得比特币挖矿的算力大幅提升。以目前超过 100T 的算力,任何个人或组织基本不可能发起 51% 攻击。

结合以上情况,潜在的51%攻击只能来自一个政府机构,它集全国之力秘密建造超级计算机,以打败比特币,拯救其货币发行系统。这在理论上是可能的,但实际上并不是所有的政府都对比特币怀有天生的敌意。即使一个政府有攻击51%的能力比特币密码是几位数,它也会发现利用这种能力挖矿可以垄断比特币的发行权,其收益会大得多。超过51%的攻击,攻击动机会自行消失。