如此神奇,你会想知道数字货币是如何在没有互联网的情况下实现“离线”支付的吗?
数字货币,也称为加密货币,恰好是区块链魔力的结果,在密码学背后,以及公钥私钥系统 (PKI) 和数字签名。
在每部手机上,都会有一个公钥私钥生成应用欧易交易所,这个应用充分利用了随机性,每次运行,都会产生一个唯一的公钥和私钥对,这个对,不会与历史上已经产生的对重复,将来也不会重复。如果非要严谨的话,重复的概率还是很小的,但是如果位数足够长,几乎可以忽略不计。
公钥用作用户的账号,确保每个用户以不同的方式运行应用程序,并且可以公开接收其他人发起的付款。私钥是唯一的,只有运行应用程序的用户知道,它是一个高级密钥,只有用户知道,不应向任何人披露。将来,对于每个用户发起的付款,必须使用此私钥签署交易。由于私钥只有用户知道,如果任何交易是用这个私钥签署的,那么它只能是用户的行为,这是不可否认的。如果用户泄露了私钥,用户只能对自己负责,不能由其他人替他扛锅。
有了这些基础知识,是时候了解数字货币的离线支付了。
假设 Alice 想向 Bob 支付 10 种数字货币。Alice 和 Bob 都有自己的移动数字钱包。碰巧 Alice 和 Bob 在荒野中,没有手机信号,也没有网络,但 Alice 和 Bob 的手机可以通过蓝牙、点对点或二维码相互通信。既然大家都熟悉扫描二维码支付,那么我们假设它们也是通过二维码完成的。
首先,Bob打开手机数字钱包,点击二维码进行收款,这时,手机会显示收款二维码,其实二维码中包含的信息主要是Bob的手机钱包地址,也就是Bob的公钥。
然后,Alice 打开手机上的数字钱包,打开摄像头,扫描 Bob 的二维码收款,这实际上是 Bob 的公钥。这时,Alice 将 Bob 的公钥、自己的公钥以及 10 种数字货币的支付信息打包成一笔交易,然后用只有 Alice 知道的私钥对交易进行签名,但没有网络就无法写入链上。当然,移动端的数字钱包,会检查 Alice 是否有足够的数字货币来支付。您可能会说 Alice 正在使用钱包,没有足够的钱来打包和签署交易。但这没关系,我们仍然认为这是正常的。然后,Alice 的数字钱包会生成一个 QR 码,供 Bob 扫描已签名的交易。
接下来,Bob 扫描 Alice 的移动数字钱包上的二维码,保存了只包含 Bob 的公钥、Alice 的公钥和支付 10 个数字货币的信息的交易,因为此时没有网络,无法写入链上。目前,Alice 是一个诚实的人,使用普通的数字钱包。此时,暂时认为离线支付已完成。
这就像 Alice 给了 Bob 10 美元的现金,双方都记下了 10 美元现金的序列号并亲笔签名。至于那 10 美元是真是假,鲍勃暂时无法验证。直到有一天鲍勃去了银行,他才知道这 10 美元的真伪。
在没有互联网的期间,Alice 可以继续使用类似于上述流程的流程向不同的人付款。
好吧,Alice 或 Bob,回到繁华的城市,手机信号可用,互联网可用。此时 Alice 在线,手机钱包会将已签名的交易写入链上,如果没有问题,则正式写入链上。如果 Alice 故意不连接互联网,或者交易是假的,那么链上就没有交易的信息。此时,我们所要做的就是等待 Bob 上线。一旦 Bob 上线,他就会把 Alice 传给他的交易准备写上链,如果成功了就OK,原来的线下支付现在已经上线了。付款和交易正式完成。
问题在于,如果 Alice 故意作弊,使用数字钱包,或伪造交易,或者没有足够的钱来签署交易,那么 Alice 和 Bob 将无法成功将交易写入链上。此时,相当于 的交易不成功。如果 Alice 诚实并使用自己的私钥签名okx,Bob 仍然可以找到 Alice 并要求她再次付款。如果 Alice 不诚实并且不使用自己的私钥,那就有问题了。为了避免这种情况的发生,那么 Bob 最好等待 可用,验证后,他将向 Alice 发货或提供服务。这与现实世界中假币只能通过去银行来检测(先忽略验钞机)相同。
从这个角度来看,离线支付对双方来说都是完全没有问题的。对于不诚实的付款人来说,线下是有问题的,不写到线上和链上是没有办法解决的,就像不去银行不解决,现实世界中的假币不解决一样。只有在事后才能实现问责。
至此,谜团解开了,你明白背后的魔力吗?
网友评论