
现在玩比特币的朋友越来越多,大家在使用imtoken钱包的时候,经常会碰到一些问题,比如比特币隔离地址和普通地址怎么相互转换?还有,什么是utxo区块链?imtoken的地址类型又有啥区别呢?今天咱就来好好唠唠这些事儿。
一、imtoken钱包比特币隔离地址和普通地址转换方法
很多人在imtoken钱包里都不知道怎么转换比特币的隔离地址和普通地址。其实操作并不复杂。
imtoken钱包默认生成的BTC地址是隔离见证地址,也就是以3开头的地址。要是你想换成普通钱包地址,也就是以1开头的地址,可以这么做:
1. 打开imtoken钱包,点击“钱包”页面顶部那个可以下拉切换钱包的按钮,然后在BTC钱包左边找到“...”按钮,点击它。
2. 这时候会进入“管理”界面,在里面找到“切换地址类型”选项,点击后会出现“普通”和“隔离见证”两个选项。
3. 选择你想要的地址类型,然后输入钱包密码,返回钱包首页,你就能看到BTC钱包地址已经变啦。
这里给大家讲一讲这两种地址的区别。咱们常见的1开头的地址,一般用来普通转账收款。它实际上是公钥Hash的编码,别人验证这个地址的签名后,就能给你解锁收款。而3开头的地址是脚本哈希地址,对应着一段比特币脚本Hash的编码。还有一种bc1开头的地址,是bech32编码地址,专门用于隔离见证交易。隔离见证技术更新后,比特币地址的格式就变了,它还带来了一整套新的数据结构,不过没更新的节点还是能像以前一样正常运作。
二、什么是utxo区块链
区块链的概念听起来有点复杂,简单说,它就像是一个能保证大家互相信任、数据最终能保持一致的分布式数据库。从数据结构上看,它是按照时间顺序把数据区块连起来的链式结构;从节点拓扑角度来说,每个节点都能互相备份;从操作方面来讲,它用基于密码学的公私钥管理体系来管理账户。
为了让大家更好理解,我给大家举个例子。假如有100台电脑分布在全球各地,这些电脑之间通过广域网连接,而且电脑的主人互相都不信任。这时候,就需要一种算法(也就是共识机制)来营造一个可信任的环境,让这些电脑之间满足下面几个条件:
- 数据交换过程不能被篡改,已经记录的历史数据也不能被改掉。
- 每个电脑的数据都能同步到最新,而且能验证新数据是不是有效。
- 按照少数服从多数的原则,所有电脑维护的数据能真实反映数据交换的历史。
区块链就是为了解决这些问题而诞生的技术方案。
区块链的核心技术组成
不管是公链还是联盟链,至少得有四个重要模块:P2P网络协议、分布式一致性算法(也就是共识机制)、加密签名算法、账户与存储模型。
1. **P2P网络协议**:这是区块链最底层的模块,负责交易数据在网络中的传输和广播,还能帮助节点发现新节点并维护网络连接。咱们常用的比特币P2P网络协议模块,有自己的一套交互规则。比如说,新节点初次连接其他节点时,要按照握手协议确认状态,之后才会请求其他节点的地址数据和区块数据。这个模块还有自己的指令集合,通过消息头里的命令域来实现节点发现、获取区块数据等基础功能。要是你想深入了解,可以去看看比特币开发者指南里关于PeerDiscovery的章节。
2. **分布式一致性算法**:在经典的分布式计算领域,有Raft和Paxos算法家族代表的非拜占庭容错算法,还有具有拜占庭容错特性的PBFT共识算法。区块链技术在这些算法的基础上,从经济学角度进行了拓展。在区块链领域,常见的共识算法有PoW、PoS和DPoS。
- **PoW(工作量证明算法)**:简单来说,就是大家一起解一道特定难度的数学题,谁解得快,谁就能获得记账权,也就是有机会生成新的区块。这个解题过程往往和计算能力有关,所以比拼的就是谁的计算方法好,设备性能强。
- **PoS(权益证明算法)**:这是一种股权证明机制,它的原理是,你生成区块的难度和你在网络里拥有的股权(也就是持有的代币数量占比)有关。具体实现方法是,结合你锁定代币的币龄和一个小的工作量证明,计算出一个目标值,达到这个目标值,你就可能获得记账权。
- **DPoS(代理权益证明算法)**:可以理解为把PoS算法里的记账人变成了一个由指定数量节点组成的小圈子,不是所有人都能参与记账了。这个圈子可能有21个节点,也可能是101个,具体数量由设计决定。只有圈子里的节点才有记账权,这样能大大提高系统的处理能力,因为节点少了,网络和节点就更好控制。
3. **加密签名算法**:在区块链里,哈希算法用得特别多。哈希算法有抗碰撞性、原像不可逆、难题友好性等特点。其中,难题友好性是很多基于PoW的数字货币存在的基础,比如比特币就用SHA256算法作为工作量证明的计算方法,也就是大家说的挖矿算法。莱特币用的是Scrypt算法,和SHA256不同,它需要大内存支持。以太坊用的是Dagger - Hashimoto算法的改良版Ethash,这是一个IO难解性的算法。除了挖矿算法,生成地址的时候会用到RIPEMD160算法,很多比特币相关的代码都采用比特币的地址设计。另外,公私钥密码算法是区块链Token系统的核心。在比特币相关代码里,基本都用ECDSA算法,它是ECC和DSA的结合,签名过程和DSA类似,但用的是ECC(椭圆曲线函数)。从技术流程上看,先生成私钥,再从私钥生成公钥,最后从公钥生成地址,而且这些步骤都是不可逆的,没办法从地址反推公钥,也不能从公钥反推私钥。
4. **账户与交易模型**:从技术角度看,区块链可以看作是一种分布式数据库。很多区块链项目在底层存储时,会选用一些轻量级嵌入式数据库,像NoSQL的BerkelyDB、LevelDB,还有些会用基于SQL的SQLite。这些数据库在区块链里的使用和其他场景没太大区别。区块链的账本有两种常见结构,一种是UTXO结构,另一种是基于Accout - Balance结构,这里我们重点说说UTXO。UTXO是“unspent transaction input/output”的缩写,意思是“未花费的交易输入输出”,它是区块链中Token转移的一种记账模式,每次交易都以输入输出的形式出现。
数字货币里的UTXO是什么意思
UTXO和我们平常银行账户的记账模式不一样。拿转账来说,假如你用银行卡转账,比如你卡上有5000元,要给朋友转2000元,转完后你的账户就会扣除2000元,剩下3000元。但在比特币的UTXO模式下就不一样了。假设你有5000比特币,给朋友转2000比特币,这2000比特币不是直接从5000里扣除,而是把你的比特币总额分成两份,一份2000给朋友,一份3000留给自己当作找零。转账成功后,给朋友的2000比特币已经用过了,不能再叫UTXO,而留给自己的3000比特币还没使用,所以它还是UTXO。要是你把5000比特币都转给朋友,那就直接生成一个5000比特币的新UTXO给朋友就行,不用找零。基于UTXO模式,每笔交易发生时,系统都会检查比特币之前的情况,看看这笔比特币是不是在你的UTXO里,如果不在,交易就会被拒绝。这样一来,每笔交易的输入和输出都有关联,通过UTXO能一直追溯到比特币诞生时挖矿产生的源头。而且,为了避免一笔UTXO被重复使用,也就是双重支付问题,系统会根据“时间戳”来判断交易的先后顺序,只确认先接收到的那笔交易。
三、imtoken地址类型有啥区别
imToken的比特币钱包支持两种地址类型,分别是普通地址和隔离见证地址(SegWit)。在导入比特币钱包时,你可以选择导入的地址类型,导入后也能根据自己的使用需求进行切换。切换方法和前面说的转换地址类型差不多:打开imToken,进入比特币钱包资产页面,点击页面右上方的「...」按钮,进入钱包管理界面;然后点击「切换地址类型」,选择「普通」,输入钱包密码,就能切换到1开头的普通地址;要是选择「隔离验证」,输入密码后就能切换到3开头的隔离验证地址。
总之,比特币和区块链相关的知识虽然有点复杂,但只要咱们耐心学习,多了解,就能慢慢搞明白。希望大家看完这篇文章,对这些知识能有更清楚的认识。