1. 首页 > 娱乐生活

offchain跟onchain钱包的区别是什么?

offchain跟onchain钱包的区别是什么?两者的区别就在于它们之间的私钥存储方式并不同,它们可以分为冷钱包还有热钱包,当然它们只好的助记词还有地址也是有所不同的。这便是它们之间的区别所在,因此说它们虽然看起来功能一样,其实也还是有很多的区别在的。当然,对于它们的一些相关信息,想要知道更多,可以通过下面来了解。

两者的区别:用户间交易数据是否链上可见

Offchain是用户间交易不在链上可见,比如十一与十一的小伙伴都是Cobo用户,那么我们的交易数据在链上不可见。

Onchain是链上交易,即所有的交易都在区块链上可查。

将Offchain与Onchain结合起来,我们可以拿支付宝做对比,即Cobo用户间转账类似支付宝用户间的转账,这样的转账不会通过网银;但如果支付宝用户向银行卡转账就需要通过网银,就如Cobo用户向非Cobo钱包的地址转账,需要Onchain,所有交易数据就会在链上可见。

因此,Offchain与Onchain不是绝对独立的,如果Cobo用户向Cobo用户发送了一笔交易,那么就是Offchain交易,如果Cobo用户向其他钱包用户发送一笔交易就是Onchain交易

总之,如果大家还想要知道更多的信息与区别的话,也是可以通过理解来明确的,这样就不会出问题。

HD是一种采用了分层确定性算法的数字钱包,它主要是通过根扩展私钥的计算来实现所有层级的所有子扩展私钥的。所有的HD钱包都能够通过普通的衍生和硬化衍生这两种方式来计算扩展子私钥,不过相较而言,后者是更加安全的。我们知道通过扩展公钥,我们即使是在在没有扩展私钥的前提下,也能够计算所有普通子扩展公钥。这也是HD钱包与普通钱包最大的不同,很多投资者还想要深入了解hd钱包和普通钱包的区别,下面就让小编带大家一文了解hd钱包和普通钱包的区别。

一文了解hd钱包和普通钱包的区别

不知你是否遇到这样的困境:因为

交易需要和个人隐私问题,手握多条公链钱包的多个不同的私钥,备份却成了个大问题。

每条公链上的每个私钥都要单独备份保存,着实麻烦!那是否有一种钱包可以极大地简化多链多密钥的备份过程呢?是否有一种方式可以只记录一组助记词就可以管理所有钱包呢?

当然有!HD钱包可以满足你的需求。HD钱包,即Hierarchical Deterministic Wallet,中文称为分层确定性钱包。它是目前来说最好用的、最方便的确定性钱包。

由于私钥不同的生成方法对应着不同的钱包结构,根据此区别,我们把钱包分为非确定性钱包和确定性钱包。非确定性钱包,又称为随机钱包,特点是私钥之间互相没有任何联系,最早的比特币钱包就是这种类型。

在当时,要想备份钱包中的所有地址,必须对每个密钥对中的私钥进行单独备份,这样一来,备份管理就成了一件极其麻烦的事情。所以作为解决方案的确定性钱包应运而生。

确定性钱包的好处是:一个种子就能恢复所有的私钥,在备份和恢复起来都非常方便。值得注意的是,确定性钱包随机产出的种子是通过一系列确定、不可逆的运算来派生出一系列的密钥对。为什么要强调确定和不可逆?因为确定可以保证从一个种子中可以生成出全部的子密钥对,而“不可逆”则是为了确保不能通过子密钥对反推出种子。

HD钱包的优点

HD钱包全称为是分层确定性(Hierarchical Deterministic)钱包的缩写HD Wallets。

我们知道数字钱包是用来保存我们的密钥和地址的,而数字货币是被记录在区块链网络中的每个区块上的。因此,如何安全方便的生成、保存和备份恢复密钥才是钱包的关键。为此,钱包已经进化了三次,从最初的非确定(随机)钱包到第二代的确定性(种子)钱包,直到现在的分层确定性钱包,钱包的更新迭代经过了三个阶段。

实际上想要理解分层确定性钱包的概念也并没有我们想象的那么困难。它的原理用两句话就可以表达清楚:

首先,要用一个随机数来生成主私钥,这跟其他类型的钱包生成私钥过程没有任何区别。

然后,再用一个确定性的、不可逆的算法,基于主私钥生成任意数量的子私钥。

那为什么要用“确定、不可逆”的算法呢?因为“确定”才能保证从一个主私钥可以生成出全部的子私钥,而“不可逆”则是为了确保不能通过子私钥反推出主私钥。

之所以叫分层确定性钱包是因为私钥的衍生结构是树状结构,父密钥可以衍生一系列子密钥,每个子密钥又可以衍生出一系列孙密钥,以此类推,无限衍生。

