比特币及钱包的基础知识

      ---- 来自比特币生存指南支付宝群的分享

大家好,我是比太钱包的创始人文浩,感谢笑来老师给了这么一次交流机会,也感谢笑来老师一直以来对我们团队的鼓励和支持。

今天和大家交流的内容是“比特币基础”,虽然我称其为“基础”,但说实话,即便是这些最为“基础”的内容,大部分行业内的人其实也没搞懂,我希望能通过本次的分享,能让大家真正搞懂这些“基础”。

在开始正题前,首先,我们需要了解几个最为“基础”的概念:

1.私钥:对于比特币用户来说,最难理解的就是这个“私钥”,丢币是因为私钥,保管不好的也是私钥,那到底什么是私钥呢?其实很简单,您只需要记住这么一句话就够了“私钥就是个随机数”,这句话很简单,但其实大部分人都没搞懂,包括很多比特币“老人”们在这一点上也都是糊里糊涂的,我曾不止一次听到行业内大佬们说:“什么?如果别人生成了和我一样的私钥,我的比特币就没了?那也太不安全了吧”,这都是不懂的。

是的,私钥就是个随机数,大家或多或少对于随机数还是有概念的,比如说,抛硬币就是个随机数(不是正面,就是反面),扔骰子也是个6种可能性的随机数,比特币私钥也一样,只不过,这个随机数的概率空间很大(256位,也即是2的256次方),2的256次方是个什么概念呢?比宇宙中的分子还要多。

也就是说,别人是不可能和你生成一样的私钥的(1/2^256的概率),如果两次产生了相同的私钥,那一定是程序写错了,不可能是碰撞出来的,历史上几次因随机数导致的丢币(比如说 blockchain.info 曾经出过2-3次随机数事件),都是因为程序写错了,而不是碰撞出来的,对于 2^256 来说,碰撞是不可能碰撞出来的,这是比特币甚至整个密码学科的根基。

好了,现在大家知道了,比特币私钥就是一个很大的、256位的随机数,那为什么我们通过比特币客户端看到的私钥是一串 5 或 K 或 L 开头的文本呢?其实这串文本只是私钥的显示方式而已,我们总不能把二进制“0、1”的私钥直接显示给用户,因此进行了相应的转换,不过无论其显示的格式如何,本质上,私钥还是那个范围在 2^256 随机数中的随机数。

一般来说,私钥这个随机数都是通过计算机算法来生成的(密码学安全的随机数生成器),当然,你也可以通过抛256次硬币或者是扔100次骰子的方式来获得这个随机数(这两种方式都能产生出 2^256 范围内的随机数),然后用这个随机数来当成私钥,这其实也没问题,只不过需要把这个随机数转换成上面提到的显示格式,就足够了,当然,大家一般不会这么去做,毕竟麻烦。

能理解了上述内容,您就是真的懂了私钥的本质 - “私钥就是个随机数。”

2.地址:说完私钥,我们再来谈谈地址,我们不去谈那些诸如“公私钥对儿、椭圆曲线、数字签名、SHA256”等密码学概念,只谈地址这个比特币世界里最常用的东西。地址是通过私钥计算而来的,具体怎么算的,大家不用去管,只需要知道私钥能计算出地址,地址不能反算出私钥,这是前提。比特币地址是1开头的,从一个私钥计算出其对应的地址之后,您就可以往该地址上转比特币了,转入的比特币只有私钥的持有者才能花,就这么简单。比如说我们团队的捐赠地址是 1BitherUnNvB2NsfxMnbS35kS3DTPr7PW5 ,这个地址的私钥是我所持有的,任何转入到这个地址上的比特币也就只有我能花,同样简单,这个地址上当前有3个多币,有兴趣的可以去查查看。

