科普 | 轻节点钱包,机智的省事之道

HashKeyHub 发布在 链圈子 海盗号 28964

撰文 | 花先生

编辑 | 陈议骏

 

去中心化分布式账本(区块链)可以被理解成所有参与节点都共同记账。随着时间与节点数的增加,账本的内容也会快速增加。

以比特币为例,平均每10分钟出一个区块,每个区块可以最多可以打包4,000条交易信息。记录所有账本信息的负担不是所有人都可以接受的,因此只储存于自己相关的数据也成了一种选择。

于是,按照存储数据的完整性,钱包也被划分为全节点钱包(Full Node)和轻节点钱包(lightweight Node)。

全节点,顾名思义,就是包含了所有账本数据的节点。一个节点只要是下载了完整且最新的区块数据,并取得节点资格,稳定运行验证交易数据,那它就是一个全节点了。

 

全节点的功能包括:

  1. 保留所有过去的交易,所有数据公开透明,为系统中的人提供查询功能
  2. 监听别的矿工挖出来的区块,验证其合法性,也即是记录新区块的产生
  3. 监听区块链网络上的交易信息,验证每个交易的合法性
  4. 将最新信息广播给全网同步
由于每一个全节点都保留着全网数据,所以其中部分节点出现问题,比如被入侵或断网,都不会影响整个区块链网络的安全。这也是去中心化记账的优势所在。

全节点的数量越多,意味着完整的账本被保存的份数越多,“不可篡改性”也就越强,整个区块链系统的网络安全性也随之大幅增加。

随着交易记录的不断增加,全节点所需要的存储空间也在不断增加。截止至2019年3月底,交易数据已经达到270 GB。

来源:Ychart

以太坊由于出块较快,区块不止记录交易内容,还要需要记录账户状态等信息,完整区块数据远超过比特币。2019年7月,以太坊的全节点数据已经膨胀到了2231.5 GB,也就是2.2 TB,而且每天以3~4 GB的速度在增长。

全节点要求对存储空间大,且需要全天在线接受查询调用,运行成本高昂,个人用户其实并不需要选择成为全节点。

轻节点,即轻装上阵的节点,无需存储完整的区块链数据,只储存区块头(Block head)。这类节点会对数据进行分析,仅获取并在本地存储与自身相关的交易数据。

当需要验证某项交易合法性时,轻节点需要向IP地址临近的全节点发起确认请求。全节点收到交易后验证该交易所在的区块,为轻节点提供相关可佐证交易合法性的数据,并对轻节点的数据后进行匹配验证,就可以得到进行出块啦。

假设张三拥有一个比特币轻节点钱包,赵四说要发给他的BTC,但他不确定赵四是否真的发送了。这时,他需要向全节点发起简单支付验证(SPV),找到了记录他与赵四交易的区块,并且确定了这个区块已经被确认了6次。于是他可以放心,自己确实收到了来自赵四的1个BTC。

但作为轻节点,张三就没法验证王五的交易是否合法,因为轻节点只能验证自身交易的状态。

相比于全节点,轻节点钱包所占内存小,在电脑、手机端都能运行;不需要一直在线;但不能验证大部分交易的合法性,也不能检测最长合法链。

选择轻节点还是全节点钱包需要根据用户的具体需求来决定,如果只是满足自己日常使用,轻节点钱包已经足够;但如果想要担当节点,或者需要链上大量数据进行市场分析,全节点钱包是必要的。

同时,全节点钱包是公链安全的来源,如果所有用户仅使用SPV功能,整条公链对于安全攻击是没有抵抗力的。

本文链接:https://www.8btc.com/media/584011
转载请注明文章出处

文章标签: 钱包 科普
评论
登录 账号发表你的看法,还没有账号?立即免费 注册