我们在首次创建HD钱包或者备份钱包时,会产生一个助记词,助记词是一连串的英⽂单词,这一串单词序列就可以创建种子,种子又可以创建所有的私钥。单词顺序也是钱包的备份,可以恢复钱包。而种⼦对应的就是所确定性钱包的随机数。

HD钱包的优点在于只需要主公钥,就可以生成出任意数量的子公钥。也就是说,无需私钥介入(主私钥和子私钥),就能基于主公钥生成新(公钥)地址,而这些地址其实都能被主私钥所控制。

希望投资者们都能够上文来一文了解hd钱包和普通钱包的区别。我们知道,任何事情都是有它的双面性的,HD钱包也是如此,有利必有弊,在我们暴露了自己的助记词时,其实就相当于将自己的私钥拱手让人了,那么这个情况下,我们所拥有的数字资产的安全性也大大的降低了。我们在使用数字钱包的过程中,一定要通过安全可靠的方式来及时备份自己的助记词,也要记得及时将自己的钱包的助记词及时抄写到安全的地方,毕竟助记词是一种未加密的私钥,它的安全性还是比较低的。

我们都知道,以比特币为代表的的加密货币是运行在区块链网络中的,所以这种货币是区别于纸币和黄金的,因为它是无法被直接存储的,比特币也没有账户的概念,那么人们如何掌握自己手中的比特币呢?其实比特币的存储是通过私钥来掌握的,而我们常说的区块链钱包其实就是一种管理私钥的工具,而这种区块链钱包也有很多分类,我们经常提到的硬件钱包和冷钱包分别是什么,很多投资者想知道硬件钱包和冷钱包有什么区别?下面就让小编来说一说。

硬件钱包和冷钱包有什么区别?

硬件钱包:是用于存储加密资产的专用电子设备,其功能就是将私钥存储在内部的芯片内,私钥永远都不会离开设备,因此很安全。

冷钱包:是指私钥永不触网,私钥永远都不会进入网络内部。

因此一般的硬件钱包都属于冷钱包,硬件钱包是冷钱包的一个分类。

硬件钱包和冷钱包介绍

硬件钱包优势:私钥通过助记词生成,并被永久保留在硬件钱包内部,不会泄露出去,所以安全性高。

硬件钱包不足:使用不太方便,收无所谓,只要提供一个地址就可以了。发的话,要将设备与电脑或者手机相连。所以不像热钱包那样使用方便。

选择使用硬件钱包的首要考量就是安全。下载APP啥的钱包,很难确保你的助记词没有被开发商备份。而且现在各种币也没有太多的使用场景,基本就是拿来存的,所以使用不方便也没有太大的影响。

硬件钱包厂商有很多,不过目前在全世界范围内,Ledger和Trezor是使用最广泛的硬件钱包。

Ledger的产品下如下:

Ledger Nano S:全球首款通过国家认证的硬件钱包,也是全球售出最多的硬件钱包。不过仅支持Windows和Mac,不支持手机使用。

Ledger Nano X:在Nano S的基础上加了蓝牙模块,所以支持手机使用,便携性提升。支持苹果和安卓机。

Ledger Packup Pack:这其实是一个促销合集,包含一个Nano S和一个Nano X。价格比单独购买要便宜近20%。

Ledger的产品有配套的软

件Ledger Live连接使用。虽然Ledger官网支持支付宝、信用卡等支付手段,但是要购买的话需要懂得你使用上网工具,价格确实比国内的渠道便宜很多,而且直接在官网买更安全。

Trezor的产品应该是全球仅次于Ledger的硬件钱包品牌了。Trezor的产品代码都是开源的,所以更加透明。Trezor的产品主要有两个:Trezor One和Trezor Model T。

以上就是小编对于硬件钱包和冷钱包有什么区别以及它们分别是什么这两个问题的详细介绍,一款硬件钱包的安全性主要包含三个方面,分别是网络隔离、系统完整性保护以及钱包种子保密,这三个安全性能是相对来说比较普遍使用的,不只是硬件钱包,所有的钱包系统都是可以用这三条标准去衡量其安全性的。因为软件钱包的先天限制,所以一般来说硬件钱包具备比较好的安全基础。

HD钱包怎么使用?创建钱包及其重要的几个都写完了,但总感觉还缺少一些什么,到底缺少什么呢?在重新读过几边之后,才发现通过前面几篇文章还是不能把一切连贯起来,所以又补写了本篇,作为创建钱包的补充说明。

首先说明,下文中说的 hash160 字符串指的是私钥或公钥的内容通过双重哈希算法(行 SHA256.再 RIPEMD160)生成的长度为 20 个字节的字符串。

钱包是 keystore 的扩展,管理着交易和余额,提供创建交易的能力。它有几个特别重要的属性,现在解释如下:

