网赚论坛

 找回密码
 免费注册
查看: 394|回复: 0
打印 上一主题 下一主题

比特币离线支付方案

[复制链接]

26

主题

26

帖子

104

积分

Ⅰ级财主

Rank: 1

积分
104
跳转到指定楼层
楼主
发表于 2017-10-21 00:54:44 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
比特币离线支付就是off chain支付,交易不是通过发送和接收比特币完成的,交易数据也不会上block chain。为什么要讨论离线支付方案,其目的有以下几个:
1.快速完成支付
2.不增加block chain的数据量负荷
3.在没有比特币网络的情况下也能完成支付

大家都知道,satoshi的论文里提到为了保证安全,建议一个交易被确认的数量达到6次才认为交易成功,不过比特币网络已经正常运行了快五年了,再要有51%攻击想造出一条假的block chain完全不可能。目前比特币的算力爆涨,涨到一个令普通矿工瞠目结舌的地步,探矿难度提高得吓人,就算有算力大户想51%攻击造假一个block也是非常困难的,但是为了避免双重支付的欺骗,至少还是需要一个确认才能认为交易成功。就算是只需要一个确认,平均确认时间也差不多是10分钟。

现在整个block chain占用的空间约12G,这个数据量不算大,但是我不得不说它现在小是有原因的。目前整个比特币网络每天平均的交易笔数约6万,这样的交易笔数如果和银联比,那真是少得可怜,以工行为例,一个三级城市的日交易笔数都能超过10万。比特币是一个全世界通用的货币,随着比特币的应用推广,使用她的人会越来越多,日交易笔数会越来越大,这样一来block chain的数据量负荷会非常大。肯定会有人说block chain越来越大没有关系,大家都使用瘦钱包。是的,普通大众可以使用瘦钱包,block chain由专门处理数据的服务器来做就行,但是block chain变大对矿工而言却不是什么好事,矿工要负责交易确认,一方面是当前block待确认的交易过多,确认时间变长;另一方面是历史的交易过多,比特币溯源工作变得较麻烦;还有一方面是整个block的占用空间变大,需要的存储更多。不知道现在的矿机芯片设计的存储空间是否足够大,能否应付大量交易的情况。bitcoin-qt就block的空间上限进行过几次调整,目前上限好像是32M,以后这32M是否能够胜我表示担心。

虽然只要有internet的地方就有比特币网络,这比银行的终端要方面多了。找一个有internet的地方就找一个有银行终端的地方容易太多了。但是这并不意味着到处都有internet,总会有些地方因为这样那样的原因断网,就算是有这种恶劣的环境也能用比特币进行支付的话,那就太棒了!

OK,正式开始讨论我们的方案吧:

方案一、银票式
经常看一些古装剧,里面常有拿出银票付账的镜头,动不动一百两,一千两,一万两……银票应该就和宋朝的交子是一回事,先把自己的银子拿到一个钱庄存放,由钱庄签出一张银票,然后拿着银票当货币进行交易,这样一来这些高富帅不用整天背它一万两的银子就能完成价值一万两的交易。同样的道理,把比特币存到一个值得依赖的网站,由网站发行出一个比特币凭证,用这个凭证就可以做交易了。银票式的离线交易有一个鲜活的例子就是796交易所。



在796交易所可以把充入的比特币兑换成BTC码(BTC码是一串字符),又可以随时使用BTC码再把比特币充值到796交易所。




这样的BTC码就是银票啦,可以做交易用。对于796的BTC码我这里有一个建议:请提供一个BTC码有效性查询功能,避免接受BTC码交易的人被无效码和已充值码骗(现在已充值码在充值框中输入后依然显示对应的比特币数量)。
现在已经有一个充值码交易网站支持796交易所的BTC码交易,www.btgtrade.com。
方案效果:可以达到第1、2点的要求,快速完成支付,不增加block chain的数据量负荷。
方案弊端:发行银票的钱庄需要有极要信用,如果钱庄卷钱走人,那比特币就全损失了。


方案二、支票式
比特币发送时会向网络广播一个交易单,一个交易单会包含以下内容:
交易单的ID
发送人比特币来源列表
接收人地址和比特币数量列表
签名
在没有比特币网络的情况下,这样的一个交易单就成了一张支票。