3.区块链:理解了私钥和地址,我们再来说说区块链这个火热的概念,其实区块链这个词也是被很多人给神化了,本质上,区块链其实是中本聪为了比特币所设计的一个“用来去中心化的存储比特币账目”的数据结构,所以,本质上,区块链就是个“账本”,区块链上记录的都是 A 给 B 转账了 5 个比特币这类的信息,就这么简单。但是为了能做到去中心化,还得能进行自我验证(账目都得验证,不能做假账),因此,① 这个账本被设计成了区块的结构,每过一段时间就会生成出一个新块,把账目做到新的区块中,做进区块的账目就不能再被修改了;② 这个账本中的账目还别设计成了链表(既前后链接的数据结构),这样,每一笔账目都能最快的查询到上一笔来进行验证,一笔一笔的沿着链条向前验证,最终,任何一笔交易都能验证到最初的原始交易(也就是最初挖矿的那笔交易);这样就做到了去中心化及自我验证,这就是区块链这个数据结构的目的。

好了,现在我们讲完了私钥、地址和区块链这三个比特币最为基础的概念,对于初步了解比特币来说,这其实已经足够了,甚至已经比大部分业内人士强了。

了解了以上三个概念之后,您就应该理解如下事实:

1.私钥决定了比特币的产权,如果想花掉一个地址上的比特币,很简单,您得有私钥,没私钥?抱歉。

2.一定要保管好私钥,私钥丢了,币就花不了了,私钥被别人看到了,币就丢了。所以,请做好备份,请做好加密,如果可能的话,请尽可能的“冷”(也就是保持离线、断网),记住,被别人看到了,钱就没了,一定不要让别人看到。

3.地址是公开的,请广而告之,如果您拥护该地址的私钥,任何转入该地址的比特币都只有您能花。

4.账目都是去中心化的存储在区块链上的,也就是存储在比特币网络的每一个节点上的,并不是存储在私钥或者地址上的,所以,一个地址当前的余额是多少,这类的问题需要问区块链,区块链上有着比特币历史上的全部账目,账目都是公开的。

讲了这么多,大家也基本上了解了比特币,那什么是比特币钱包呢

其实也很简单,比特币钱包其实就是“私钥、地址和区块链数据的管理工具”,比如说,私钥这个随机数得生成吧?生成之后得计算出地址吧?相关的区块链数据得维护吧?收到的、花出的账目也都得列出来吧?得能用来收款,也得能进行付款吧?

毫无疑问,所有这些都得通过工具来完成,这类的工具我们统称为“比特币钱包”。

钱包不少、功能各异,我这里先给大家简单分分类;根据区块链数据的维护方式,我们可以把钱包分为:

1.全节点(如 bitcoin-core 核心钱包),维护着全部的区块链数据(当前在50GB以上),完全去中心化,同步所有数据;

2.SPV轻钱包(如比太),只维护与自己相关的区块链数据,基本上去中心化(要依赖比特币网络上的其他全节点),仅同步与自己相关的数据;

3.中心化钱包,不依赖比特币网络,只依赖自己的中心化服务器,不同步数据,所有的数据均从自己的中心化服务器中获得;

从去中心化角度上讲,我们希望更多的人使用全节点钱包,这样比特币网络上的节点数也会更多,不过,由于区块链的数据量太大,严重影响了普通用户的体验,因此,当前越来越流行 SPV 轻钱包模式,越来越多的钱包解决方案也开始转向 SPV。中心化钱包由于不依赖比特币网络,有着流量和体验上的优势,不过因其要依赖第三方中心化的服务,服务不可用则钱包不可用,用户也需要信赖该第三方服务才行。

根据所使用的硬件设备,我们可以把钱包分为:

1.电脑钱包,钱包软件运行于桌面操作系统(Windows、MacOS、Linux等);

2.手机钱包,安卓、iOS等;

3.在线钱包(如 blockchain.info ),运行与云服务,私钥加密存储于服务器上,通过浏览器访问;

4.硬件钱包,运行与专门定制的硬件上,可能需要与电脑或手机配合使用;

