搜索

数字货币为什么可以离线支付

2021-06-15 16:01:44
11061 3 1

常看到数字货币的文章写,“过不了多久,你的手机上,就能用上央行的数字货币,支付可以“离线”进行,不用网络和手机信号,手机和手机之间碰一碰,就可以完成。”

这么magic,你会不会很纳闷,都没有网络,数字货币怎么能够实现“离线”支付呢?

数字货币,又称加密货币,这恰好是区块链的魔力所致,后面的密码学,和由之而来的,公钥私钥体系(PKI),和数字签名。

每个手机上,都会运行一个公钥私钥生成应用,这个应用充分利用了随机性,每次运行,都会产生一个唯一的公钥和私钥对,这个对,不会和历史上已经产生的对重复,而且今后也不会重复。如果非要严谨,唯一仍然有很小很小很小的概率会重复,但对的位数足够长的话,几乎可以忽略不记。

公钥作为用户的账号,保证每个用户每次运行应用都是不同的,可以公开出去,用来接收别人发起的支付。私钥,也是唯一的,而且只有运行应用的用户才知道,是个高级秘密,这个秘密只有用户自己知道,也不应该透漏给任何人。以后,对每个用户发起的支付,必须以这个私钥来对交易进行签名。由于私钥只有用户自己知道,如果,有任何的交易,用这个私钥签名了,那么一定只可能是这个用户所为,不可抵赖。如果,用户泄露了私钥,用户也只能自行担当了,没有别人能够替他背这个锅。

有了这些基础知识,那么接下来就好理解数字货币的离线支付了。

假设Alice要给Bob支付10个数字货币。Alice和Bob都有自己的手机数字钱包。正好Alice和Bob都在荒郊野外,没有手机信号,没有网络,但Alice和Bob的手机之间是可以通过蓝牙,或是点对点,或是二维码通讯的。因为大家都熟悉扫描二维码支付,那我们就假定他们之间也是通过二维码来完成的。

首先,Bob打开手机数字钱包,点击二维码收款,这时,手机显示收款二维码,其实,二维码里包含的信息主要是Bob的手机钱包地址,也就是Bob的公钥。

接着,Alice打开手机数字钱包,开启摄像头,扫描Bob的收款二维码,其实就是得到了Bob的公钥。这时,Alice把Bob的公钥,自己的公钥和支付10个数字货币的信息,打包成一个交易,然后用只有Alice自己知道的私钥,给这个交易签名,但是没有网不能写到链上。当然,手机数字钱包,会检查Alice是否有足够的数字货币来支付。你可能会说,Alice用的是一个hacked钱包,没有足够的钱也能打包和签名这个交易。但没关系,我们仍然假定是正常的。然后,Alice的数字钱包把这个签名的交易生成一个二维码让Bob扫描。

接下来,Bob扫描Alice手机数字钱包上的二维码,把刚才包含Bob公钥,Alice公钥和支付10个数字货币的信息的交易保存下来,因为这时没有网,不能写到链上。暂且认为Alice是个诚实的人,而且使用的是正常的数字钱包。这时,暂且认为离线支付已经完成。

这个过程,就如同Alice给了Bob 10元现金,双方都记下了10元现金的序列号,并且手写签名。至于这10元是真钞还是假钞,Bob暂时没有办法验证。直到Bob某天去银行,才知道这10元的真伪。

在没有网的期间,Alice还可以继续给不同的人支付,就用类似上面的流程。

好了,Alice或者Bob,回到了繁华的市区,手机信号有了,网络有了。这时,Alice上网了,手机钱包会把签名的交易准备写到链上,这时,如果交易没有问题,就会正式写到链上。如果Alice故意不联网,或是交易是伪造的,那么链上没有这次交易的信息。这时,只有等着Bob上网了。Bob一上网,就会把Alice传给他的交易准备写到链上,成功的话,everything is OK,原来离线的支付,现在上线了。正式完成了支付和交易。

问题来了,如果Alice故意作弊,用了hacked的数字钱包,或者是伪造了交易,或者钱不够签名了交易,这时Alice和Bob要把这个交易写到链上都不会成功。这时,相当于离线的交易没有成功。如果Alice是诚实的,用的是自己的私钥签名的,这时Bob还能找到Alice,让她重新支付。如果Alice是不诚实的,用的都不是自己的私钥,那这种情况就麻烦了。为了避免这种情况发生,那么Bob最好等有网了,验证之后,再给Alice发货,或是提供服务。这和现实世界中的假币到银行(先忽略验钞机)才能被发现一样。

