比特币验证真假
Ⅰ 你怎么知道买的比特币是真的呢
我大脑中一直有这样一个问题:如果拿比特币当钱的话,我们怎么知道这个比特币是真实的呢?就像如何鉴别钞票的真伪一样。
虽然说,比特币从技术上解决了最重要的两个问题,让大家对其信任度非常高,如下:
如果确实回忆不起这两个特点的人可以好好去回顾下之前的课程了,课程链接可通过关注上方公众号,在菜单“基础课程”那里可以找到。
但是,这里有个非常关键的问题很多人没搞清楚: 鉴别钞票真伪的时候我们已经拿到这个钞票了,但是我们在提“比特币是否为真的?”这个问题的时候,我们有拿到这个比特币吗?
毕竟比特币是一种虚拟货币,是个看不太懂又摸不着的玩意儿,所以把很多人绕得云里雾里的,甚至都不知道自己买的是不是比特币,到底有多少比特币。我没说错吧?
比如我在某交易所买了一点比特币,大家看下交易流水:
这些是比特币吗?虽然我们基本知道比特币是一个采用数学加密算法产生的虚拟货币,是一串字符或者说是一个utxo结构( 参考前期utxo课程 ),那么上面这“一串字符”是否是我的比特币呢?
好,仔细想了想,这么多条记录可能是交易明细之类的东西,这能理解。但是,我的比特币交易数量在哪里?我有多少比特币怎么看?
我有时候也被交易所给搞糊涂了,比如我只能通过卖出时的数值才知道自己拥有多少比特币:
看见红色框框没,只有在卖出时我才大概知道我有多少比特币,大部分情况下都是一脸懵逼的表情。
通过上面的截图,大家可以发现一个很严重的问题:
当然,这是我很久前的一个困惑,后来光顾着学习,有些忘记了。在我的处女课《 如何从零入门区块链技术 》里,当然有个人提了这么一个问题: 我怎么知道自己买的比特币是真的?
当然只能草草作答,直到今天才得空进行全面展开。
这个问题的关键在于:
在上周 数字货币投资小密圈 里我对交易所的内容进行了一个阐述,举一个简单的例子:
假设你在某交易所的账号里有5000美元和3个比特币。你相用580美元/比特币的价格买两个比特币,这时交易所帮你找到交易对手并促成交易。现在,你的账号里有5个比特币和3840美元。
值得注意的是,当你在交易所完成上述交易的时候, 区块链上并不会记任何交易。交易所不需要在区块链里把比特币从一个地址转到另一个地址。 交易所只是修改了和你的合约,交易前,它说“我们日后会还给你5000美元和3个比特币。”交易完成后,它说“我们日后会还给你3840美元和5个比特币。”所以,交易前后,比特币并没有真正在区块链中移动,只是你和银行的合约变化了而已。对于你的交易对手而言,也是如此。
就是说,在我们通过交易所买卖比特币时,其实我们手里还什么都没有,交易所只是给我们用“笔”记录了一笔账而已。
那么,要想确保自己买到的比特币没问题,首要的也是最重要的一点:
如何正规,这里不深入阐述了,在数字货币小密圈里我会深入展开。
但是,购买还只是第一步。而我们绝大部分人,目前也仅停留在这一步,毕竟我们购买的比特币数目不太多,没那么兴师动众的。所以,就这样把“比特币”扔在交易所的账户里躺着,其实,那些我们能看到的字符只有交易记录和明文数字,与我们理解的比特币还差很远。
由于放得太久,或许有一天,我们都有点遗忘了:这玩意儿是我的比特币?
如果我们持有“比特币”数据较多,或者是喜欢钻研的人,我们就要进行到第二步:提取比特币。因为只有提取比特币,交易所才会把刚才第一步记录的账进行兑现,将真实的比特币给你。就如同,平时我们在银行存的钱只是数字,只有提取的时候,银行才会把真正的钞票给我们一样。
所以为了提取,要么你自己有一个钱包,要么你在另外一个交易所有一个收款地址。为了演示,我在OkCoin上注册了一个,并将比特币转到了对应的收款地址上。
虽然,在转账完成后,本文第二个图显示可用BTC为零了,大致可以确定交易发生后,交易所已经兑现了承诺,将比特币转到了我指定的收款地址上。但是,仍然一脸懵逼: 比特币去哪里了?我怎么确认转账真的发生了?
同样地,在OKCoin上我依然只能通过卖出时的可用BTC来确认此次转账的发生,仅此而已。前文提的问题,如果验证它的真伪,这个问题还是没解决。
到这里,就进入了本文要介绍的关键所在,在验证真伪之前,先要问自己一个问题:
什么是真的?什么是假的?
回顾一下,比特币解决的第一个关键问题“货币伪造”,是如何做到的?这里需要大家回顾一下以前的基础课程细节,在关于 utxo那节课 中,提到了比特币里非常重要的数据结构utxo。
仔细学习后,我们应该知道,“1个比特币”的概念是不存在的,utxo结构将货币从诞生(铸币)到花费的所有记录都连接了起来,从而保证了货币无法伪造。关于确认货币真伪的问题,最后归结为:
如何查询这些信息呢?讲了这么多,卖了这么多关子,神秘的面纱就要揭开,也是本文要告诉大家的:
比如,我在提取所有比特币到OKCoin上后,当时使用的收款地址时:。
于是,我通过blockchain.info进行了查询,结果如图:
上面有多笔交易的转账记录,基本展现了一个utxo的面貌,在这里可以查到很多信息,比如:
刚开始进去搜索的时候,可能有些迷茫,但是慢慢结合自己之前的学习,你能发现很多有意思的现象,也能理解得更深入。如果你能看懂一些规律,你或许就能明白了,我之前在一个课程里为什么说“ 比特币其实不是匿名的 ”。
比如上图,转给我收款地址的一个地址是: 。这个地址我理解应该是交易所的地址,就是说我在提币的时候,交易所通过这个地址将指定数目的比特币转了出去。
但是,这个地址有故事:
更多信息,请大家自行搜索。
通过本文详尽的介绍,大家应该知道如何辨别你比特币的真伪了吧?
如果没有,请赶紧复习前期基础课程,来我千聊课程里听听我的语音解答也是不错的选择哟:
Ⅱ 比特币如何防止伪造交易记录
(本文在观看李永乐老师视频讲解基础上整理)
防止伪造记录是比特币的一个重要特点,电子签名技术就是防伪的关键。
当一个比特币用户注册的时候会产生一个随机数,随之会产生一个私钥,紧接着生成公钥和地址。
接下来以“A转给B十个比特币”作为案例,看一下比特币的交易是如何防伪的。
Step1:A编写交易记录并对信息加密
Step2:A将“交易信息、公钥、地址”进行全网广播
Step3:全网对A广播出来的信息进行验证
验证的过程就是全网对广播出来的交易信息进行哈希运算,并得出一个摘要。然后用广播出来的公钥和密码进行解密,也得出一个摘要。
对这两个摘要进行对比,如果相同,信息为真,如果不同,信息为假。
以上就是比特币对信息验证的过程。
结语
1、 比特币防伪采取了电子签名技术;
2、 私钥加密,公钥解密;
3、 对广播出来的信息,全网会进行信息验证,验证通过代表信息真实,否则信息伪造。
参考文献
[1]微博 @李永乐老师
Ⅲ 对方说打款了!给我一个比特币交易id,在那里查询是真是假
你说的比特币交易ID应该是比特币钱包地址。如果比特币钱包地址是错误的,你是无法把比特币发送出去的,会提示你错去。还有就是比特币的交易会在全网进行广播,比特币交易的记录任何人都可以查询,是无法修改的。
比特币地址就像一个物理地址或者电子邮件地址。这是别人付给你比特币时你唯一需要提供的信息。然而一个重要的区别是,每个地址应该只用于单笔交易。
块链是一个按时间顺序排列的比特币交易公共记录。块链由所有比特币用户共享。它被用来验证比特币交易的永久性并防止双重消费。
Ⅳ 求助如何用js或者jqurey实现判断比特币地址是否合法,有效
位数什么的,都可以用长度直接判断,关键字可以用正则来对比。比特币校验应该是有公式的,你找到公式,把字符串放进去运算一下,看看是否符合规则即可
Ⅳ 怎样辨别比特币的真伪
参与投资比特币的是不是都有过这样的疑问:“花好几万块去买一个摸不着的一串数字”?“如果是法币我们可以拿验钞机看看,这个可这么看啊”?……这个问题我也是刚系统学习了一下,分成以下三步:
1: 交易渠道 :现在我们买比特币的基本上是两个通道:一个是场外交易、一个是交易所。场外交易是要有第三方担保,对方收到款后,都会释放到你提供的一个地址上,这个地址可以是交易所地址,可以是钱包地址。交易所交易是在交易所内币币交易比特币,你挂买卖单,很快就成交了,速度非常快;其实交易所在这里也只是起到了一个记账的作用,可以简单的理解为在你的账本上增加了一笔,另外一方减少了一笔,所以说交易过程是非常快的,这个过程区块链上没有任何交易记录的,只是交易所从中记账而已,可以用证券交易所类比。所以说第一先找一个靠谱的交易所或者场外交易渠道是非常重要的!
2.提取交易所的比特币或者场外交易的时候直接让对方转到迹肢雀钱包的地址 ;为饥高什么要转到钱包才能确认那?比特币中有一个非常重要的数据结构utxo(utxo结构就是将货币从诞生到花费的所有记录都连接起来),也就是平时说的可以追溯;也正是utxo结构保证了比特币不可以伪造的问题。
当你从交易所提取到钱包的时候,交易所就要将交易所的一个地址上的货币转到钱包地址上,这一个姿早过程在区块链上就有了记录,也就是矿工确认了的记录。
3.通过区块链浏览器查询关键信息,推荐blockchain.info
看看我记录,我在10.9日把交易所的比特币转到钱包,当时的地址是:。通过blockchain.info查询,结果如下:
上面记录有非常详细的时间记录我在交易所转入到钱包,又有详细的时间记录从钱包转到交易所;转账金额和手续费记录;确认次数等,这就是一个完整的utxo的记录。如果你有兴趣你可以顺着地址查询到好多内容哦。
通过这几步就能很快能确认你手中的比特币是不是真的啦!
Ⅵ 【2019-07-12】比特币的钱包地址验证
第一步,随机选取一个32字节的数,大小介于1~0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之间,作为私钥
第二步,使用椭圆曲线加密算法(ECDSA-SECP256k1)计算私钥所对应的非压缩公钥(共65字节,1字节0x04,32字节为x坐标,32字节为y坐标)。
第三步,计算公钥的SHA-256哈希值
第四步,计算上一步哈希值的RIPEMD-160哈希值
第五步,在上一步结果之间加入地址版本号(如比特币主网版本号"0x00")
00
第六步,计算上一步结果的SHA-256哈希值
第七步,再次计算上一步结果的SHA-256哈希值
第八步,取上一步结果的前4个字节(8位十六进制数)D61967F6,把这4个字节加在第五步结果的后面,作为校验(这就是比特币地址的16进制形态)
00D61967F6
第九步,用base58表示法变换一下地址(这就是最常见的比特币地址形态)
如果给你个地址你只要:
base58->二进制-> 这时是第8步,
如果我们把后面4个字节拿掉,
就是第5步的结果,你只要重复以上步骤到第8步
取前4个和地址后4位比较就可以得到答案了
Ⅶ 比特币中怎么证明是自己挖矿成功,而不是其他人呢
我们知道了信息计算Hash打包的过程:交易记录、时间、账本序号、上一个Hash值。也知道所有的计算和存贮是需要消耗计算机资源。在中本聪的设计里,完成记账可以获得系统给与比特币奖励,这个过程也就是比特币发行过程,因此把记账成为挖矿。
记账工作
因为记账是有奖励,每次记账都可以为自己增加一定个数的比特币,因此大家争相记账,当然能也就引发了问题:出现记账不一致的是后,系统引入工作量证明来解决这个问题,规则如下:
1.在一段时间内,只有一个人能记账成功。
2.通过解决密码学难题竞争获得唯一记账权
3.其他节点复制记账结果
不过在进行工作量证明之前,记账节点会做进行如下准备工作:
1.收集广播中还没有被记录账本的原始交易信息
2.检查每个交易信息中付款地址有没有足够的余额
3.验证交易是否有正确的签名
4.把验证通过的交易信息进行打包记录
5.添加一个奖励交易:给自己的地址增加12.5比特币
如果争夺记账权成功的话,就可以得到12.5比特币的奖励。
工作量证明
每次记账的时候会把上一个块的Hash值和当前的账页信息一起作为原始信息进行Hash。为了确保10分钟前后只有一个人可以记账,就只有提高记账的难度,用Hash的结果必须以若干个0开头。为了满足条件,进行Hash是引入一个随机数变量。
用伪代码表示一下:
1.Hash(上一个Hash值,交易记录集) = 456635BCD
2.Hash(上一个Hash值,交易记录集,随机数) = 0000aFD635BCD
改变Hash的原始信息的一部分,Hash值也会不断变化,因此在运行Hash的时候,不断改变随机数的值,总可以找到一个随机数使得Hash的结果以若干个0开头,率先找到随机数的节点从此获得记账的唯一记账权。
验证
在节点成功找到Hash值之后,会马上对全网进行广播打包区块,网络的节点收到广播后会对其进行验证。如果验证通过,表明已经有节点成功解密,就不会在竞争当前区块,而是选择接受区块,记录到自己的账本中,进行下一轮竞争猜谜。网络中只有最快解密的区块才会添加到账本中,其他的节点进行复制,确保整个账本的唯一性。
如果节点有作弊行为,会导致网络的节点验证不通过,直接放弃其打包的区块,也无法记录到总账本中,那么作弊节点的消耗成本就白费了。因此矿工自觉的遵守比特币系统的共识协议,也确保整个系统的安全。
这个问题就好像你去工地搬砖,搬完一天砖,包工头问你你怎么证明自己一天在工地搬砖呢?
Ⅷ 如何辨别真假虚拟数字货币
根据真正的虚拟数字货币要素判断其真假。
1、真正的虚拟数字货币限量不增发。
2、真正的虚拟数字货币必须在国际交易平台交易,可变现。
3、真正的虚拟数字货币有开源代码!有自己独立的钱包!每一个币都有自己的代码,有自己的价值。
4、真正的虚拟数字货币可以通过矿机挖矿!有自己特定算法。
5、真正的虚拟数字货币是可以和比特币、美元兑换的。
6、真正的虚拟数字货币是可以相互兑现的。