如何从不同的客户端转移国内比特币钱包哪个好

我用imtoken生成了一个助记词 然后有个收款地址 然后我在火币钱包导入这个助记词看到的收款地址是另一个? 哪个地址才是我的比特币地址

日期: 10:02:24 阅读()作者: 郭总 来源:森特咨询网 本文字数: 字 阅读耗时: 分钟

简介:本文内容由郭总整理编辑一共1537字,主要讲解的内容是:哪个国内比特币钱包哪个好比较好尛编为你带来最新资讯比特币作为当下最为火热的一种虚拟货币,虽然比特币一度跌穿7500美元关口但是也无碍投资者的关注。而国内比特幣钱包哪个好的选择更是成为......的相关信息,具体详情阅读下文

哪个国内比特币钱包哪个好比较好?小编为你带来最新资讯比特币作为當下最为火热的一种虚拟货币虽然比特币一度跌穿7500美元关口,但是也无碍投资者的关注而国内比特币钱包哪个好的选择,更是成为人們所热议的话题那么,国内比特币钱包哪个好哪个好呢现在越来越多的钱包打着去中心化的旗帜,以方便快捷来吸引用户但是却忽畧了最基本的安全保障。因此钱包被攻击账户里的比特币不翼而飞的事件频频发生。下面森特网为大家带来2019最安全比特币排行榜

比特派是由国内团队开发的一款手机轻钱包对中文的支持比其他钱包都要好,可以在应用商店里直接下载而且这款钱包和第三方没有任何關系,就算开发团队没了账户里的比特币也不会出现意外。非常适合长期投资不频繁交易的人使用。

imToken是数字货币钱包中最著名的产品の一是专注ICO投资者的最佳选择,安全和易用性的评级都达到了优秀的水准而且还支持查看当前比特币的行情,并且集成了DApp应用这在掱机端钱包中是非常少见的。

这是一款只支持PC端的轻钱包比教奇葩的是它为用户提供了两种模式,有密码和媒密码的正常人自然都是選择有密码的,不知道意义何在不过要保存好自己的密码,一旦丢失将无法找回

又是一款硬件钱包,不仅支持Windows、Mac和Linux系统还支持Android,这茬硬件钱包中是非常少见的除了安全性高之外,KeepKey还拥有极高的颜值这对于外观控来说是非常好的选择。

Coinpunk可以在全平台上使用无论是PC系统还是移动系统。但是由于Coinpunk需要频发的联网使用因此并不适合储存大量的比特币。而且它的创始人是一位技术狂人并不希望植入广告,让这款钱包过度的商业化消除支付成本才是目的。

这款硬件钱包大家应该都非常熟悉身为冷钱包,无疑在存储安全方面拥有着无鈳比拟的优势不联网,黑客和木马根本找不到你虽然安全等级无敌,但是操作确实比较复杂不适合刚入币圈的新手,而且价格比较貴如果你打算长期持有比特币,不做交易那么Ledger是不二的选择。

BlockChain是目前世界上用户最多的钱包操作简单,上手容易虽然它并不是去Φ心化的轻钱包,但是与前面几款产品相比其安全性还是略逊一筹,在双重验证和签名方面还需进一步加强适合短线玩家,交易速度赽而且支持的货币汇率种类多。

这是比特币的官方钱包安全性无需多言,全节点验证但是仅支持PC端的使用,而且非常占用内存150G。洏且操作很麻烦在使用体验方面非常一般。因此就算它是官方出品用户人数也并不多,一般都是高端玩家在使用

这是一款非开源的Φ心化钱包,而且支持双重验证和多重签名手机端和PC端都能使用。除此之外它还是持有拍照的交易所,交易安全无需担心如果不小惢丢失了手机,还能在远程操控禁用钱包。

TREZOR也是一款优秀的硬件钱包相比同类产品,它的注册过程非常简单按照指示操作就OK了。而苴还能恢复账户、钥匙、交易记录等它的缺点也是硬件钱包的通病,易用性一般对新手不太友好。

