okx

Cashbox研发工程师分享SPV钱包开发难点(一)

时间:2023-07-09|浏览:145

视频加载中...

大家好,我是底层组的Alvin。在公众号上一期的介绍中提到,Cashbox下一步将添加一个bitcoin完全去中心化的SPV钱包。我在项目主要负责的任务就是bitcoin去中心化钱包的开发。

下面我将从技术背景和实现方式两方面介绍bitcoin的SPV钱包。

什么是SPV

首先先介绍SPV的概念。可能对于不熟悉区块的链的开发者来说,并不熟悉什么是SPV。SPV的全称是简单支付认证。想要完整的了解SPV的概念,需要先了解BTC的P2P结构。

比特币的网络结构,是一个P2P网络,也就是一个点对点对等网络。每个比特币服务,都称为一个比特币节点。完整的比特币节点包含路由,区块链数据库,挖矿,钱包服务四种功能的集合。完全拥有这四种功能的节点又称为全节点。比特币主要依靠这种全节点来维持运行。每个节点都参与全网络的路由功能,同时也可能包含其他功能。每个节点都参与验证并传播交易及区块信息,发现并维持与对等节点的连接。

一些节点保有一份完整的、最新的区块链拷贝,这样的节点被称为“全节点”。全节点能够独立自主地校验所有交易,而不需借由任何外部参照。和全节点相对的,就是SPV节点。SPV节点最大的特点就是不需要储存完整的区块链数据库,只需要存储区块链数据头。根据比特币区块链的设计,SPV存储的数据大小,只有完整区块链数据大小的1/1000。目前为止,一份比特币主网的区块数据大小已经超过300G,而采用SPV技术的节点,只需要使用几百m大小的数据即可。

由此可见,在存储大小受限的设备上SPV将是一个更好的选择。随着区块链的普及,会有大量的用户使用手机来运行区块链钱包,在手机上运行超过300g大小的全节点显然不是用户的最佳选择。而SPV技术的使用,使得在手机上使购买比特币用完全去中心化的bitcoin钱包成为可能。我们把这种运行SPV节点的应用,称为轻钱包。

去中心化

介绍完SPV的概念之后,我们来讲讲完全去中心化。去中心化,一直是我们也研究过其他的开源技术钱包,发现一个最主要的特点:不够去中心化。

现在区块链的用户账户数据模型主要分为两大类,一类是以太坊为代表的账户模型,还有一类是以比特币为代表的UTXO模型。账户模型大致相当于银行账户,UTXO模型则又称为UnspentTransactionOutput,是未花费的输出,可以简单理解为还没有用掉的收款。由于UTXO模型的复杂性,导致我们拿到一个用户地址之后,想要验证用户的UTXO是一件非常困难的事情。

所以大多数钱包有一个自己的后端。这个后端主要的功能就是要解决UTXO验证困难的问题。后端对应一份完整的区块链数据,这样后端可以对交易进行索引方便查询UTXO。另一方面,这个完整的后端对应的是一个比特币全节点,广播交易的功能也交给了后端。从这个意义上来看,传统钱包不够去中心化,也不符合SPV的概念。是把一个去中心化的比特币,做成了中心化的服务,这个模型中有太多功能需要依赖自建的后端。

我们使用的SPV去中心化钱包,钱包端存储的是2百兆左右的区块数据头。我们在去中心化钱包的内部,启动的是比特币的P2P网络,利用比特币网络协议直接接入比特币网络去获取需要的信息。不需要完整的后端支持。大多数传统钱包,都需要把交易有关的信息传递给后端,才可以实现筛分UTXO和广播交易的功能,而我们的钱包,因为SPV节点的存在,直接和和钱包继承,在用户的手机内部即可实现,不需要和我们进行数据交互。这个概念是是非常符合去中心化思想的。而且在使用钱包的过程中,因为不需要和我们的后端有什么链接,用户完全不担心泄露自己的隐私。用户最重要的私钥也存在自己的手机中,即便需要广播交易也只是直接接入比特币P2P网络。真正符合区块链完全去中心化思想。

本期主要讲解概念,咱们下期不见不散。

热点:钱包

欧易

欧易(OKX)

用戶喜愛的交易所

币安

币安(Binance)

已有账号登陆后会弹出下载

« 上一条| 下一条 »
区块链交流群
数藏交流群

合作伙伴

非小号交易所排名-专业的交易行情资讯门户网站,提供区块链比特币行情查询、比特币价格、比特币钱包、比特币智能合约、比特币量化交易策略分析,狗狗币以太坊以太币玩客币雷达币波场环保币柚子币莱特币瑞波币公信宝等虚拟加密电子数字货币价格查询汇率换算,币看比特儿火币网币安网欧易虎符抹茶XMEX合约交易所APP,比特币挖矿金色财经巴比特范非小号资讯平台。
非小号行情 yonghaoka.cn 飞鸟用好卡 ©2020-2024版权所有 桂ICP备18005582号-1