基于智能合约的数据交易的应用讨论

开始讨论之前我们先来看一个场景
假设,我创作了一首歌,并且录成了mp3。这时候我想是不是有人愿意买我的歌,但是同时也会担心会不会被抄袭。好了,现在我们有了两个需求

  1. 产品确权(防抄袭)
  2. 卖出去(这里特指能一手交钱,一手交货)

我们先来看看如何确权。这个方法因该大家都知道,数字签名嘛,将曲谱内容(文本)计算hash,然后用私钥将曲谱签名,搞定。


文件确权

确实确权了,别人只要计算你曲谱的hash,并用你的公钥将签名解密,比对hash就能确定,这个曲谱是你写的。但是mp3文件怎么办?

要将整个文件签名,签名内容太庞大,耗时也长,可行,但是非常不方便操作。那有什么办法既可以确权,又方便操作的呢?这个其实大家也都知道,计算个文件hash,对文件hash签名,再一次,搞定。这里确权问题是解决了,但是又有个新的问题:文件,一定要给到源文件才能验证,文件已经给出去了,也失去了保护文件的意义了。那有没有一个“既不用给出源文件,又能证明源文件是我的”的方法吗?有,为文件哈希添加公告,申明:“我对这个文件拥有所有权”并对公告签名。

信息安全组织JPCERT:CC公告示例
来源:信息安全组织JPCERT:CC

现在,虽然,我们已经做到了对文本和文件进行了确权操作,但是总觉得哪里不对?要是有人也用我的文本内容去做了确权怎么办?
其实以上问题不是确权的问题,是“明明知道这个文件是属于你的,但是我还是要无偿使用”需要解决的问题。这时候我们需要一个可以安全的交易平台,并且是无法抵赖的系统。是的,区块链完全满足这两个条件,并且还可以送你个附加功能:匿名。

我们来梳理下,要实现这样一笔去中心化交易,需要满足哪些条件?

  1. 卖方需要证明文件属于自己。
  2. 合约能证明卖方给的文件是正确的。
  3. 买方能确定收到的文件是正确的。
  4. 交易全程不能出现文件明文。

在区块链系统中,交易双方其实是两个钱包地址,因此是匿名的,但是为了方便描述,我们将卖方叫Alice,买方叫Bob。
我们来看下基于合约的交易实现流程:


业务流程实现

整个业务流程中

  1. Alice能安全的将明文给到Bob,但是整个流程中,不会出现明文。
  2. 合约能基于一个可判断的逻辑,证明Alice给到的密文是正确的,并由此完成交易。
  3. Bob收到文件后,可通过比对hash,确保文件是正确的。
    可见该业务流程设计,完全满足文件确权和去中心化交易需求。如果该项功能能实现,对区块链应用来说,是一次极大的飞跃。

你可能感兴趣的:(基于智能合约的数据交易的应用讨论)