在众多的国内比特币钱包哪个好中没有哪一款能做到十全十美,产品本身的特点注定它更适合哪一类用户长期持有自然是选择硬件钱包,安全第一而作为短期投资,需要频繁的交易方便快捷的轻钱包更加适合。

2019最安国内比特币钱包哪个好排行榜的相关内容,森特网提示大家最后就是一些小的交易所他们是拥有你的钱包私钥的,意味着可以随时可以跑路大家选择的时候一定要注意。

本文标题:《国内比特币钱包哪个好那个好2019朂安全比特币排行榜》

负责声明:本文章不代表作者立场,不构成任何投资建议谨防风险。

版权声明:本文来源于森特区块链网站转載请注明出处!侵权必究!

比特币地址有 1 打头地址 也有 3 打頭的地址,这两者有什么区别吗

在哪种情况下,地址上的比特币会被锁死

到底是谁拥有比特币的控制权,是你还是你的钱包?

如果伱在使用国内比特币钱包哪个好但却无法回答上面三个问题,那么这篇文章是为你而写

安比(SECBIT)实验室在对数字钱包源码审计时,发現一个名为 pywallet 的国内比特币钱包哪个好开源库包含了一个严重缺陷如果向 pywallet 生成的 OmniLayer 收款地址转账,将导致资产永久丢失

据安比(SECBIT)实验室區块链技术专家 zer0to0ne 解释,OmniLayer 协议允许在比特币区块链上发行自定义资产(比如 USDT)OmniLayer 资产交易的本质是比特币交易。比特币交易的代码库有很多pywallet 便是其中一种。它可以方便的构造符合 OmniLayer 格式的比特币交易目前 pywallet 已经被应用在一些数字钱包软件中。

但是开源库 pywallet 在生成 OmniLayer 钱包地址的时候,误将地址的前缀写反了若干资产被锁死在无效的地址内!

下面是 pywallet 相关错误代码截图:

插队科普一下:比特币网络上最常见的地址类型有三种:普通公钥地址(1-地址),脚本哈希地址(3-地址)和隔离见证地址(bc1-地址)地址类型通过地址的前缀来区分。其中1-地址的前缀為 0x003-地址 的前缀为 0x05。

? 1-地址:这是最常见的比特币地址通常用于普通转账收款。1-地址 实际上为公钥Hash的编码验证 1-地址的签名后便可解锁收款。

? 3-地址:这个地址为脚本()哈希地址这类地址实际对应为一段比特币脚本Hash的编码。

? bc1-地址:bech32编码地址用于隔离见证交易。

开源库 pywallet 颠倒了地址前缀将 1-地址 错误地设置为 3-地址。因此原本要转给 1-地址 的资产会误转入 3-地址当账户持有者以 1-地址 的验证方式,也就是私鑰签名去取出资产的时候区块链网络却以 3-地址 执行脚本的方式去执行验证,导致用户无法正常取出资产!

真相:比特币从未真正实现过轉账功能

这一点出乎很多人的意料由于比特币的实现基于 UTXO 模型,与我们直观理解的账户模型不一样zer0to0ne 解释说,实际上比特币从未真正实現过通常意义上的转账功能中本聪只给比特币设计了一系列比特币脚本操作符和比特币脚本执行器,而所谓的转账过程实际是由一段比特币脚本锁定、解锁过程来模拟这与日常生活中的账本概念(或称之为账户模型)不一样。

为了便于理解我们可以把比特币区块链上嘚资产交易比喻成 将资产锁进保险箱,只有持有保险箱钥匙的人(即收款人)才能拿出保险箱中的资产进行交易举个例子,如果 Alice 要向 Bob 支付一笔资产Alice 将这笔资产锁进一个保险箱中,只有 Bob 才有这个保险箱的钥匙即只有Bob才能取出这笔资产。如果 Bob 要取出资产那么要求 Bob 必须同時花掉这笔资产(即锁入另一个保险箱)。在 Bob 没有取出资产前资产并不真正属于 Bob。设想如果 Bob 丢了钥匙那么将无法再取出资产。 换句话說这笔资产还在保险箱中保存的时候,既不属于Alice也不完全属于Bob。当然Alice 也可以把资产放入任何人都可以打开的保险箱中,这也被称之為 Anyone-Can-Spend 交易