由此看来,离线支付,对诚实的双方来说,是完全没有问题的。而对不诚实的支付者来说,离线是有问题的,不到上网写到链上是没法解决的,就如同不到银行,现实世界的假币也没有解决。只能通过事后追责。

到此为止,谜底解开了,你是否明白了后面的magic。




热门回帖
jyRNK4NZ
jyRNK4NZ
水手 船龄 3个月
呵呵,所以离线交易也需要有网的时候确认正确性, 所以离线交易就是伪命题,不存在安全的离线转账,
2021-06-16 0
#2
jyRNK4NZ
jyRNK4NZ
水手 船龄 3个月
标题可以改了,哗众取宠
2021-06-16 0
#3
D3大坑受害者
D3大坑受害者
海盗王 船龄 3.4年
双花问题如何解决?
2021-06-16 0
#4
热帖推荐
牛头大哥
牛头大哥
管理员 船龄 1.9年
【提问有奖】Neo 从2.0到N3,是版本迭代还是蜕变飞跃?
2020年,我们迎来了“DeFi之夏”;2021年,我们见证了NFT出圈。与此同时,DAO、存储、DID等领域也产生了许多落地应用,让市场逐渐看到了区块链的价值。区块链从早期的炒作阶段到如今的落地盛年,底层基础设施公链也随之不断迭代、升级和创新。除了要支撑大规模交易量外,链上应用对公链的功能特性要求越来越高。为了保证去中心化和安全性,链上治理也成为了当下公链的探索方向。关于Neo:Neo是一个由社区驱动的开源平台。利用区块链技术与数字身份,开发者可以通过智能合约实现资产管理数字化与自动化。Neo致力于通过分布式网络建设下一代互联网基础设施,为区块链技术大规模落地奠定基础,以实现智能经济的宏大愿景。自2016年上线至今,Neo主网已稳定运行超过四年。NeoN3预期于2021年发布,将提供更高吞吐量、更强稳定性与安全性,并带来优化的智能合约系统及功能丰富的基础设施集合,旨在赋能开发者并加速企业级区块链创新。Neo官网:https://neo.org本期嘉宾:王佳超,Neo生态拓展总监毕业于澳大利亚MonashUniversity,曾任埃森哲战略咨询顾问,多次成功创业经历,2017年加入Neo,目前主要负责NEO生态发展相关工作。AMA时间:7月29日,周四,下午3点简而言之,N3版本在原来的基础上做了哪些升级?存储、预言机为、DID放在N3的第一层还是第二层?为什么这样考虑?N3网络上线之后,生态发展的重点方向是哪里?Defi?NFT?还是存储?任何与NEO有关的问题,欢迎来聊!提问有奖:AMA结束后嘉宾将选取“优质提问奖”10名,奖励为每人100元微信现金红包。如何参与AMA?在本主题帖下直接回帖提问即可参与,嘉宾将在活动开始后上线回答,欢迎大家围观讨论!如何进群交流?微信扫下方二维码添加小助手(微信号:ljdwudi5520),回复“AMA”,小助手直接邀请进群,快进群跟小伙伴们一起交流探讨吧!
1 天前 | AMA 87837 93
比特币中本聪聪
比特币中本聪聪
副船长 船龄 2.2年
从1000万两周陪到2万是什么体验
前一段时期我经历了人生最大的考验!这时候我天天上班,对单位非常不满,天天气急败坏,用手打墙,五年从没玩过合约,急功近利赌气玩了一周币币合约,想顺势干到7000万,我做多了。小仓位爆仓了,拿现货去补从1000万陪的就剩2万了!最多519那天赔了650万。519当天手一直发抖多少次心如死灰,多少次感觉醉生梦死,多少次想一觉睡死。这种感觉持续了好长时间,幸好这这1000万是我这四年挣的,也没借高利贷,实际本金只有100万。我媳妇也没当回事,一句没责怪我,说就当买个教训了。给大家晒晒图其中有我玩fil3从5万最多到530万,回调到370万提现的图。最后我搞了50万的子弹,这波子弹我能通过我的经验,在这波牛顶能达到500万最低。最低的!拭目以待。还有我这辈子不会玩合约了!
11 小时前 | 区块链社区 27907 51 0
400刀买的bsv
400刀买的bsv
水手 船龄 1个月
涨得太急了
很明显这只是爆一波空军,马上跌回来了
12 小时前 | 区块链社区 34830 26 0