专栏名称: IOTA埃欧塔
IOTA中国社区欢迎您来到IOTA世界!关注我们,带您了解IOTA的一切!IOTAChina.COM
目录
相关文章推荐
中国航务周刊  ·  外运集运东南亚新航线,2月22日即将起航! ·  昨天  
中国航务周刊  ·  唐山港转让子公司100%股权 ·  2 天前  
中国航务周刊  ·  学习AI,祈福货代!ISEA上海口岸举行闽南 ... ·  2 天前  
中国航务周刊  ·  参加民营企业座谈会、与MSC战略合作,这家中 ... ·  3 天前  
中国航务周刊  ·  山东港口2025年世界级海洋港口群建设(烟台 ... ·  3 天前  
51好读  ›  专栏  ›  IOTA埃欧塔

开源P2P电子商务项目Tanglefy的交易拆分探讨

IOTA埃欧塔  · 公众号  ·  · 2018-05-26 22:11

正文

前天,我们提到了由IOTA和Tangle支持的开源P2P电子商务项目-Tanglefy,这种去中心化的电商平台完全摒弃了传统平台疯狂的从顾客(卖家、买家)身上榨取利润的作法,他们不仅从顾客身上收取各种费用,甚至利用顾客的个人信息再次牟利。


而基于IOTA的Tanglefy则大大减少了传统平台的各种费用,分布式帐本技术则让P2P电子商务变得更加透明,安全,并尊重用户的隐私,为参与各方(包括卖家、买家、平台以及Tangle)带来众多益处。


我们同时在上述文章中提到Tanglefy开发团队目前正在研究交易的拆分,其开发者之一Lewis Daly在近日发表了一篇博文,讲述了这个功能的目的,他们计划如何实现这个功能以及存在的问题和其中的利弊,感兴趣的朋友可以关注一下,甚至可以与项目团队取得联系,直接与他们探讨或者把你想到的更优秀的方法告诉他们。



为什么要拆分交易?

我最近加入了Tanglefy团队,帮助他们构建电子商务的未来。


我们首先需要解决的一个关键挑战是如何实现一种在Tangle中拆分交易的方法。在Tanglefy的情况下,平台可以通过这种方式收取少量的费用来维持运营。我们也可以想象由于其他原因的需要而拆分交易,例如,你可以使用这种方法在产品销售时自动向供应商付款,或者一个产品可以有2个或更多的参与方一起销售,每一方都会获得预先确定的收入分成。


现在我要指出的是,这是一种集中式的交易拆分方法,截至目前,IOTA无法像其他分布式分类帐技术一样以无需信任的方式对此进行操作。我们希望,随着神秘项目Q的正式发布,我们能够扩展这一想法。


在这篇文章中,我将概述我们如何计划在Tangle中实现这种交易拆分的基本架构。


这种方法是否完美?不。

这种方法是否会面临一些安全缺陷?有可能。

这对我们双方来说都是一个学习的机会吗?是的。

让我们在下文中深入探讨。


整体的设想

下面是我们需要采取的步骤,以便将Tangle中的单笔交易转化为2个或更多。


在我们做这个之前,让我们取一些名字先:

  • 我们将拆分交易的服务视为拆分网关。

  • 我们把从买方到拆分网关的第一个交易称为输入交易。

  • 从拆分网关到卖方的交易称为输出交易。


一个订单中的交易拆分流程:

  1. 买方查询拆分网关API并获取他们应该支付的地址(注:这是一次性地址)!

  2. 拆分网关创建一个pending状态的新交易记录。

  3. 买家通过Tanlge支付,然后通知拆分网关已付款,以及一些识别元数据,例如交易和bundle的id。

  4. 拆分网关等待交易在Tanlge中确认,然后它根据定义的规则将输入交易的价值划分为(比如,50-50,或更多的70-30分割)。

  5. 然后,拆分网关获取输出交易的每个地址(例如Tanglefy和卖方)。

  6. 把这些交易提交给Tangle。

  7. 一旦所有输出交易都被确认,拆分网关就会将交易状态更新为“已处理”状态。

  8. 最后,通知卖家发货,并通知买方交易已成功完成。


上述的情景是否合理?我仍然需要一些帮助,所以我画了一些图片来帮助大家更好的理解:



可能的缺点

以上方法需要解决一些问题:


交易失败的情况如何处理?

IOTA免费的优点让我们不会把钱浪费在收费上,但我们仍然需要一种容错方案,并且可以回滚交易。也许在步骤1中,如果任何下游支付失败,用户可以发送给拆分网关一个可以支付退款的地址。这种方法存在的一个问题是,由于下游的支付需要被撤销,因此拆分网关可能会被掏空。


这种方法依赖于第三方的状态。

是的我知道。理想情况下,我们可以通过Tangle来管理状态。我目前正在使用MongoDB来跟踪输入和输出交易的状态。也许我们可以想出一个巧妙的方法来维持在Tangle中的状态,但我们仍然需要一个数据库来管理用户登录,api Key等。


DDOS

我们不必太担心这一点,因为如果输入交易的价值为0时,我们可以简单地确保不启动下游交易即可。也许唯一需要担心的是大量的小型交易,但是再次申明,这是IOTA的全部特性之一。


获取下游支付地址

这是我有点担心的一个。由于地址重用的预防措施,因此每次为下游付款获取新地址都是理想的选择,以防卖家重复使用地址的情况发生。对于输入支付,这不是问题,因为我们可以使用拆分网关来存储种子,但是如果输出交易的其中一个收款人从那个地址中花费,我们就会遇到麻烦。


一种选择是为每个收款人创建一个持仓账户(holding account)。然后收款人可以手动清空这个账户,每次给我们提供一个唯一的地址。另一种选择是每个收款人都运行一个小型服务器,可以根据其种子生成一次性地址。拆分网关可以与服务器进行身份验证,每次需要付款时都会获得一次性地址。


我得仔细考虑一下。

如果我们解决这个问题,这种方法可能是提高在Tangle中的支付效用的一种好方法。向DLT中添加费用是为了更好的免费,它使新的应用和服务能够以小额支付方式存活并提供更好、费用更低廉的服务。我们需要让服务长期稳定的运营,对吧?


我甚至可以想象,在某个阶段,这些拆分网关可以向其他拆分网关支付,这使得复杂的货币路由变得超级简单,这一切都要归功于Tangle。


正如我上面所说的,我已经在建立一个POC来研究这种方法的可行性如何。我相信我会继续学习。如果您有兴趣与我们共同探讨,请查看我们的repo。事实上,如果您想在这个项目上有所贡献,请随时与我们取得联系!目前我们正在寻找各种开发人员。


我想我肯定会多次修改这个设计,并且我会喜欢你的建议和意见!欢迎随时在IOTA discord上联系@lwilld。

英文链接:

https://medium.com/@lewdaly/splitting-transactions-on-the-tangle-ed02676ccd74

Tanglefy介绍:







请到「今天看啥」查看全文