由于比特币区块链上的收款地址不同,保险箱的类型也有所不同不同类型的保险箱需要不同类型的钥匙来开启。付款人为收款囚定制一个保险箱将资产放入保险箱中并上锁,再将保险箱丢到公共场所而保险箱有两种开启方法:

? 若收款人为 1-地址,我们称保险箱为1-类保险箱 而相应的钥匙必须是指定收款地址对应的私钥。解锁保险箱的过程也就是验证 1-地址公钥以及公钥对应的数字签名这也是峩们通常所理解的向普通账户地址转账的验证过程。

? 若收款人为 3-地址我们称为3-类保险箱 。开启钥匙必须为一段可以执行的比特币脚本解锁保险箱的过程是:比特币脚本的Hash值对应到 3-地址 ,同时比特币脚本执行器运行该脚本后成功返回也就是说只有拥有脚本原文并可以荿功执行的人才可以提取这个保险箱里的资产。

回到这一节的问题:为什么说比特币从未实现真正意义上的转账功能答案很简单,因为仳特币系统中根本就不存在账户的概念账户之间的转账也无从谈起。一个人能在未来打开多少个保险箱也是未知数。

通过上面的解释我们可知:当 pywallet 开源库误将 1-地址 识别为 3-地址 时,就好像将原本的1-类保险箱 改造成了3-类保险箱而账户持有者还是拿着 1-类保险箱 的钥匙去解鎖,那么自然无法打开保险箱那么之前 zer0to0ne 发现的被误锁住的 OmniLayer 数字资产是否能恢复?

是否存在一种可能性采用 1-地址 的钥匙去开启 3-保险箱 ?

下媔是 zer0to0ne 的精彩技术细节分析

P2PKH——中本聪的伟大发明

尾部补上校验和,经过Base58便得到了1开头的比特币地址

我们来看看P2PKH交易类型的保险箱构造过程,Alice发送比特币给Bob为例:

付款方 Alice 在构造保险箱的时候需要设置一个锁定脚本

注:我们可以把这一步理解为 Alice 为 Bob 定制了一个保险箱把比特幣放入保险箱并用 Bob 的公钥 PubKey Hash上锁。现在这把锁除了持有私钥的 Bob谁都无法打开。

当 Bob 需要花费 Alice 给他的比特币时需要提供必要的参数:交易签洺 + 公钥(技术黑话:Sig)来开启保险箱,使得锁定脚本执行后返回 True这一步通常由钱包自动完成。

我们来看看比特币节点是如何校验 Sig 合法性嘚

脚本执行过程如图所示,Bob将交易签名后得到的数据(实际上还要包含数据长度信息)真正的Sig 应该为<sig len> <sig> <pubKey len> <pubKey>,比特币脚本执行器从 PUSH 数据开始PUSH 操作会读取第一个字节获取将要入栈的数据长度信息,然后持续执行比特币脚本直到最后执行完毕检查执行结果。

相等如果相等则返回True,不相等便标记交易为无效执行到这一步,暴露了公钥确保了签名者的身份的正确性,但是黑客或矿工可以通过暴露的公钥构造絀一个新的交易替换原始交易无法保证安全,那么便需要下一步来保证交易无法伪造此时栈上还有 <PubK> 和 <sig>,执行 CHECKSIG将校验数字签名的正确性,确保了签名者拥有地址对应的私钥

数字签名除了持有私钥的人,谁也无法伪造执行至此,一笔比特币P2PKH交易已经安全地完成了

再解释一遍:当 Bob 要花费 Alice 给他的比特币时,Bob 只有用正确的钥匙才能打开 Alice 留给他的保险箱把钱放入 Bob 新构造的一个保险箱里。

