主页 > imtoken限制中国用户该咋办 > 链言,链言社区,链言区块链,专注区块链技术,区块链金融

链言,链言社区,链言区块链,专注区块链技术,区块链金融

1. 钱包相关术语 关于钱包

加密货币中关于钱包的一个常见误解是它们存储代币。 钱包不存储 Token。 钱包的作用是将私钥存储在加密文件中并签署交易。

用户通常通过接口构造一个交易对象,将该对象发送到钱包进行签名,然后钱包将签名返回这个交易对象,然后广播到网络中。 如果网络确认交易有效,则将其包含在区块链的一个区块中。

二、目前市场上的钱包简介 1、以太坊Mist钱包

说到以太坊钱包,首先要说的当然是官方的以太坊钱包+浏览器Mist。 Mist是一个全节点钱包(通俗地说,全节点钱包就是同步所有以太坊区块信息的钱包)。 也就是说,打开钱包后,电脑会自动同步所有的以太坊区块信息,但是同步现有的以太坊公链数据需要很长时间。 Mist 也可以在开发过程中用于您的私有链。 Mist 的细节我们会在后面详细介绍。

2. 平价

Parity 的目标是成为最快、最轻、最安全的以太坊客户端。 Parity 是使用尖端的 Rust 编程语言开发的。 Parity 在 GPLv3 下获得许可,可用于以太坊钱包需求。 由原以太坊基金会的一些成员开发的钱包。 功能强大,也是一个全节点钱包。

3.我的以太钱包

作为一款轻钱包,MyEtherWallet 的入门难度不大。 您无需下载撞到一个比特币私钥,直接在网页上即可完成所有操作。 MyEtherWallet 上生成的私钥由用户自行保管,平台无备份。

4.imToken

手机钱包操作简单,使用方便,功能齐全。 imToken 上生成的钱包私钥保存在手机本地,平台无备份。

5.元掩码

MetaMask 是一款在 Google Chrome 上使用的插件式以太坊钱包。 钱包不需要下载。 您只需要在谷歌浏览器中添加相应的扩展程序即可。 它非常轻巧,使用起来非常方便。

6.账本

Ledger是一个硬件钱包,是一种安全存储私钥的硬件设备。 查看钱包和发送交易时,硬件钱包需要与软件钱包配合使用。 您可以使用 Ledger 自己开发的软件钱包,也可以使用其他团队开发的软件钱包。 以以太坊为例,您可以将 Ledger 与以太坊网络钱包 myetherwallet.com 或 Parity 钱包一起使用。

### 7. 现金

手机钱包,操作简单,支持单链和多链钱包。

### 8. biwrok

企业级应用程序钱包。

### 9. linkeye 钱包

与Linkeye公链配套的钱包。

### 10.番茄钱包

如果大家知道还有哪些钱包可以提供给作者,作者会进行补充。开源钱包也提供给作者,作者稍后会分析钱包的源码

3. 钱包发展史

钱包只包含钥匙,不包含硬币。 每个用户都有一个包含多个密钥的钱包。 钱包仅包含私钥/公钥对的钥匙串。 所以不要误会钱包里装的是钱,钱包只是私钥的集合,你的币是存放在区块链的区块中的。

1. 非确定性钱包

在最早的一批区块链钱包中,钱包只是私人收藏,这些私钥相互独立,没有任何关联。 我们称这种钱包为非确定性钱包。 例如,Bitcoin Core 客户端预先生成 100 个随机私钥,从一开始就生成足够的私钥,每个密钥只使用一次。 此类钱包现在正被确定性钱包取代,因为它们难以管理、备份和导入。 随机密钥的缺点是,如果您生成许多私钥撞到一个比特币私钥,则必须保留所有私钥的副本。 这意味着必须定期备份钱包。 每个密钥都必须备份,否则如果钱包无法访问,钱包控制的资金将丢失。 这种情况直接与避免地址重用的原则相冲突——每个比特币地址只能用于一次交易。 地址重用将多个交易和地址链接在一起,从而降低隐私。 当你想避免重复使用地址时,零类型非确定性钱包不是一个好的选择,因为你必须创建太多私钥并保存它们。 尽管比特币核心客户端包括零钱包,但比特币核心开发人员不鼓励使用它。

.:

.:

2.确定性钱包和确定性分层钱包

所有密钥都源自主密钥,即种子。 这类钱包中的所有密钥都是相互关联的,如果有原始种子,所有密钥都可以重新生成。 确定性钱包中使用的密钥推导方法有很多种。最常见的推导方法是使用树结构,称为分层确定性钱包或HD钱包

2.1. 确定性钱包

确定性或“种子”钱包包含可以通过使用单向离散函数从公共种子生成的私钥。 种子是随机生成的数字。 这个数字还包含,例如,一个索引号或一个生成私钥的“链码”(参见“分层确定性钱包(BIP0032/BIP0044)”一节)。 在确定性钱包中,种子足以恢复所有生成的私钥,因此在初始创建时进行简单备份就足够了。 种子足以让钱包导入或导出。 这很容易让用户的私钥在钱包之间轻松转移。

.:

.:

2.2. 分层确定性钱包

开发确定性钱包是为了更容易从单个“种子”生成许多密钥。 最先进的确定性钱包形式是通过 BIP0032 标准定义的 HD 钱包。 HD钱包包含树形结构派生的密钥,一个父密钥可以派生出一系列的子密钥,每个子密钥又可以派生出一系列的孙密钥,以此类推,无限派生。

.:

.:

