注意:此博客文章的目标受众主要是熟悉区块链和智能合约的开发人员。并非所有开发人员都具有丰富的经济和金融背景。因此,我们建议您阅读关于这些金融方面的博文。
定义“智能发票”
我们的目标是展示我们如何使用智能合约来指定和执行现实世界发票的支付,从而将钱从买方转移到卖方。更具体地说,我们希望实现一个功能,以确保一旦买方接受发票,他就承诺在到截止日期进行付款。
创建以太坊智能合约时会存在某些限制,这些限制会影响如何构建满足这些目标的解决方案。
在以太坊上,不可能执行“触发器”,“事件驱动编程”,“观察者模式”和类似的范例,在这些范例中,某些事情需要作为对其他事情的分离响应发生。因此,我们无法实施在到期日自动执行付款转帐的解决方案。相反,我们创建了一个流程,保证任何人都可以在达到截止日期后触发付款执行。
国务院:加快区块链技术在冷链物流智慧监测追溯系统建设中的应用:12月31日消息,国务院办公厅近日印发《“十四五”冷链物流发展规划》的通知,其中提到要推动区块链等技术在冷链物流领域广泛应用并加快区块链技术在冷链物流智慧监测追溯系统建设中的应用。[2021/12/31 8:16:07]
我们使用三个智能合约来结算真正的贸易发票,它们是:
智能发票
从设计的角度来看,智能发票合同需要尽可能简单。买方承诺支付,因此有必要审计和理解包括此类承诺在内的所有可能后果。
智能发票包含付款金额、截止日期、付款方和付款受益人。受益人可以由当前受益人更改。所有其他字段都是静态的,这对于买方来说非常重要,以便了解他所承诺的内容。
智能发票代币
我们还要将付款标记化。我们通过为智能发票创建一个erc20令牌来实现这一点。这使持有人有权在基础发票结算后获得部分付款。我们这样做是为了说明智能发票的使用案例,例如在结算前出售您的发票代币以获得提前付款。
美股开盘:美股区块链概念股涨多跌少:美股三大股指全线低开,道指跌0.87%,标普500期货跌0.55%,纳指跌0.09%。美股区块链概念股涨多跌少,柯达下跌0.87%,埃森哲下跌0.71%,overstock.com上涨1.74%;RiotBlockchain上涨2.93%,MarathonPatent上涨3.63%,Square上涨2.55%。[2020/11/18 21:06:42]
钱包
买方和卖方都创建并控制他们自己的智能合约钱包。这个钱包可以保持价值,在我们的案例中是DA并I与智能发票发生交互。买方可以承诺通过他的钱包支付给定的智能发票。承诺意味着任何人都可以强制买方钱包在到截止日期支付发票。
端到端测试观察
使用以太坊的最大挑战之一是获得对解决方案的高度信任。对于需要通过实施的大量资金的企业部门尤其如此。
声音 | 国家信息中心主任:区块链应用场景正在向供应链、数字版权、食药可追溯等多领域持续渗透:金色财经报道,11月12日,由中国工程院、深圳市人民政府、国家开发银行和国家信息中心共同主办的 “2019战略性新兴产业培育与发展论坛”在深圳召开。国家信息中心主任刘宇南表示,当前,战略性新兴产业领域的跨界发展趋势日益明显。区块链方面,从全球来看,区块链应用场景已基本实现从最初的数字货币和矿机制造向金融服务的延伸,目前正在向供应链、数字版权、食药可追溯等多领域持续渗透,在政策、资金和市场的多重推动之下,未来产业发展动力充足。展望未来,战略性新兴产业发展空间广阔,作为引领性、融合性强的产业领域,特别需要开放视野、创新思维和广泛合作。[2019/12/11]
在这个项目中,我们关注的是围绕单元测试的工具和开发。在本节中,我们使用端到端测试来解释创建、标记化和执行发票付款过程中涉及的所有步骤。
行云数字科技将做区块链+跑步机,垂直各家知名连锁健身房展开合作:行云数字科技今日宣布,公司将进军智能电子设备行业,要在“区块链+整个电子设备全领域+体育运动”领域将区块链技术落地应用。目前,行云数字科技第一步将要做的是区块链+跑步机,垂直各家连锁健身房展开合作。[2018/1/18]
用于开发的技术堆栈由:node.js、typescript、solidity和truffle框架组成。以下代码段是端到端测试的一部分。我们还使用一个简单的cli在mainnet上执行了一个引导。在此过程中我们结算了一张真实的发票,并在下面的步骤中为我们的polit添加了Etherscan链接。
1.买方和卖方应各自拥有一个含有以太坊的帐户。
第一步是检查买方和卖方是否在其账户中都有以太币。他们都必须支付在以太坊区块链交易所含的gas费用。
2.买方在其账户中存有DAI。
我们可以使用任何符合ERC20标准的加密货币来完成这个项目,但我们选择了DAI。首先,我们要求使用“稳定币”,因为任何企业都不会接受加密货币汇率风险。其次,我们与Maker建立了合作伙伴关系。
在此步骤中,我们将DAI添加到买方的帐户中。我们使用'BigNumber'依赖关系来转换所需格式的和。
3.买家创建钱包
买方钱包可以持有DAI代币并与智能发票进行交互。
4.卖方创建钱包
5.卖方为买方创建一张贸易发票。?
通常贸易转移平台上会创建发票。发票ID将用作智能发票标识符。为了我们的项目,我们创建了一个对象并添加了所需的属性。
在试点中,我们使用了真正的贸易发票。
6.卖方为贸易转移发票创建智能发票和代币。??
这是卖方创建智能合同实例的步骤,该实例“wrap”有关自执行发票的所有必要信息。
现在我们创建了一个智能发票。我们只需要买方承诺。
7.买方承诺支付智能发票。
?买方验证智能发票中的承诺金额是否与在贸易转移平台上创建的初始发票上确定的金额相同。之后,他承诺在执行之日支付。
8.卖方拥有所有发票代币并确认买方已承诺支付。
现在是卖家的行动时间。他首先检查买方是否兑现承诺。至于我们现在关注的是,我们等到截止日期,然后卖方将触发智能发票执行。
9.截止日期到期
即使在整个这一步骤中没有任何代理实际上采取任何行动,我们认为如何测试时间是否实际按预期进行测试将是非常有趣的。
10.买方将DAI转移到自己的钱包中
通常,在到截止日期期,买方应该已经将DAI转移到自己的钱包中。以防买方没有足够的钱支付,在付款的时候,超出了这个项目资金的范围。
11.卖方触发支付智能发票
是时候卖家结算智能发票了。?我们检查智能发票状态是否设置为“已提交”。这是真的,因为我们看到买方承诺在步骤7付款。此时卖方触发智能发票。
由于每个代币代表正好1DAI,我们将令牌余额与发票金额进行比较,以查看它们是否匹配。
12.卖方以交换DAI的方式兑换发票代币
现在卖方已经结算了智能发票,他可以赎回买方欠他的DAI金额。
13.卖方将DAI从钱包转移到自己的账户
我们现在有了一个完整的流程,两个代理在他们之间建立智能发票。如果供应商希望从他的钱包中取出DAI,他可以这样做。我们已经包含了这个测试步骤,这样我们就可以正确地从头到尾地跟踪资金。
最后的想法
这个试点是关于想象智能发票在以太坊世界中的运作方式。?显然,这个项目并不支持大量的发票发送,而是为了说明智能合约和区块链如何适应B2B领域。
本文转载公众号:区块链研究实验室,专注区块链技术,产品社群,经济模型等全方位的知识体系输出,为大家带来不一样的社群学习体验。欢迎联系作者微信加入社群:csschan1120??
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。