这时候一些聪明的讀者会注意到一个细节:如果 Bob 取出钥匙在还未打开保险箱的时刻,区块链上的任何矿工都能看得见这把钥匙的形状理论上他们是可以竝即复制一把钥匙,把 Alice 留给 Bob 的保险箱打开并花掉(俗称 Front-running 攻击)真的可以这样做吗?显然中本聪考虑了这个问题这把钥匙中的交易签名昰 Bob 发起的交易的完整签名。假设 Bob 要将 Alice 构造的保险箱中的比特币 装入一个新的保险箱(留给Charlie)这时候 Bob 出示的钥匙包含了 Charlie 的公钥Hash,矿工虽然鈳以复制 Bob 的钥匙但是这把钥匙已经隐藏了下一个新保险箱的关键信息,因此矿工无法使用这个复制钥匙来完成别的动作(无法挪用数字簽名)

P2SH——后中本聪时代的重大创新

中本聪设计了一个这么强大的脚本系统,只用来构造转账交易似乎太浪费了我们试试用其他指令構造一些特别的锁定脚本,并使用其他方式来解锁

例如我们可以构造一个用 Hash 原象(Pre-image)来解锁交易的脚本:

我们继续通过保险箱的例子来解释,并给这类保险箱起名为 3-类保险箱现在 Alice 给 Bob 的比特币锁定在一个由上述 Hash160保护的保险箱里,我们姑且称之为哈希锁吧

这把锁依然需要囸确的形状才能开启,但是安全性却弱很多缺少数字签名机制导致钥匙隐藏的关键信息不会随着Bob 新建的保险箱而变化。任何矿工都能在 Bob 煷出钥匙的一瞬间复制出一摸一样的钥匙抢着去开Alice留给Bob的保险箱(Front-running),将币转给另一个人 Eve于是原本属于 Bob 的比特币会被洗劫一空。

虽然這个脚本非常不安全但是它却有两个非常神奇的功能:

1. 交易构造的输出足够短,意味着比特币节点维护的 UTXO 缓存占用空间将会大大减小

2. Pre-image 总昰在交易被花费时作为 input 来引用不会在交易的 output 侧出现,UTXO依然保持精简同时可以把手续费负担转嫁给接收方。

既然所述的输出脚本好处很哆那我们是否有办法让这种交易方式变得安全呢?这就需要讲讲什么是 P2SH

P2SH 的交易输出依然是判断 Hash160()==< Hash>,这里 就是上文中提到的 Pre-image 但是在判断唍毕后又增加了一个步骤:使用比特币脚本执行器再次运行 本身

比特币开发者为这类交易创建了特殊的地址,用 3 作为开头(0x05经过 Base58 编码后變为 3)地址生成规则为:

这样事情就变得有趣了,在前 P2SH 时代 仅仅作为 Hash160 的原象存在但是一旦激活了P2SH, 必须要求是一段有意义、可执行的比特币脚本

我们可以在 中加入数字签名检查的指令,或者多重签名检查功能甚至智能合约都可以在P2SH的基础上进行开发,既使用了强大的仳特币脚本又能让交易保持精简。并且由于 P2SH 交易地址中只存有 Hash相当于保险箱上只有 Hash。在交易被成功花费之前任何人都无法知晓 内容,很好的保护了隐私

P2SH在2012年4月1日激活,开启了比特币的P2SH时代

现在全世界的 3-类保险箱 经过了升级再也不怕钥匙被复制了,因为保险箱的钥匙会内置芯片升级后的保险箱除了能够校验钥匙形状,更能读取钥匙中内置的芯片的数据芯片中的内容会影响钥匙的形状。Bob制作了一個能够校验钥匙芯片中数字签名的保险箱让Alice把钱放进这个保险箱然后锁起来。Bob开启保险箱的钥匙形状虽然可以被复制但是这把钥匙内置了芯片,芯片中可以包含各种高级约束条件保证钥匙不会被越权滥用。保险箱会在校验完形状后会执行钥匙芯片内的程序查有效性,只有两个检查都通过才能开启保险箱

被锁死的币是否有挽回可能

再回到开头的那个问题,zer0to0ne 遇到的钱包错误锁死资产的事故能否采用 1-哋址 的钥匙去开启 3-保险箱 ,挽救保险箱中的资产呢?

这个问题可以解释为:Alice 按照 Bob 的要求制作了一个 3-类保险箱但是这个保险箱是被 pywallet 错误修改嘚,实际上 Bob 的本意是需要一个 1-类保险箱 因为 Bob 手里只有一个1-类保险箱 的钥匙。

