我们都知道支付宝的转账流程:打开APP、输入转账地址或者扫二维码、输入转账金额、点击确认并输入密码。
比特币的转账流程也是一样的。但是比特币和支付宝背后的转账原理其实是千差万别的。
支付宝采用的是账户余额模型,比如大白支付宝账户有100元,给小黑转账80元,大白的账户余额会减少80元,变成20元,小黑的账户余额由0变成80元,大白和小黑的账户都会直接显示一个余额,这就是账户余额模型。
01.UTXO模型简介
比特币系统是一个点对点的电子现金系统,UTXO模型和我们的现金支付模型有很多的共同点。大白有两张面值50元的现金纸币,想要给小黑80元,需要把这两张50元的现金给小黑,小黑再找给大白20元,大白和小黑钱包里还有多少钱不会像支付宝那样直接显示一个余额,而是需要自己去数一下:钱包里有几张纸币以及每张的面额,然后进行加总。我们可以把现金的支付方式看做是UTXO模式的简化版本。
UTXO模型和现金支付模型的共同点:
①每条UTXO都有对应的面值,就像每张纸币会有一个面值一样。
②一条UTXO在交易中必须作为整体被消耗,就像纸币一样不可以撕开来使用。
如下图:左边的地址是比特币交易的发起地址,右边是2个接收地址,其中1个地址跟左边的发起地址是一样的,这笔交易的转账金额是0.26682745BTC,其中接收者拿到了0.1732608BTC,回到原转账地址的是0.09356665BTC。
③UTXO和现金一样都有最小面值,UTXO最小面值单位是聪,1个BTC=10的8次方聪,也就是1亿聪,1聪=0.00000001个BTC。
DMCC将在迪拜建设区块链贵金属精炼厂,为其稳定币提供支持:迪拜多元商品中心(DMCC,由迪拜政府建立的自由贸易区)已与REIT Development签署协议,将建设一个采用区块链技术的贵金属精炼厂。这些贵金属将为稳定币提供资产抵押,如金币、银币、铑币、钯币和铂币等。这些稳定币将在以太坊网络上运行,据报道将与每克相应贵金属的当前价值挂钩。根据该公告,贵金属支持的稳定币将在DMCC的黄金交易平台上交易。该项建设工作计划在2022年底前完成,REIT Development首席运营官Mike De Vries表示,区块链技术将变革贵金属行业。他补充道:“区块链技术可以实现对贵金属的更透明和更准确的跟踪,我们相信,到2025年,每一家贵金属冶炼厂和存储设施都将被采用区块链技术。”(CoinTelegraph)[2021/4/21 20:44:24]
UTXO模型和现金支付模型的不同点:
①现金支付:找零是收款人做的;
比特币系统:找零是发起者自己进行设置的。
②现金的面值是固定的,UTXO的面值不固定,而是在发生交易的过程中也随之改变。
比特币的UTXO面值是不固定的,如下图,这是史上第一笔比特币交易,中本聪转给哈尔·芬尼10个BTC,这里花费了一条面值为50BTC的UTXO,找零之后得到了面值为40BTC的UTXO。
原本一个面值50的UTXO变成了两个面值分别为10BTC和40BTC的UTXO,如果中本聪给转给哈尔·芬尼的是15个BTC,那么面值为50BTC的UTXO就会变成两个面值分别为35BTC和15BTC的UTXO。
下图是一个比特币UTXO集的数据图,从2009年到2019年这10年之间,UTXO集的数据整体是一个增长的趋势。
③现金是不可能被双花的,比特币有可能双花。
同一笔比特币被花费两次甚至多次的情况就叫做双花。比特币它作为一种虚拟货币是没有实体的,它的本质是数据,有可能把一笔同样的比特币花费两次。
UTXO是UnspendTransactionOutput,即未消费的交易输出,每一笔比特币的交易都会有输入和输出。
首个区块链领域国家标准在成都举行首场征求意见会:9月11日,全国首个区块链领域获批立项的国家标准《信息技术 区块链和分布式记账技术 参考架构》征求意见会在成都举行。下一步,中国电子技术标准化研究院还将基于此国家标准,在北京、上海、广州、深圳等地广泛举办征求意见会,不断完善标准内容,加快推动国家标准正式发布。(潇湘晨报)[2020/9/11]
当大白转账80元给小黑的时候,这80元对大白来说是一笔交易的输出,叫transactionoutput,对于小黑来讲这是一笔交易收入transactioninput,如果后面某个时候小黑把这80元又花出去了,那么这80元对于小黑来讲也变成了交易输出,而在小黑还没有把这钱花出去之前,它就是一笔还没有被花费掉的交易输出,transaction的缩写是tx,所以UnspendTransactionOutput就是UTXO。
我们看一下链上数据是什么样的?如下图:
其中右上方的confirmation就是确认的意思,它这里显示6+,也就是说这笔交易被确认的交易区块数已经超过了6个,通常一笔交易它被确认的区块数超过6个的时候,就认为这笔交易已经是一个完成的状态,并且不可逆了。
什么意思呢?先来解释一下这个确认的区块数,当一笔交易被放进一个区块里面,增加到区块链上最新的那个块的时候,这个时候的区块确认数是1,然后后面不断的会有新的区块增加上来,得到的区块确认数就会变成2、3、4、5、6......这样子不断的去增加,当它后面跟着的区块是5个,也就是说这笔交易得到的区块确认数是6的时候,我们就认为这笔交易不可能再逆转了。6+的旁边还有个锁的标志,当这个区块的确认数达到6以及以上的时候,这个锁就会变成锁上的样子。
02.找零机制
中本聪有一个面值为50的UTXO,转给哈尔·芬尼10个BTC,除了要写哈尔·芬尼这个收款人的地址,还要写找零地址,说明多出来的40个BTC想放到哪个比特币地址,可以是原来发起转账的地址,也可以是其他的比特币地址,必须得写一个找零地址,告诉矿工:剩下的40个BTC是想放在哪里的?
动态 | TrustToken开始使用Armanino LLP的区块链审计应用程序:会计和商业咨询公司之一Armanino LLP今天宣布,TrustToken已开始使用该公司的实时审计应用程序。实时审计程序利用区块链技术将链上数据与链下数据连接起来,为所有网站访问者提供可下载的认证报告。(GlobeNewswire)[2019/12/11]
因此右边的交易收款方的地址有两个,一个是哈尔·芬尼的地址,一个就是中本聪的地址,中本聪设置的找零地址就是发起交易的这个地址,但是通常呢找零地址是不会和原交易发起地址相同的,这是出于隐私保护的考虑。
我们知道比特币是一个公开的大账本,所以如果总是用单一的地址进行交易的话,就容易有隐私泄露的危险,比如说别人一查这个地址,就可以看到地址上所有的比特币余额,知道你的具体资产有多少。因此呢,出于隐私保护的考虑,建议大家在使用比特币进行交易的时候,一定每一次都要使用新的地址。这样别人无法看到你拥有的其他比特币地址里面有多少钱,以及你用它们做了什么交易。
上图中的比特币就是中本聪的一个地址,它里面一共发生了45笔交易,大约还有18个比特币,但是这只是他其中一个地址,他手里究竟有多少比特币,我们是没有一个精确的数据的。据说中本聪拥有100万个比特币,也是通过其他的一些信息模模糊糊推断出来的,并不能完全肯定,因为中本聪不可能总是使用同一个比特币地址。
大家看上图的上面部分,这三个地址没有一个是一样的,那当找零地址与发起交易地址不同的时候,收款方这两个地址哪个才是找零地址呢?答案是:不知道,你没有办法知道,他是转账了0.29个BTC,找零37.208506个BTC,还是转账了37.208506个BTC,找零0.29个BTC。在blockchain这个浏览器上,你可以看到它对这笔交易中到底哪个才是转账的比特币做了一个预计,叫做estimatedbtctransacted,估计0.29个BTC是转账的金额。
如果交易的时候不写找零地址,剩下的钱会被系统默认为全部归属于矿工,全部给矿工当成是帮你打包交易的手续费。如下图:
现场丨枫玉科技创始人:真实的数据+有效的身份=合法的价值=区块链基础设施:8月15日,在由UBI举办的“全球区块链合作联盟”成立大会上,Cointime US,金色财经现场采访了枫玉科技创始人、法学博士、计算机博士生王运嘉在谈及区块链法律、科技、基础设施时表示:区块链解决了数据一致性(不可篡改性)的问题,却忽略了主体(身份)有效性的问题,所以,真实的数据+有效的身份=合法的价值=区块链基础设施,而这种结合的最典型的应用场景之一就是USDT,想要实现这种融合,关键突破点在于数据不但真实还得兼顾隐私,身份不但有效还得兼顾匿名。王运嘉还指出,企业要积极学习和接纳新技术,否则就会被竞争对手超越,会被用户和市场抛弃,但新技术应用的前提是必须合法合规,监管也应当与时俱进,毕竟监管也是国家之间的核心竞争力之一。[2018/8/15]
上图中这笔交易的发起者,不知道是因为搞错了还是什么,我们可以看到这个交易,只有一个收款地址没有找零地址,所以除了收款地址收到的0.001个BTC之外,剩下的291.2409个BTC全部都变成了矿工的手续费了。
但是现在的加密货币钱包软件都是非常人性化的,照顾到了一些总是忘记或者压根就不知道需要设置找零地址的人,会自动帮用户去生成1个找零地址和手续费,如果你觉得钱包自动设置的手续费太高了,也可以进行下调,或者如果你想要交易被尽快确认的话也可以调高手续费。
04.旷工对UTXO进行校验
作为矿工,打包前要考虑3个问题:
1、发起交易者的地址里是否有足够的UTXO
也就是说是否有足够的比特币,矿工会查看交易者的UTXO集,旷工可以从这个集合里面去查询发起者交易的地址当中是否有足够的余额,如果余额不足,交易无效。
2、发起者的这笔交易使用的比特币是否是双花
矿工去查询区块链账本上的数据,检验这笔交易发起者之前是否已经用这笔比特币买过其他的东西,如果使用的UTXO已经支付过给别人了,存在双花的问题,那么这笔交易就不能通过矿工的交易校验。
在美上市区块链中概股涨跌各异:人人网(RENN)收涨0.34%,寺库(SECO)收跌1.32%,兰亭集势(LITB)收涨4.04%,中网载线(CNET)收涨1.72%,迅雷(XNET)收涨1.36%,猎豹移动(CMCM)收跌1.23%。[2018/6/6]
3、发起者能否提供合法的私钥签名
合法的私钥签名用来证实发起者对这个比特币地址是有控制权的,如果不能提供私钥签名,那么矿工就会判定他发行的这笔交易是非法的,不能通过检验。
脚本语言在区块链中是一个比较抽象的概念,但也是一个非常重要的功能,我们经常会说比特币系统是图灵不完备的,以太坊是图灵完备的,这其实是在说他们的脚本是否图灵完备,图灵完备是对计算机能力的描述,指可以实现所有可编程计算机能够执行的计算逻辑。
一个图灵完备的脚本语言可以发挥计算机所有的能力,反之一个图灵不完备的语言是不能发挥计算机的所有能力的。比如在比特币系统当中,它的脚本是不图灵完备的,只能进行比特币的接收和发送,而以太坊的脚本是图灵完备的,或者严格说起来其实是半图灵完备的,它除了可以进行以太币的发送和接收,还可以部署智能合约,实现更多的功能。比特币的脚本是智能合约的雏形,但它不是图灵完备的,可是这里要说明一点:不图灵完备并不意味着就是一个缺陷,因为图灵完备涉及到的技术非常复杂,容易引发安全漏洞。
比特币的设计初衷只是想做一个现实生活中的支付货币,货币的交易和流通安全是第1位的,他想简简单单一点,以太坊的创始人“V神”曾经和比特币的核心开发团队建议,把脚本变得更丰富一点,但是被拒绝了,所以他之后就创造了脚本语言更加丰富的以太坊。
比特币的脚本系统是一个先进后出的堆栈模型,什么是堆栈?堆栈也是一个计算机科学里经常使用到的比较抽象的数据类型,堆栈的物体有一个特性,最后一个放进堆栈的物体总是会被最先拿出来。我们可以把堆栈想象成一个箱子,你往箱子里面先是放了一本书,然后放了一个帽子,最后放了一把剪刀,如果要拿出来,顺序是剪刀、帽子、书本。
所以最先进入箱子的东西是最后拿出来的,这就是一个先进后出的堆栈模型,或者后进先出的堆栈模型,堆栈中两个最重要的操作是push和pop,push操作是加入一个元素,pop操作刚好相反,是移走一个元素。
如上图:大家先看inputscripts输入脚本,输入脚本也叫做解锁脚本。
第1条指令是pushdata,pushdata意思就是说把数据推入堆栈,71是指这条数据大小是71个字节,它是用16进制的格式来表示的。
。
第2条指令是pushdata,也就是把这33个字节长的数据也推入堆栈。
那么推进去的这些数据到底是什么数字呢?第1条指令推入的数据是私钥签名,第2条指令推入的数据是公钥。现在这个堆栈里面有2层数据,第1层是发起方的私钥签名,第2层是发起方的公钥。
outputscripts
然后我们再来看看outputscripts输出脚本,输出脚本也叫做锁定脚本。
第1条指令是dup,dup是duplicate的缩写,dup就是把栈顶的数据复制一份。
第2条指令是hash160,也就是把发起方的公钥进行hash160运算得到公钥哈希。
第3条指令是pushdata,将后面这20个字节的数据即公钥哈希值推入堆栈。
验证交易
到这里所有验证交易是否合法的信息都已经推入到堆栈了,接下来就可以进行验证了。
第1步是equalverify,equalverify就是验证判断两样东西是否相等,在这里也就是需要判断比较栈顶的两个数据是否相等。
为什么要做这一步呢?堆栈里面它的第3层的公钥哈希值是从输入脚本inputscript里推导出来的,而第4层的公钥哈希值是从outputscript输出脚本里面拿出来的,输出脚本也叫锁定脚本,锁定脚本这个公钥哈希值是地址,是区块链上大家都能查到的,但是输入脚本的公钥哈希值是只有拥有对应公钥的人才可以算得出来的。
前面我们讲过,非对称加密的私钥和公钥,私钥是要自己保存好的,公钥可以去分享给别人,私钥到公钥是一个单向的推导过程,不能反推,但是因为量子计算机的出现,它是一个非常强大的计算机,有可能做到从公钥反推出来私钥。
一开始设计的时候,中本聪是直接拿公钥作为地址的,这是非常不安全的,后来程序员们把公钥的哈希值进行编码作为地址,而量子计算机目前还没有办法做到直接从地址反推出来私钥。
因此现在比特币区块链上,私钥和公钥都是大家轻易不会拿出来分享的,如果你想要使用一个地址里的比特币进行转账的话,那么你首先得先提供对应的公钥,让旷工可以检查,你是这个地址的拥有者,因为你有相应的公钥。第1步的检查就是把发起者输入脚本里的哈希值和输出脚本里的哈希值进行对应,看是否是相同的,如果是相同的,就先通过了第1道检验。
接着是第2步检验叫checksig,就是利用发起者的公钥对签名进行检查,检查通过后可以确认这笔交易是本人发起的。
以上就是比特币的UTXO模型校验的过程。
04.量子计算机
量子加密是加密技术第7代密码学技术,它的上一代是RSA加密系统,RSA是现在应用范围最广泛的加密手段。比特币采用的是椭圆曲线ECC算法,单位安全强度是要强于RSA算法的。但无论是ECC还是RSA,这两种加密算法在量子计算机面前都还不够强大,很容易会被破解,量子计算机一旦成功,对目前网络、通讯、通信和银行上的RSA加密算法会构成威胁。
比特币系统中的加密算法一共是两种,一个是椭圆曲线算法,一个是哈希算法,椭圆曲线算法是用于私钥到公钥,哈希算法是用于公钥到地址。私钥到公钥的推倒过程原本是不可逆的单向的,公钥不可能反向推导出私钥,因为公钥反推私钥的工作量非常的大,目前的计算机是无法胜任如此大的工作量的。而最新的量子计算机被认为是可以做到从公钥反推私钥的,甚至有人说量子计算机投入使用的时候就是比特币的终结之日。
最近有很多媒体都在报道谷歌研发的量子计算机取得了不小的进步,谷歌的研究人员表示,谷歌的处理器可以在3分20秒之内完成目前全球排名第一的超级计算机需要1万年才能完成的计算,按照一位普利茅斯大学教授的估计,量子计算机可以在几分钟之内就从公钥反推出私钥是什么,而在知道所有私钥之后就可以拥有对应地址的比特币的转账权利了。
所以比特币系统没有直接拿公钥来作为地址,而是拿公钥哈希值进行编码之后作为地址,公钥到地址之间多的这一步哈希处理就是为了在量子计算机面前多放一个障碍,有了这个哈希函数,目前的量子计算机还无法有效的破解比特币的私钥,直接从一个地址去反推私钥,这是目前量子计算机还无法做到的。
但是UTXO模型里,我们看到了当你在一个地址里面发起一笔转账的时候,你的脚本里面就暴露了这个地址对应的公钥。所以我们在使用比特币地址的时候,还是建议大家只使用一次性的地址,也就是说这个地址一旦发生过向外的转账,你后面就不要再去用它了,你进行转账的时候就把你们的钱全部转出,因为在转账的时候,这个公钥已经暴露在区块链上了,量子计算机已经足够强大了,它可以做到在几分钟之内从公钥反推私钥,所以如果一个地址反复的去用,公钥已经在网络上暴露了,它是非常的不安全的,我们可以把这些比特币转到一个新的还没有使用过的地址里面,那这个地址它的公钥是没有暴露的,暂时还是安全的。
标签:比特币BTC区块链比特币中国官网联系方式40亿比特币能提现吗比特币最新价格行情走势BTCs是不是黄了btc钱包官网btc短线交易局区块链工程专业学什么区块链存证怎么弄区块链技术发展现
源:Unitimes 当以太坊2.0信标链在今年晚些时候启动时,它将需要验证者(validators)来保护网络.
1900/1/1 0:00:00频繁交易 关于交易的频率,多少次交易才算频繁交易?这在数量上并无明确的标准,因为这跟每一个人的交易水平和层次有着直接的关系.
1900/1/1 0:00:00当我们接近2019年第一季度末时,整个加密货币市场都有很多值得鼓励的事情。在熊市已经很难,声称超过几伤亡更多。然而,真实的故事是该行业许多顶级项目取得的值得注意的进展.
1900/1/1 0:00:001.BIS报告:代币化证券、央行数字货币等支付基础设施将是未来的趋势。2.研究:在过去三次美联储降息中,比特币的表现表明其不是避险资产。3.基于以太坊的去中心化交易所月交易量创历史新高.
1900/1/1 0:00:00如果说有什么决定性文化特征促成了“币圈黄埔军校”成功的话,那就是该公司的实用主义。 2014年至2019年初这段时间里,我一直在Coinbase工作,见证了Coinbase公司从一家只有几十名员.
1900/1/1 0:00:00对于许多人来说,“赏金猎人”这个词会让人联想到顽固的个人的电影或电视场景,他们追捕那些被判犯罪但在面临入狱之前逃离的顽固犯罪分子.
1900/1/1 0:00:00