LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > 离线支付如何实现

离线支付如何实现

2020-05-22 智慧链技术社区 来源:区块链网络

试想一下如果两人在没有网络的状态下A可以转帐给B,转账的过程是不是一件非常神奇的事,而在wisdom chain的白皮书中,我也看见了Wisdom Chain支持离线支付。

原话是这样“Wisdom Chain将会提供对离线支付的支持,离线支付是对链上在线支付的补充形式,意在为用户提供更快捷方便的小额支付。”

今天就来详细的了解下离线转账是如何实现的。

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

公钥作为用户的账号,保证每个用户每次运行应用都是不同的,可以公开出去,用来接收别人发起的支付。私钥,也是唯一的,而且只有运行应用的用户才知道,是个高级秘密,这个秘密只有用户自己知道,也不应该透漏给任何人。

对每个用户发起的支付,必须以这个私钥来对交易进行签名。由于私钥只有用户自己知道,如果,有任何的交易,用这个私钥签名了,那么一定只可能是这个用户所为,不可抵赖。如果,用户泄露了私钥,用户也只能自行担当了,没有别人能够替他背这个锅。

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

假设A要给B支付10个WDC。A和B都有自己的WDC Space(为了方便阅读,以下用“钱包”一词代替WDC Space),此时A与B都在荒郊野外,没有网络的环境下,但是A与B手机之间是可以通过其他方式连接,如(蓝牙、红外线、二维码),这里以二维码连接为例。

如果A此时要转10WDC给B,那么B需要打开钱包,点击二维码收款,这时B的钱包显示了收款二维码(收款地址也是B 钱包的公钥)。

其次A打开钱包,打开扫一扫并扫描B的收款二维码,得到了B的公钥。这时,A把B的公钥,自己的公钥和支付10个WDC的信息,打包成一个交易,然后用只有A自己知道的私钥,给这个交易签名,但是没有网不能写到链上。

在这个过程中,钱包会检查A是否有足够的WDC来支付。当然你可能会想到如果A用了一个被黑的钱包,没有钱也能打包和签名这个交易,这里我们暂时考虑都是正常的。

然后,A的钱包把这个签名的交易生成一个二维码让B扫描。

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

这个过程,可以理解为A给B开了张支票,至于这张支票能不能兑换还需要到银行去验证。

而在没有网络的期间A还可以给不同的人转账,操作流程如上。

当A或者B到了一个有网络的地方,这时候A的钱包会把签名的交易准备上传到链上,如果交易没有问题,链上就会生成区块。当然这是保证A与B都是诚实的人。

但是如果A是一个骗子呢?

他用了hacked的数字钱包,或者钱不够签名了交易,那么这笔交易自然是没有成功的,如果能够找到A那么,自然可以追回损失,但是找不回A那麻烦就大了,所以为了避免这种麻烦,离线支付一般采用的是单离线,保持一方在线,能够验证交易。

由此看来,离线支付,如果双方是诚实节点,那么没有问题,但是有不诚实的节点完全离线支付那的确是一件危险的事情,如果离线钱包设置一个离线支付的小额度,类似信用卡这类,是可以减少收款者因不诚实的付款者的损失。但是钱包的运营方为什么要为不诚实的支付者做最后买单人呢,这也是一个问题。

所以你是否明白了Wisdom Chain白皮书支持离线支付中的最后一句“意在为用户提供更快捷方便的小额支付”,因为完全的离线大额支付,存在着巨大的经济风险。

—-

编译者/作者:智慧链技术社区

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...