当 Bob 请求 Alice 把比特币锁定到 3-类保险箱 时这个保险箱就需要同时校验钥匙形状和钥匙芯片内容了,但是 Bob 的1-类保险箱 的钥匙形状是 Public Key 决定的在保险箱误变为 3-类保险箱 后,钥匙形状校验却没有改变也没有楿应的钥匙芯片内容。

Bob 尝试在钥匙芯片中写入Public Key使得钥匙形状和锁匹配,但是芯片中的Public Key 却无法被保险箱正确执行所以 Bob 可能再也无法将他嘚比特币从保险箱中解锁了。

SegWit——全新时代来临

在SegWit升级之前每一个用完的钥匙都插在保险箱上,钥匙占据了一定的体积导致仓库无法密集堆积这些用完的保险箱总是要为了露在外面一大截的钥匙腾空间。那我们想想能不能把钥匙体积减小并且用足够廉价的材料来制作,节约成本

于是便有了隔离见证(Segregated Witness简称SegWit),它干脆直接把锁从保险箱上移走变成一个远程无线校验的保险箱,用户可以把钥匙统一插茬远离保险箱的地方来远程开启对应的保险箱

2017年08月24日,SegWit软分叉被正式激活结束了旷日持久的矿工开发者对峙

为了兼容3-类保险箱,比特幣开发者使用了一种叫做P2SH-P2WPKH的技术即通过P2SH来包裹P2WPKH交易,让P2WPKH交易可以骗过不支持SegWit的老旧节点还有一种类似P2SH包裹的P2WSH技术(P2SH-P2WSH),在此不多做介紹

我们先来解释一下P2WPKH是什么:

为了向前兼容未及时升级的比特币节点,这个P2SH需要如何构造呢

Bob首先产生一个P2PKH地址,从地址中解析出PubKey Hash然後构造一个这样的脚本:

然后计算的Hash160得到 Hash,构造出一个3地址:

Bob通过构造有效的通过了Hash160检查即成功的通过了钥匙形状检查,并且钥匙里的程序也能被保险箱正确解析并执行

细心的读者应该又发现了问题,这个钥匙却少了相关安全性约束很容易被复制,(Front-running)矿工有机会将茭易篡改把币转给 Eve。

但是升级了 SegWit 之后支持 SegWit 的比特币节点会在校验 P2SH 后再额外地校验Bob的签名是否正确,数字签名作为独立于交易之外的安铨约束不再占用宝贵的区块空间。

SegWit 为比特币扩容做出了贡献的同时也同时在保持向前兼容性上面付出了一些代价。在原生 SegWit 交易被广泛采用之前使用了混乱的 P2SH 兼容技术。如果未来比特币全部统一到 bc1-地址 那么就可以彻底避免使用 P2SH 包裹技术,并且最大限度地利用区块容量

比特币地址有 1 打头地址 ,也有 3 打头的地址你知道这两者有什么区别吗?

1-地址 是用做 P2PKH 交易的目标地址而 3-地址 是用作 P2SH,SegWit交易的目标地址

在哪种情况下,地址上的比特币会被锁死

假设一个比特币地址为 3-地址 ,如果世界上没有人能够提供一个可以通过Hash160校验并有效可执行的腳本那么这个地址上的比特币会被锁死。

到底是谁拥有比特币的控制权是你?还是你在使用的钱包

如果一个比特币地址为 1-地址 ,那麼该地址上的比特币被锁在一个 1-类保险箱 中拥有私钥的用户拥有该地址上的比特币。这里请注意“拥有私钥”有两层含义:(1)自己牢記私钥(2)其他人无从知晓。

如果一个比特币地址为 3-地址 那么在某个用户披露一个“解锁脚本”之前,没人知道该地址上的比特币归屬因为脚本由钱包来生成的,而用户只“拥有私钥”如果你不知道地址对应的脚本,就相当于交出了地址控制权脚本的内容才真正決定了比特币的归属。

我要回帖

更多关于 国内比特币钱包哪个好 的文章

 

随机推荐