应用场景大概是这样:一个无比特币网络的地方,顾客A向商家B买物品,顾客A发送比特币支票给商家定货,商家B接收到比特币支票,比特币支票就是一张比特币交易单(A发一个数量比特币给B并由A完成了签名),商家B可以认为顾客A已经预定物品,待商家B到有比特币网络的地方,再把这张交易单广播到比特网络,由矿工确认完成后,商家B可以知道这张支票是否是空头支票,用以决定是否向顾客A发货。
这种方式与正常的比特币交易不同,正常交易情况是由顾客A把交易单广播到比特币网络,而这种支票式交易模式是由商家B把交易单广播到比特币网络。这种支付方式其实现实意义不大,原因是要求商家B在无网络情况下交易,到有网张情况下确认,这不是有毛病嘛,何不克服困难一步到位,直接就在有网络的情况下交易得了。
方案效果:可以达到第3点的要求,在没有比特币网络的情况下也能完成支付。
方案弊端:顾客A和商家B都需要有极高的信用,不然商家B容易收到空头支票,顾客A容易被欺诈收不到货。


方案三、钞票式
这种方式就是把不固定额的比特币账户拆分成固定额的账户集合,举个例子:有一个BTC地址记账有10BTC,把这个地址的10BTC转到四个地址,A地址包含5BTC,B地址包含2BTC,C地址包含2BTC,D地址包含1BTC,这样一来,这四个地址可以组合出1BTC到10BTC的任何一个整数支付额。这其实就是使用钞票的方式,一元、两元、五元;当然,为了支付更小或者更大的交易可以制成更小或者更大的固定额的地址。这有什么用呢?这就是在为离线交易做准备,这都需要在有比特币网络的情况下预先制作好。



在一个没有比特币网络的地方,顾客A向商家B买物品,需要支付3BTC,那顾客A就发送B和D两个地址的私钥给商家B,商家B发送确认信息给顾客A后,顾客A删除B和D两个地址的私钥。由于商家B不知道收到的两个地址是否真的包含有3BTC,所以顾客A和商家B之间不光是要发送地址私钥,还需要对私钥进行一次包装,也就是为私钥贴上丝印(面额),表明该地址下包含有多少BTC。
上面描述的交易方式当然需要一个软件来自动化完成,否则顾客A和商家B都可能出现作弊行为。2013年创新中国杭州总决赛一个一自台湾的coinpok团队申称要开发这样一个钱包软件。[链接]
方案效果:可以达到第1、2、3点的要求,快速完成支付,不增加block chain的数据量负荷,在没有比特币网络的情况下也能完成支付。这种支付可以一直离线使用下去,并且就算开发这种支付方式的公司已经跑路了也没有关系,他不能卷走你的比特币,因为比特币存在于你的钱包,而不是他们的网站。
方案弊端:这种方案最重要的是要求钱包软件的安全性,避免存在漏洞导致比特币被偷;这种方案最致命的弱点是交易协议必需闭源,不然被篡改的钱包版本与正式的钱包版本一起交易就会出现欺诈行为,比如制作假币、交易后不删除地址等等;因为闭源,导致钱包开发商又成为一种风险,他可能设置后门偷走你的比特币,比如把你的比特币或者私钥地址发送到他那儿。


结论:
对于比特币这种自由的货币,没有人来管你限制你,但也没有人来保护你,大家都需要通过深入学习比特币原理来武装自己,让自己脱离小白,避免被其他歹人坑杀了。比特币就是一种网络货币,需要有网络的支持才能正常地运行,离线支付只是一种尝试,每种离线支付方案有自己的优势也有明显的缺点,大家需要明白其弊端才知道如何避免损失。


本文参加巴比特“光之锥”开放原创计划。
接受捐助,作者BTC地址:1MrPengMav16pw5Vj3uoT48GPPHfYg1uY9
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

广告合作|Archiver|手机版|小黑屋|财富吧

GMT+8, 2024-11-14 14:35 , Processed in 0.327600 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.1

© 2014-2021 财富吧

快速回复 返回顶部 返回列表