比特币&区块链研究

设计|人人都可以运行一个完整节点——一个完善完整节点钱包用户体验

2018-06-08  本文已影响28人  1a8661c5a646

第0章 引言

去中心化的数字货币,如BTC、BCH,是没有官方钱包的。但绝大多数新进入币圈,第一时间会去找“官方钱包”,这是一个麻烦,很多人都被币圈乱七八糟的钱包给吓出币圈了,还没进入就吓退了。本文思考一种解决普通人刚进入币圈对钱包选择焦虑的问题。

第1章 “官方钱包”心态

绝大多数人都想找一个“官方钱包”的心态,一开始,他们无法理解“去中心化”没有“官方钱包”这么一回事。

对BTC来说,bitcoin core是最接近“官方”的钱包,对BCH来说,bitcoin abc是最接近“官方”的钱包,对ETH来说,Ethereum wallet是最接近“官方”的钱包。但它们对普通用户来说,都太难用了。

第一次下载后,至少需要两周时间下载区块。在下载完所有区块之前,钱包根本没法用。

这些“官方钱包”对计算机硬件要求也很高。手机是不可能安装的。电脑也需要不错的性能,硬盘是不能小的,CPU如果太差也会卡的要死。如果你的网络太差,也会带来非常不好的体验。如果不是好的电脑,即使是你已经花了一个月同步好了区块,之后你用钱包时每次打开钱包可能需要10分钟才能打开,再花1小时以上的时间来同步最新区块,然后才能发币。在同步完最新区块之前,你整个电脑什么也干不了。虽然你也是可以在没有同步完区块的时候就直接发币,但卡死你。

这么高的要求,会直接吓退99%的新人。新人只好另找其他钱包,比如手机钱包。但又担心安全隐患。这些第三方商业公司开发的钱包,总是会让人担心万一他们倒闭了怎么办啊,他们会不会偷私钥。这些担心就是客观事实存在。

我们需要一种降低“官方钱包(完整节点钱包)”使用难度的办法。

第2章 完整节点钱包和SPV钱包

比特币网络(包括BTC和BCH)是一个P2P网络,所谓的P2P就是一些地位平等的节点组成的。一个比特币P2P网络的全功能节点,包含四个功能:一是挖矿功能;二是钱包功能;三是完整的区块链文件;四是网络路由功能。

所谓的完整节点,是包含上面四个功能的。现在的bitcoin core和bitcoin abc本质上都是包含上面四个功能,但它们的挖矿功能都是无效的,因为现在挖矿功能都由职业的矿池实现了。

现在普通用户下载的“官方钱包”,BTC的bitcoin core和BCH的bitcoin abc这种完全节点钱包,叫full node。这对用户来说,最大的意义在于“官方”两个字。

Bitcoin core和bitcoin abc钱包,这是需要的信任度最小的,只需要信任开发者。而且如果开发者你都不信任,那你就完全没必要来搞比特币了,因为这是最基础的。

SPV钱包是只有上述四个功能中的钱包功能和路由功能。让用户只需要同步区块头就能收发币。不需要下载一百多G的区块文件,更没有挖矿的功能。

相对来说,因为有完整的区块链文件,完整节点在识别收币是不是有假币的能力上是比SPV钱包来说,是更安全的。换一句话说,完整节点比SPV钱包能更有效地对抗“双花攻击”。但实际上对普通用户来说这种安全性是等级几乎没什么差别。对于商家来说,需要接受大量的收币,潜在的双花攻击概率要高的多,所以他们会使用完整节点来识别是否有双花。这里说的仅仅是收币,即接受交易。

对保存币来说,安全性取决于你的私钥安不安全。第一是你的私钥生成的随机数是不是足够随机,第二是你的手机或电脑是否会被入侵,让别人盗走你的私钥; 第三是你会不会自己忘记密码,手机坏了,电脑硬盘进水了,被亲戚偷了这些。保存币的安全性跟是否有完整的区块链文件没有关系。也就是SPV和完整节点在保证私钥安全性上,并没有本质上的差别。

对普通用户来说,低频度的接受交易,或主要是用来保存私钥,使用SPV钱包就够了。只有你需要对抗双花攻击的场景,你才需要一个完整节点。

要说用户使用完整节点钱包对网络有什么贡献,我觉得说服力不够。这里不详谈,BTC和BCH的支持者对这个分歧非常大。

但我有一个让协调BTC和BCH支持者之间矛盾的办法,让新用户和普通用户也可以非常方便使用完整节点钱包

第3章 一个让新用户非常方便使用“官方钱包”的办法

对新用户来说,寻找“官方钱包”这种心态是非常可以理解的,反正我更多使用的就是完整节点钱包。不过还是再次强调,BTC和BCH都没有所谓的官方钱包,只有开发者开发出来的钱包。

但新用户会被接近200G的区块数据吓走,哪有下载一个钱包,原本只打算买100块钱的币试试,却要一个月之后才能用的事情啊。哪有一个软件在平时启动的时候还要花1小时的准备时间才能用的。真是见鬼了。

其实解决方案非常简单,前几天BCH社区在做一个叫UTXO证明的方案,是可以部分解决新用户使用完整节点的难处,但其实有一个成熟的多,简单的多,好的多的方案——将完整节点钱包整合进SPV钱包功能。

将完整节点整合一个SPV功能,只要勾选这个选项,那就变成一个SPV钱包,同步区块头就好了。然后用户收发完币后,节点自己切换到下载区块文件。

这多么简单的设计啊,新用户下载安装完"官方钱包"后,立刻可用,等待时间不超过10分钟。这对用户体验来说,真的是进步实在是太大了。

应该有开发者来做下这事。

第4章 结束语

现在的开发者,特别是bitcoin core,真的对用户漠不关心。BTC的手续费怎么涨,开发者死不扩容。BCH的开发者好一点,但也从来不到用户群里调查,从来不收集用户需求,都是自己想。

(欢迎加我微信号:HSL13116885; 欢迎加入我的知识星球)

上一篇下一篇

猜你喜欢

热点阅读