除了上述分类方式外,还有一种所谓的“链上 on-chain、链下 off-chain”的分类方式,这又产生出了一种“钱包”,叫“off-chain 钱包”。

其实,从本质上讲,我们并没有一种比特币交易叫“off-chain 交易”,也不应称这类的服务为“off-chain 钱包”,我们应该称其为“银行”或者是“存币平台”,因为在这种情况下,您手里所谓的一个比特币,其实只是该平台上的一个数字,而并非是比特币网络上真实的比特币,而是该平台欠您的钱,所以,我们应尽可能避免称这类平台为“钱包”。

比如说,交易所其实就是存币平台,各类的理财平台、云算力平台等也都是存币平台,这些平台都属于“off-chain”的范畴,我们应称他们为“银行”或“存币平台”,而不要称他们为“off-chain 钱包”。

我在这里反复强调“on-chain、off-chain”这两个词,其实也是不得已而为之,因为无论是有意的、还是无意的,这个概念一直被混淆,比如说,去年,曾有人在微博上搞过一次投票,让大家票选最喜欢的比特币“钱包”,“比特币存钱罐”名列前茅,其实呢,该平台并不是“钱包”,而是一个高利息的“存币平台”,后来出了问题,所以,我们应分清楚“on-chain、off-chain”的区别,想明白是要自己拿着比特币?还是要把比特币交给别人管理?分清区别,做好决策,这很重要。

好了,这就是我本次和大家交流的主要内容,希望能帮大家搞清楚一些最基本的比特币概念,让大家在使用比特币的过程中少走一些弯路。

最后,我再给比太做个广告,比太是bitcoin.org官方推荐的、安全的、易用的、开源的比特币钱包,欢迎大家使用。

关于比太钱包,有一些用户经常问到的问题,我这里整理了一下,简要的进行了回答:

Q:比太公司不存在了,这个钱包还能正常运行吗?

A:比太是个去中心化钱包,即便是比太公司不存在了,除非比特币网络发生大的、不兼容的协议升级,且比太钱包并未支持,才有可能会影响到钱包的运行。另外比太是开源的项目,即便比太公司不存在了,开源项目本身仍然可以继续发展。再者,请做好私钥的备份(私钥是最重要的),比太导出的私钥可以导入 bitcoin-core 等钱包中。

Q:比太的“检测私钥安全”是什么机制?

A:该功能其实会完整的走完"解密 -> 私钥 -> 公钥 -> 地址”的过程,这样,用户无需真正进行比特币的发送操作,就能确认对于该地址私钥的所有权,可以把该操作看成是“打开保险柜、看看金条是不是还在”的过程。 另外,定期进行“检测私钥安全”操作,有助于密码记忆,忘记密码也是比特币用户丢币的常见原因之一,心理学实验中已经多次证明,只有反复使用的密码,才不会被忘记。

Q:比太用什么方式防止私钥被黑客盗取?

A:就一个字:。彻底防止黑客只有一招,冷。

Q:我保存的二维码备份被黑客盗走之后,会不会丢失我的比特币?

A:如果被黑客盗走,私钥的安全性就在于密码强度了,存在暴力破解的可能,因此,如果被黑客盗取了二维码备份,请尽快将比特币转入到其他新生成的地址中。

:您的二维码备份怎么被黑客盗走的?冷是盗不走的。

Q:流量问题?

A:比太是去中心化的钱包,需要与比特币网络上的其它节点进行同步,因此,的确是会耗费一定的流量,不过,比起全节点还是省很多的,我们还做了很多相关的优化工作,因此在手机上使用问题不大。 如果流量不够的用户,建议设置为仅在wifi下同步区块链。因比太当前的逻辑是只有在同步到最新块的情况下才能发布交易,所以暂无法区分同步区块和发送交易的流量设置。

Q:建立的比特币地址是否可以不被别人发现是比太钱包的?

A:比太是去中心化的钱包,比太生成的地址与 bitcoin-core 没什么区别,仅从地址没人能推断出更多信息。