比特币验证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位比较就可以得到答案了
❷ 你怎么知道买的比特币是真的呢
我大脑中一直有这样一个问题:如果拿比特币当钱的话,我们怎么知道这个比特币是真实的呢?就像如何鉴别钞票的真伪一样。
虽然说,比特币从技术上解决了最重要的两个问题,让大家对其信任度非常高,如下:
如果确实回忆不起这两个特点的人可以好好去回顾下之前的课程了,课程链接可通过关注上方公众号,在菜单“基础课程”那里可以找到。
但是,这里有个非常关键的问题很多人没搞清楚: 鉴别钞票真伪的时候我们已经拿到这个钞票了,但是我们在提“比特币是否为真的?”这个问题的时候,我们有拿到这个比特币吗?
毕竟比特币是一种虚拟货币,是个看不太懂又摸不着的玩意儿,所以把很多人绕得云里雾里的,甚至都不知道自己买的是不是比特币,到底有多少比特币。我没说错吧?
比如我在某交易所买了一点比特币,大家看下交易流水:
这些是比特币吗?虽然我们基本知道比特币是一个采用数学加密算法产生的虚拟货币,是一串字符或者说是一个utxo结构( 参考前期utxo课程 ),那么上面这“一串字符”是否是我的比特币呢?
好,仔细想了想,这么多条记录可能是交易明细之类的东西,这能理解。但是,我的比特币交易数量在哪里?我有多少比特币怎么看?
我有时候也被交易所给搞糊涂了,比如我只能通过卖出时的数值才知道自己拥有多少比特币:
看见红色框框没,只有在卖出时我才大概知道我有多少比特币,大部分情况下都是一脸懵逼的表情。
通过上面的截图,大家可以发现一个很严重的问题:
当然,这是我很久前的一个困惑,后来光顾着学习,有些忘记了。在我的处女课《 如何从零入门区块链技术 》里,当然有个人提了这么一个问题: 我怎么知道自己买的比特币是真的?
当然只能草草作答,直到今天才得空进行全面展开。
这个问题的关键在于:
在上周 数字货币投资小密圈 里我对交易所的内容进行了一个阐述,举一个简单的例子:
假设你在某交易所的账号里有5000美元和3个比特币。你相用580美元/比特币的价格买两个比特币,这时交易所帮你找到交易对手并促成交易。现在,你的账号里有5个比特币和3840美元。
值得注意的是,当你在交易所完成上述交易的时候, 区块链上并不会记任何交易。交易所不需要在区块链里把比特币从一个地址转到另一个地址。 交易所只是修改了和你的合约,交易前,它说“我们日后会还给你5000美元和3个比特币。”交易完成后,它说“我们日后会还给你3840美元和5个比特币。”所以,交易前后,比特币并没有真正在区块链中移动,只是你和银行的合约变化了而已。对于你的交易对手而言,也是如此。
就是说,在我们通过交易所买卖比特币时,其实我们手里还什么都没有,交易所只是给我们用“笔”记录了一笔账而已。
那么,要想确保自己买到的比特币没问题,首要的也是最重要的一点:
如何正规,这里不深入阐述了,在数字货币小密圈里我会深入展开。
但是,购买还只是第一步。而我们绝大部分人,目前也仅停留在这一步,毕竟我们购买的比特币数目不太多,没那么兴师动众的。所以,就这样把“比特币”扔在交易所的账户里躺着,其实,那些我们能看到的字符只有交易记录和明文数字,与我们理解的比特币还差很远。
由于放得太久,或许有一天,我们都有点遗忘了:这玩意儿是我的比特币?
如果我们持有“比特币”数据较多,或者是喜欢钻研的人,我们就要进行到第二步:提取比特币。因为只有提取比特币,交易所才会把刚才第一步记录的账进行兑现,将真实的比特币给你。就如同,平时我们在银行存的钱只是数字,只有提取的时候,银行才会把真正的钞票给我们一样。
所以为了提取,要么你自己有一个钱包,要么你在另外一个交易所有一个收款地址。为了演示,我在OkCoin上注册了一个,并将比特币转到了对应的收款地址上。
虽然,在转账完成后,本文第二个图显示可用BTC为零了,大致可以确定交易发生后,交易所已经兑现了承诺,将比特币转到了我指定的收款地址上。但是,仍然一脸懵逼: 比特币去哪里了?我怎么确认转账真的发生了?
同样地,在OKCoin上我依然只能通过卖出时的可用BTC来确认此次转账的发生,仅此而已。前文提的问题,如果验证它的真伪,这个问题还是没解决。
到这里,就进入了本文要介绍的关键所在,在验证真伪之前,先要问自己一个问题:
什么是真的?什么是假的?
回顾一下,比特币解决的第一个关键问题“货币伪造”,是如何做到的?这里需要大家回顾一下以前的基础课程细节,在关于 utxo那节课 中,提到了比特币里非常重要的数据结构utxo。
仔细学习后,我们应该知道,“1个比特币”的概念是不存在的,utxo结构将货币从诞生(铸币)到花费的所有记录都连接了起来,从而保证了货币无法伪造。关于确认货币真伪的问题,最后归结为:
如何查询这些信息呢?讲了这么多,卖了这么多关子,神秘的面纱就要揭开,也是本文要告诉大家的:
比如,我在提取所有比特币到OKCoin上后,当时使用的收款地址时:。
于是,我通过blockchain.info进行了查询,结果如图:
上面有多笔交易的转账记录,基本展现了一个utxo的面貌,在这里可以查到很多信息,比如:
刚开始进去搜索的时候,可能有些迷茫,但是慢慢结合自己之前的学习,你能发现很多有意思的现象,也能理解得更深入。如果你能看懂一些规律,你或许就能明白了,我之前在一个课程里为什么说“ 比特币其实不是匿名的 ”。
比如上图,转给我收款地址的一个地址是: 。这个地址我理解应该是交易所的地址,就是说我在提币的时候,交易所通过这个地址将指定数目的比特币转了出去。
但是,这个地址有故事:
更多信息,请大家自行搜索。
通过本文详尽的介绍,大家应该知道如何辨别你比特币的真伪了吧?
如果没有,请赶紧复习前期基础课程,来我千聊课程里听听我的语音解答也是不错的选择哟:
❸ 小巴成长记-比特币的技术来源
我们经常说比特币具有去中心化、不可篡改、不可伪造等特点。这是为什么呢?当然下面的文字其实并没有看起来那么吓人,姑且从三个方面来讲讲,你也要耐着性子听听吧。
1、非对称加密是比特币去中心化的来源
中心化是需要一个类似银行的中心机构来验证交易的。去中心化本质上是让所有的节点都能验证交易的真伪,中本聪用了非对称加密的技术来解决中心化的问题。
非对称加密技术是什么?是指加密和解密的时候使用不同的密钥的加密算法。比如:A要向B发送信息,A和B都要产生一对用于加密的公钥和私钥顾名思义,私钥就是不能公开的,公钥就是要公开的。A发送信息给B时,A就用B的公钥对信息加密,B收到后,B用B的私钥解密A的消息,而其他所有收到这个信息的人都无法解密,因为只有B才拥有这个私钥。
简单的说,公钥和私钥在非对称加密机制里是成对存在的,公钥和私钥可以去相互验证对方,我们可以把地址理解为公钥,把签名输密码的过程理解为私钥的签名。每个矿工在拿到一笔转账交易时,都可以时都可以验证公钥和私钥到底是不是匹配的,如果是匹配的,这笔交易就合法。这样,我们每个人只需要保管好自己的私钥,自己的公钥和对方的公钥就可以安全地进行转账,不需要中心的机构来验证对方发来的比特币是不是真的。
2、工作量证明机制是比特币不可篡改的技术来源
工作量证明 机制,是一种对在差不多时间内发生的事物的先后顺序达成共识的一种算法。监测工作的整个过程通常是效率非常低的,而通过对工作的结果进行认证来证明完成了一定工作的工作量,是一种非常高效的方式。比如我们日常中的各种证 驾驶证 学位证 结婚证就是这样一种有结果获悉完成工作量的证明。
工作量证明 的特点,对于执行方来说难度是适中的,对于验证方来说是非常容易被验证的。矿工们通过哈希计算,最先算出结果,获得记账权,其他节点经过非常简单的验证之后,就可以同样其记账,并同步账本。打上时间戳后,紧接着进行下一轮计算。
如果这时候有人想把某个信息进行修改,他需要做什么呢?他需要从这个区块开始把之后所有的区块都重新计算一遍,把账本再同步给其他人。而在他进行计算的同时,其他矿工们已经在原来的的链上继续往前进行计算了。因为在比特币的网络里,大家认为最长的链才是正确的链。所以,这个恶意篡改的人,需要在很短的时间内赶上现有区块的高度度,让自己的这条链成为最长的链,并让其他矿工误以为自己的这条链是正确的,这基本上是一件不可能的事,除非这个恶意篡改的人拥有超强的算力,至少超过全网的50%。那么我们来算算,现在全网的算力是8亿哈希每秒,也就是每秒进行8乘10的18次方计算,现在市场上流行的主流矿机每台的算力是10T左右,如果你想拥有全网51%的算力,你最少需要40万台最新矿机,如果按1万元每台矿机计算,仅设备就需投入40亿元人民币,加上矿机的供不应求,老矿机算力下降,全网算力的不断上涨等因素,如果不是为了60亿以上的利润回报并有强大的技术做支撑,一般人很难有这个动机和能力。
3、“UTXO”结构是比特币不可伪造的技术来源
先问个问题,如果我发给你1个比特币,你怎么知道这个比特币是真的而不是我伪造出来的,或者我已经同时转给了其他人了呢,这就要说到UTXO结构了。
UTXO(Unspend Transaction Output)是个什么鬼?意思是未花费的交易输出。来个栗子,假设我要给你100元,其中有两张张50元纸钞,一张是隔壁老王给我的,另外一张是小卖部小丽找零给我的,拿到这两张张钞票我需要拿在手上并还未花出去时才能交易给你,这就是未花费的交易输出。而通过这两张钞票往前追溯可以知道是谁交给了老王和小丽,并最终追溯到是由哪家银行发行,什么时候央行批准发行的源头,比特币里也有这样一个原理。在比特币世界里的每一笔转账,都能够追溯到上一笔交易。每一笔付款,都可以追溯到上一笔的收款。一直往上追溯到它诞生时矿工挖出来的那个区块。
这个机制就保证了在比特币网络里,比特币是不可以伪造和重复交易的。在比特币世界里,重复支付被叫做“双花”,就是花费了两次的意思。
❹ 比特币一个UTXO交易为什么要经过6个区块确认才被认为更改不可逆(或者说几乎不可逆)
你说的是对的,的确会回滚, 如果的交易不幸被打包到分叉上面了,这个交易很有可能会在主链被同步后被取消掉。
至于为什么要6个确认是因为加大蒙出最优解难度(防止单节点造假)。 一个块可能还能蒙出一个最优解,6个块一起蒙出基本上不可能。 跟分叉关系不大
❺ 闪电比特币是什么
闪电比特币(LBTC)是一个去中心化的全球价值互联网传输协议,具体应用包括点对点支付和交易平台等。任何接受LBTC协议的用户都可以几乎免费的使用LBTC来保证交易的实时性以及安全性。这个概念之前在币易官方微博看到过。
❻ 我有1个比特币怎样辨真假
一、交易渠道:现在我们买比特币的基本上是两个通道:一个是场外交易、一个是交易所。场外交易是要有第三方担保,对方收到款后,都会释放到你提供的一个地址上,这个地址可以是交易所地址,可以是钱包地址。交易所交易是在交易所内币币交易比特币,你挂买卖单,很快就成交了,速度非常快;其实交易所在这里也只是起到了一个记账的作用,可以简单的理解为在你的账本上增加了一笔,另外一方减少了一笔,所以说交易过程是非常快的,这个过程区块链上没有任何交易记录的,只是交易所从中记账而已,可以用证券交易所类比。所以说第一先找一个靠谱的交易所或者场外交易渠道是非常重要的!
二、提取交易所的比特币或者场外交易的时候直接让对方转到钱包的地址;为什么要转到钱包才能确认那?比特币中有一个非常重要的数据结构utxo(utxo结构就是将货币从诞生到花费的所有记录都连接起来),也就是平时说的可以追溯;也正是utxo结构保证了比特币不可以伪造的问题。
【拓展资料】
比特币(Bitcoin)的概念最初由中本聪在2008年11月1日提出,并于2009年1月3日正式诞生。
根据中本聪的思路设计发布的开源软件以及建构其上的P2P网络。比特币是一种P2P形式的数字货币。比特币的交易记录公开透明。点对点的传输意味着一个去中心化的支付系统。
与大多数货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节安全性。P2P的去中心化特性与算法本身可以确保无法通过大量制造比特币来人为操控币值。基于密码学的设计可以使比特币只能被真实的拥有者转移或支付。这同样确保了货币所有权与流通交易的匿名性。比特币其总数量有限,该货币系统曾在4年内只有不超过1050万个,之后的总数量将被永久限制在2100万个。
2021年6月,萨尔瓦多通过了比特币在该国成为法定货币的《萨尔瓦多比特币法》法案。9月7日,比特币正式成为了萨尔瓦多的法定货币,成为世界上第一个赋予数字货币法定地位的国家。
2021年9月24日,中国人民银行发布进一步防范和处置虚拟货币交易炒作风险的通知。通知指出,虚拟货币不具有与法定货币等同的法律地位。
2021年11月10日,比特币价格再创历史新高,首次逼近6.9万美元/枚。
2022年1月,比特币继续下跌,跌破42000美元,触及去年9月以来未见水平。
❼ 比特币现金UTXO集在和BSV分裂以后增长了多少
与链上交易相比,BCH网络的UTXO集也在增长。UTXO的增长随着采用率而增加,目前UTXO的规模自2018年9月以来大幅飙升。
UTXO 是 Unspent Transaction Output 的缩写,Transaction act发音简写为X。UTXO是中本聪最早在比特币中采用的一个具体的技术方案。在比特币的设计中,并没有账户概念
❽ UXTO与余额
区块链入门从使用钱包开始,我们最关注的是钱包的账户余额。可看过很多区块链资料以后,一直存在一个疑问,钱包的余额信息存在区块链的什么位置?一直没有找到,只有一个相近的概念叫UTXO(Unspent Transaction Output),但看完以后还是对应不上。直到翻遍网上所有关于UXTO的资料,才知道在中本聪设计的比特币系统中,并没有余额这个概念,“比特币余额”是由比特币等钱包应用派生出来的产物。钱包的余额是通过与账户相关的多个UXTO算出来的。下面且听我详细道来。
了解过一点点会计学,我们现在的会计系统绝大部分采用的是一种叫做“借贷记账法”的方法,账目分成借方和贷方,每发生一笔业务都要登记两个以上的科目。
简单来说,Alice转账给Bob 1美元,使用借贷记账法至少要产生两条账目,Alice账户减少1美元,Bob账户增加1美元。这种记账法在企业经营、企业审计中有无数的好处。但是这种记账法也有一个最大的缺点,就是容易产生记账错误和记账误差。一笔交易需要登记两条以上的账目,本质上记录的是“交易的结果”,而不是“交易本身”。
中本聪发明了UTXO(Unspent Transaction Output)交易模型,并将其应用到比特币当中。UTXO是“未花费的交易输出”,简单来说就是,每一笔比特币交易实际上都是由若干个交易输入和输出组成的。交易输入是资金来源,交易输出是资金去向,每一笔交易都要从交易输入中花费出去一部分,这一部分就是未花费的交易输出(UTXO)。每一次的交易输入都可以追溯到之前的UTXO,直至最初的挖矿所得。
由挖矿所得创建的比特币交易,是每个区块中的首个交易,又称之为coinbase交易,它由矿工创建,没有上一笔交易输出。
在比特币交易中 UTXO 就是基本单位,一个UTXO一旦被创建就不可被继续分割,它只能当作是下一笔交易的输入被花费掉,花费后产生新的UTXO,这样周而复始地实现货币的价值转移。所以我们在比特币钱包中所看到的账户余额,实际上是钱包通过扫描区块链并聚合所有属于该用户的UTXO计算得来的。
因此,当我们在说某人拥有1枚比特币的时候,我们实际上说的是,在当前的区块链记录中,有若干笔交易的 UTXO 收款地址写的是这个人的钱包地址,这些UTXO的总和是1个比特币。
比特币的UXTO系统遵守两个规则:
我们以以太账户为例,打开 etherscan.io ,选择BLOCKCHAIN->All Accounts,这样可以看到所有地址与余额,可以选择其中一个查看详细信息。如果看不懂, 没关系,把自己的以太地址输入到右上角的搜索框回车后,会显示地址的余额和详细交易记录,如下图。
至此,我能理解李笑来老师说为什么他的账户没有余额,只有UXTO了,O(∩_∩)O哈哈~,内行人不要说外行话嘛。
❾ 数字货币里的UTXO什么意思
UTXO的中文意思叫作:未花费的交易输出。
UTXO是数字货币中的账户模型,这个模型和我们现在银行的账户模型是不一样的。
拿转账来说,现在的情况是:
我要给依依转2000块钱,我要从我的招商银行卡里面给她转账,我的卡里面有5000 块钱,转给她2000块钱以后,我的招商银行账户就被扣除了2000块钱,还剩下3000块钱。
那么如果是基于比特币的UTXO,情况是这样的:
我有5000比特币,我给依依转2000比特币,2000比特币消耗掉了对不对?注意!这2000不是从我这5000总数里面扣除的,而是:我的比特币总额会分成两份(一份
2000,一份3000),这就是所谓“生成两个新的UTXO”:依依收下2000比特币,我自己收下3000比特币,3000算是给我的找零。
转账成功以后,我给依依的2000比特币目前已经使用过了,被消耗掉了,就不能再叫UTXO了,而找零给我的3000比特币目前我还没有使用,所以它还能称作UTXO ,也就是未花费的交易输出。那么,如果我总共有5000比特币,我全部转给依依,那么就只需要生成一个新的
UTXO给依依就可以了,不需要找零了。
基于UTXO,每笔交易出现,都要确认比特币之前的情况,检验比特币是不是存在于我的UTXO中,如果不存在,那么系统就会拒绝你的交易行为。
这样一来,每笔交易的输入和输出都是有关系的,可以通过UTXO不断向前追溯,一直追溯到比特币诞生的时候,也就是挖矿的源头。
如果我想用同一笔UTXO发送给两个人,那么系统只确认先接受到的那一笔,一旦确认UTXO已经被消耗了,那么你就不可以再把它转给下一个人,这样就避免了双重支付的问题。
既然系统只确认先接受到的那一笔,那么问题来了,系统怎么知道谁先谁后呢?系统当然知道,因为系统有一个叫“时间戳”的东西。