与随机(不确定)密钥相比,HD 钱包有两个主要优势。 首先,树结构可以用来表达额外的组织意义。 例如,当一个特定的分叉子项用于接收交易收入而另一个分叉子项负责支付支出时。 在企业环境中可以使用不同的分支密钥,可以管理不同的分支部门、子公司、特定职能和会计类别。

HD 钱包的第二个好处是,它们允许用户创建一系列公钥,而无需访问相应的私钥。 这可能允许 HD 钱包在不安全的服务器中使用,或者为每笔交易发布不同的公钥。 公钥不需要预先加载或推导出来,私钥也不需要在服务器中用于支付。

4.钱包账户系统

在目前的区块链技术中,记账方式主要有两种形式,以比特币为代表的UTXO模型,UTXO是这种记账模型的简称,它的英文全拼是Unspent Transaction Output,中文翻译是“Unspent Transaction Output” . Unspent transaction output”;“未花费交易输出”这个词对于大部分人来说应该比较陌生,如果觉得陌生,请按照文章下方进行分解。另一种是以以太坊为代表的基于账户/余额的记账模型。这种账户/balance-based bookkeeping model比较简单,跟现在的银行卡记账方式是一样的,大部分人都可以很清楚的理解这个模型。

1. UTXO模型 1.1. 型号说明

在讲解UTXO模型之前,先说一个名词,叫Transaction,即交易。 交易和 UTXO 是互补的。 这是一个例子:

张三:他挖了120个比特币。 现在张三肚子饿了,想花2个比特币买一个面包。 这只是一个例子。 以目前比特币的价格,一个比特币可以买很多面包。

现在假设李四是面包店的老板

在这种情况下,在比特币中,张三付给李四会一次性付给李四120元,李四找零给张三118元。 这里实际上有两笔交易。 我们可以这样理解,张三的钱被分成了两部分,其中118号叫给了自己,剩下的2块钱叫给了李四。

交易之间形成了网络关系。 一笔交易的输出成为下一笔交易的输入; 下一笔交易的输出成为下一笔交易的输入。 所有的钱都在这个网络中流动,每一笔钱的去向和来源都是有迹可循的,这也是区块链网络的一个重要特征。

上面的解释可能会让大多数人感到困惑。 接下来用通俗一点的方式来解释什么是UTXO和Transaction。

在现实生活中,一笔转账对应一个付款人和一个收款人,而在比特币中,一笔转账对应多个转让人和多个收款人。

下面我们仔细分析一下上面的例子。 以张三买面包为例

付款人:张三120元收款人:张三118元,李四2元

张三的120,转118块给自己,转2块给李四,对应交易,也就是这笔交易有1个输入,2个输出!

这是一个多输入,多输出的情况

考虑如下场景:用户A和用户B发生一笔交易T3,A转100元给B,A的100元来自T1:C转80元给A+T2:D转30元给A(共计110元,但A只转了100元给B,10元退回A的账户)。 同理,C转给A的80元来自用户E和F的某笔交易…… D转给A的30元来自用户E的某笔交易……

这笔交易有2个输入和2个输出: 2个输入(即2个UTXO): T1:80元从C转给A T2:30元从D转给A

2个输出: B:100元 A:10元(零钱)

理解了上面的例子,我们再来说说UTXO。 理解上面的例子,对你理解UTXO特别有帮助。

1、比特币交易不是通过账户的增减来实现的,而是一系列关联的输入/输出交易。

2. 每笔交易都需要花费“输入”,然后产生“输出”。 这个产生的“输出”就是所谓的“未花费的交易输出”,也就是UTXO。 每笔交易都有一个唯一的编号,称为交易ID,由哈希算法计算得出。 当需要引用某笔交易中的“输出”时,其所在的“输出”列表中的交易ID和序号即可。

3. 由于没有账户的概念,当“输入”部分的金额大于要求的“输出”时,你必须给自己找零,这也作为交易的一部分计入“输出”。

4. 旧的UTXO不断消亡,新的UTXO不断产生。所有的UTXO组成UTXO Set数据库,存在于各个节点中

5. 任何UTXO在一次交易中只能花费一次

6.1 UTXO,表达式如下:1 UTXO = 1 Transaction ID + Output Index

1.2. UTXO模型的区块链钱包余额形式

一旦深入了解UTXO的概念,钱包就很容易理解了。 某人钱包余额=他的UTXO之和; 在这里,你会发现一个不同于现实世界中“银行”的概念。 在其中,将存储每个帐户中还剩下多少钱。 但是在这里,我们存储的不是每个账户的余额,而是一笔交易,也就是一笔UTXO。 每个账户的余额是通过 UTXO 计算出来的,而不是直接存储余额。

2.账户余额模型

账户余额模型与今天的银行卡相同。 当我们需要花钱的时候,我们会先查看自己的余额是否足够。 整个转账业务流程与银行卡相同,以账户余额为准。

四、多重签名 1、多重签名概述

多重签名是一种发布具有多个签名的交易的方式。 如果多重签名中指定的任何一方没有签名,则意味着交易无效。 交易只有在指定签署方的任何一方签署后才有效。 多重签名的好处是分权,让任何拥有交易的人都可以行使自己的权力,保证自己拥有的交易的安全。

下面给出多重签名的相关定义。

在发展初期,根据签名结构的不同,多重数字签名分为两类:有序多重签名,即签名者之间的签名顺序为串行顺序,广播多重签名,即签名签名者之间的序列是一个并行序列。 后来又提出了一种签名结构更通用的签名方案:结构化多重签名。 在结构化签名方案中,每个成员按照事先指定的签名结构进行签名。