hdChain,HD 数据模型,它包含了一个 hash160 的种子,一个内部链的数量和一个外部链的数量。

setInternalKeyPool,内部密钥池的集合。

setExternalKeyPool,外部密钥池的集合。

set_pre_split_keypool,一个预分割的密钥池集合。

m_max_keypool_index,最大密钥池的索引。

m_pool_key_to_index

mapKeyMetadata,公钥元数据的映射集合。键为一个 hash160 字符串,值为一个公钥元数据。

m_script_metadata

mapMasterKeys,

mapWallet

mapAddressBook

钱包说完了,我们来看 keystore。keystore 顾名思议它代表了密钥的存储,自然而然提供了一些管理密钥的方法,比如:添加一个密钥(私钥和公钥)到 store中、检查给定地址对应的密钥是否在 store中、添加及检查一般脚本与只读脚本的功能等。根据是否加密,keystore 分为基础的和加密的两种。钱包继承自加密的 keystore,而加密的 keystore 又继承了基础的 keystore。

我们先来看下 基础 keystore ,它有以下几个重要的属性:

mapKeys,一个私钥映射集合。键为一个 hash160 字符串,值为一个私钥。

mapWatchKeys,一个只读的公钥映射集合。键为一个 hash160 字符串,值为一个公钥。

mapScripts,一个脚本映射集合。键为一个 hash160 字符串,值为一个用在交易输入和输出的序列化的脚本。

setWatchOnly,一个用在交易输入和输出的序列化的脚本集合。

加密 keystore 在基础 keystore 上增加了几个与加密相关的属性,它们分别为:

fUseCrypto,一个标志钱包是否为加密的变量。

vMasterKey,一个在加密情况下使用的私钥集合。当加密时 mapKeys 集合就会为空,而 vMasterKey 集合不空;当不加密时,情况正好反过来,即 mapKey

s 集合不空,而 vMasterKey 集合为空。

mapCryptedKeys,一个映射集合。键为一个 hash160 字符串,值为一个公钥和加密后私钥组成的 pair 。

说完钱包与 keystore,下面我们就来看下密钥池。其实密钥池这个名字不准确,因为它仅包含了一个公钥,初次之外,还包含了两个布尔变量:fInternal、m_pre_split,前者表示密钥池是内部还是外部的,后者功能暂时不清楚,英语备注为:For keys generated before keypool split upgrade。m_pre_split 属性默认为假。

当创建钱包时,会执行如下几个动作:

首先,生成一个私钥,根据私钥通过椭圆曲线算法生成对应的公钥;

其次,也会生成对应的密钥元数据,并且把公钥的内容用 hash160 (先 SHA256.再RIPEMD160)算法生成的 20个字节的字符串保存为密钥元数据的种子,然后把私钥元数据保存在 mapKeyMetadata 集合中;

然后,私钥被保存在 mapKeys,或 mapCryptedKeys 与 vMasterKey 集合中;当公钥是压缩的(通常是)时,通过公钥生成脚本,脚本进而被保存在 mapScripts 集合中;同时,私钥、公钥及密钥元数据都被保存在数据库中。

再然后,公钥被作为种子,生成 HD 链对象,保存在钱包中。

最后,当前面一切完成后,使用前面 3步生成的公钥做为种子,开始衍生用户指定数量的子私钥/公钥对,如果用户没有指定则默认衍生 3000 个子私钥/公钥对。

衍生的私钥、公钥及元数据的处理与第 2、3 步相同;

同时,用公钥生成的密钥池也被保存在数据库中;

根据生成的私钥属于内部或外部,对应的索引保存在 setInternalKeyPool、或 setExternalKeyPool 集合中;不区分地,索引被保存在 m_pool_key_to_index 映射集合中,其中键为公钥对应的 hash160 字符串。

其中,2000 个子私钥的路径从 m/0'/0'/0 到 m/0'/0'/1999.1000 个子私钥的路径从 m/0'/1'/0 到 m/0'/1'/999.其中的 m 代表私钥,m/0' 代表主私钥的第 1 个强化子私钥,m/0'/0'/0 代表主私钥的第 1 个强化子私钥的外部链的第 1 个强化孙私钥,同理,m/0'/0'/1999 代表主私钥的第 1 个强化子私钥的外部链的第 1999 个强化孙私钥;m/0'/1'/0 代表主私钥的第 1 个强化子私钥的内部链的第 1 个强化孙私钥,同理,m/0'/1'/999 代表主私钥的第 1 个强化子私钥的内部链的第 999 个强化孙私钥。

 1/3    1 2 3 下一页 尾页

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:http://www.longfuchaju.com//ylsh/4700.html

联系我们

在线咨询:点击这里给我发消息

微信号:wx123456