UDAP一个通用的、去中心化的资产协议

n

文章分类

l

评论数

日期

08/13/2018

区块链开发进入了“Tokenizing Everything”的时代:把所有物件和信息代币化和资产化。然而区块链的应用(广义的dApp)和区块链之间存在一个巨大复杂性的鸿沟,使得杀手级应用对开发者而言很难编写,对用户而言很难使用。

UDAP是一个区块链时代的“中间件”。 它为区块链应用开发人员提供了一层稳定而抽象的基于区块链的资产生命周期管理、交易和搜索的模块和应用开发API,以及一个面向终端用户的独一无二的插件式的区块链应用和资产管理手机终端平台,构建了一个落地应用的爆发模式。 其底层可以基于Ethereum,Cosmos,EOS等公链。

具体而言,对应用开发者而言,UDAP中间件提供:

1.粗颗粒的资产在区块链上的全生命周期管理和交易服务,包括资产上链、确权、铸币、转让、质押、租赁、拍卖、托管、交易、兑现、销毁等服务,以及搜索、用户身份管理、资产安全和隐私保护等多种基础服务。
2.对去中心化的计算、存储及消息服务的封装。
3.可编程的“资产钱包”视觉框架和接口。
4.隐藏区块链的Scalability、Confidentiality 的复杂性。
5.资产区块链作为服务的一键式区块链云端部署。

对于个人用户:

1.一个统一的区块链资产钱包和区块链应用入口。
2.一个不受单一商业公司控制的的永久性的个人资料库。
3.熟悉的移动互联网应用界面和性能, 区块链的创新、安全和资产拥有感。

目标和架构

UDAP的目标是通过建立一个针对区块链上资产生命周期管理、交易和搜索的难题建设一个区块链中间件,推动各种资产相关的应用利用UDAP中间件构筑一个全球性的”资产互联网”(The Internet of Asset)。在这个资产互联网上,无论是企业还是个人,都可以方便地发布、转移和交易各种虚拟的以及实物的资产。因此,我们对拟议中的UDAP区块链中间件制定了一个明确且清楚的边界,包括以下目标:

1.制定一个从区块链的角度理解和认识现实世界中的”资产”的概念,从中抽象出各种资产在区块链上的数字表达,以及各种资产的一些主要行为,从而制定出一种通用的、去中心化的资产协议,包括一个通用的资产模型以及一整套面向应用开发者的API。这样的API不要求应用开发者对区块链技术和去中心化的技术有较为深刻的认识和较为熟练的编程经验。同时,完成对底层区块链的抽象,设计出一个开放的区块链协议,使建立在UDAP中间件之上的应用不需要依赖特定的底层区块链技术,完成应用和区块链的解锁。

2.提供一个对资产互联网协议以及开放区块链协议的高性能和安全性的参考实现(简称UDAP RI),让应用开发者能够在不改变现有应用架构的情况下,搭上去中心化的计算和去中心化存储的快车。我们把区块链上对资产的操作、去中心化的计算、去中心化的存储技术和去中心化的信息机制中最核心的部分,通过面向资产的模块化设计,以去中心化的微服务的方式提供给应用开发人员使用,这样可以大大缓解目前区块链技术和去中心化的一整套技术对应用开发者的巨大的技术障碍和挑战。

3.提供一种“资产链作为服务”的生产级别的联盟资产链云服务,让用户像使用阿里云、亚马逊云服务一样使用UDAP中间件及区块链,降低企业建设区块链基础设施和中间件服务的门槛,简化企业对区块链平台的运维难度。

4.提供一个面向终端用户的通用资产钱包的参考实现。在这个通用资产钱包中,个人用户可以及其方便地管理和交易自己所拥有的各种资产,包括数字资产、实物资产以及各种有形和无形资产。同时,资产钱包也运行应用开发商为其应用开发钱包插件。这样的插件类似于微信小程序以及脸书的插件式应用,第三方应用开发平台可以把应用的某些功能整合到这样的插件式应用里,从而使通用资产钱包成为区块链时代的流量入口。

下图体现了UDAP的架构概览:

UDAP一个通用的、去中心化的资产协议

关键技术

1.权限及存取控制

在UDAP中间件中,address分为账户地址和资产地址。其中账户代表现实中的用户、组织、服务方等的账户。一个账户可以拥有多个资产。

这些地址都具有具有一个versionHash和lastCommitTimestamp属性。 versionHash代表这一个地址的改动状态,一个地址的每一次改动都将产生一个新的随机且永不重复versionHash值。lastCommitTimestamp则记录一个地址最后一次接到交易处理后完成的时间点。

UDAP中间件的交易总是关联着规则(rule)。规则是寻求一系列满足给定地址的数字签名的逻辑。UDAP的各种操作都有着权限管控,权限的管控就是由规则来实现的。在UDAP中,需要对地址进行一系列的操作,等同与对地址发起一系列的交易。

一个交易,通常包括以下数据

·交易的发起者
·交易的接受者
·交易的方法
·交易方法的参数
·满足条件的数字签名
·可选的交易接受者的versionHash。

其中交易的发起者必须是账户地址,交易的接受者可以是账户地址或者资产地址。数字签名的签名人通常情况下有一个账户地址,但也可是是自己设置的虚拟签名地址。数字签名是针对包括交易的发起者,交易的接受者,交易的方法,交易方法的参数,签名时间,签名有效期和可选的交易接受者的versionHash在内但不限于其中的摘要的签名。

当UDAP接受到交易时,规则匹配器会校验签名是否是对该交易请求的签名,签名是否过期,签名时间是否晚于交易接受者的lastCommitTimestamp,若给出versionHash则交易接受者的versionHash是否满足给出条件,所有合法签名的签名人能否满足规则等等。如果满足,则接受这次交易请求,完成操作,交易接受者的lastCommitTimestamp改为该次交易结束的时间,并且产生新的versionHash。如果不满足,则驳回。

例如,某个资产的所有者O需要将该资产抵押给A,抵押资产这种操作的权限对应的规则是需要B,C,D这3个人物中至少2个人的签名。发起这个请求的是app应用。App将这个请求交易的发起者,接受者,以及所有方法参数设置完毕,然后将这段数据请求发送给B,C,D三人展示意图并请求审批。其中交易的发起者为O,交易的接受者为资产A,方法是抵押,参数依照方法而定。B,C,D三人审阅后决定是否就批准该交易请求的摘要进行数字签名。

签名里包括了签名的时间,签名的有效期,以及可能包含当前资产的versionHash。当App收集齐足够的签名后,就向UDAP发起交易,UDAP通过解读方法参数,验证列出的签名是否满足规则。若满足,改变资产的状态,将资产抵押出去,同时生成新的versionHash,所有签名时间里最晚的时间记录为新的lastCommitTimestamp。因为签名是针对交易方法参数,可选的versionHash,又有lastCommitTimestamp在时间上保证,故签名一次使用就作废,为Replay Attack做出了充分的保证。versionHash在交易请求和数字签名内是可选的,它的设计是为了保证资产数据不会被幻影读,是一种类似的乐观锁。是否需要验证versionHash的主动权掌握在交易的发起方,并需要批准人的认可。

我们的使用者要注意的是,作为我们的概念网络,我们第一期的产品推出的时候,将以Ethereum作为基础的依托架构。而我们的中期目标是把UDAP中间件移植到多个底层公链上。在我们第一期推出给用户使用的环境中,我们的运行环境将主要依赖于现有的以太坊网络环境所能给我们提供的能力,取决于和以太坊的智能合约环境相兼容的一些其他技术的发展和成熟的速度,我们也不排除我们第一期的目标考虑采用和以太坊兼容,或者相似的其他的平台技术。

2. 安全与隐私

自区块链诞生起,数据安全与隐私保护一直是区块链技术普及的一大阻碍,传统的区块链技术,做的更多的是加密匿名技术,在保护交易的数据隐私上并未进行大量的研究。近些年,随着达世币、门罗币、ZCash的发展,区块链数据加密也一步步被开发人员重视且完善。但是,并不是所有公链都支持高强度的安全和隐私保护。

UDAP中间件为资产拥有者和资产数据本身进行隐私保护。

·对于保护资产拥有者,UDAP中间件要求对交易内包含的资产操作权限规则进行数字签名。而规则是可以改变的,一个资产的拥有者完全可以产生任意对公私钥,将任意的公钥用于规则的创建。甚至公钥可以变成一次性的使用,让调用者在区块链的交易记录上无所跟踪。资产交易的调用者通常是资产原型的创建者,或者可以设定为不收任何性质的约束。这样起到了类似代理服务模的作用式,跟踪代理开放服务的代理节点是无法推断出资产真正的拥有者或是交易包含数字签名的签名者。UDAP中间件通过RESTFul来代理提交交易,隔绝了IP记录,使得传统的社会学分析难度也陡然加剧。

·对于资产数据,UDAP中间件准备为不支持零知识证明的区块链移植零知识证明模块来对Merkle-trie进行整个资产的记录加密,进而加密资产的所有信息。零知识证明(zk-SNARK)是最近被证明的实现效果最优的方案,原理在此不做赘述。零知识证明不像之前的混币方案或是环签名方案,二者更多的是实现了数字资产拥有者的匿名性,而非数字资产本身属性的加密。利用零知识证明,UDAP中间件可以将资产所有的私密属性保护起来,除了仅必要的对外属性。在零知识证明和资产操作权限规则的配合下,加密的资产只有给出真正的数字签名才能对其进行后续操作。鉴于零知识证明的开销相对较大,不排除对资产隐私保护进行一定的限制,在隐私保护与性能速度上做出折中方案。

我们的使用者要注意的是,作为我们的概念网络,我们第一期的产品推出的时候,可能还未实现对资产的隐私保护,后期也有可能改变隐私保护的实现方案,但针对资产的隐私保护的设计初衷则不会改变。

3.数据存储策略

区块链上的每一笔交易都是会产生一定的费用。这一方面是因为公有的区块链是公共的资源,必须要有一定的激励机制才能鼓励大众的参与并自愿提供公有的区块链的计算和存储的设施;另一方面,也只有用经济手段才可以极大地限制任何对区块链网络的恶意攻击,因为这样的攻击在经济上是不合算和不现实的。因此,尽管我们相信,当区块链的性能和扩容问题解决后,区块链上的交易费用会极大地降低,但是,作为去中心化的资产链,即使我们需要管理资产的整个生命周期,我们也不可能把所有资产相关的所有数据都放在区块链上,因此,一个重要的架构决策就是什么样的数据是需要放在区块链上,什么样的数据需要放在区块链下。这样的架构决策,需要从应用场景、流程、成本、性能和可实现性等多方面综合考虑。

从业务、成本和性能考虑,区块链并不适合存放频繁变化的数据和大数据。任何数据的改变都会触发交易的提交以及各节点对数据的复制。通过对资产模型的分析,我们认为大多数资产的基本属性和元数据是可以分离的,区块链上管理资产的基本属性和交易数据,而元数据是不适合放在区块链上的,例如,针对房屋的MLS服务,关于房屋的描述、图片等数据是不适合放在区块链上,然而,房屋的拥有者信息、交易历史等是非常适合放在区块链上保存。因此,UDAP基础设施架构确立了记录交易数据的区块链节点和存放大量数据的数据存储节点两种在逻辑上相互隔离的节点类型。两者之间数据是通过动态建立的merkle-link关联起来。对于应用开发者而言,这种逻辑隔离和连接是透明的,并不需要关心具体的数据存储方式。

那么,这些不适合保存在去中心化的区块链上的数据可以存放在哪里呢?一般来说有两个选择,一是可以保存在中心化的云端存储上,例如亚马逊的S3;另一个选择就是去中心化的P2P存储,例如Swarm、IPFS、StorJ、MaidSafe等。这两种选择各有优缺点,然而对于有重要经济价值的资产来说,一个不依赖任何一个存储服务的去中心的存储可能更让人放心。虽然UDAP在数据存储策略方面更加偏向于选择去中心化的存储技术,配合去中心化的计算,形成一个全面的去中心化服务体系,但是,协议并没有直接定义数据的存储模式,而只是要求数据用merkle-links和merkle-dag来表达,这样,应用可以通过merkle-path去对任何相关数据进行寻址和查询。这种merkle-link代表着两个对象之间的一种连接,这种连接把目标对象内容可寻址的加密哈希值映射到源对象,从而通过这种映射找到目标对象。这种方式至少有四方面的优点:

·可以方便地用JSON数据来表达
·提供了数据加密完整性检查
·数据结构不可修改
·可以通过merkle-path直接对任何数据对象进行寻址

这些优点特别适合资产元数据的管理,因为大多数元数据项都是静态的描述性数据,在资产整个生命周期发生变化的机会不多,甚至在很多场景里一旦发布就不允许改变,例如学历证书、合同等。一旦数据发生即使是微小的改变,这时候数据的加密哈希值就改变了,这是数据对应的地址就发生了改变。因此,这时候要么考虑更新区块链上存储的哈希值,要么通过引入类似“标签”或“指针”的命名服务(例如IPNS)来解决。前者需要在链上提交一次交易,可能会有少量的费用,而后者需要引入新的抽象层。对于应用来说,这一切都是透明的,UDAP提供的API可以让应用开发者完全不了解后台的存储逻辑,而直接针对资产对象进行操作。

除了资产的元数据外,应用通常还有大量的业务数据,这些业务数据也不适合放在区块链,同时,去中心化的存储由于性能的原因,也不适合存放那些频繁改变的大量的业务数据。这一部分数据仍然需要业务系统自行管理。因此,从应用的角度,很多业务系统需要采用一种混合的存储模型,业务系统本身在把一部分数据上链(包括去中心化的存储)外,系统同时也作为区块链下的一个Oracle,支持数据的融合。例如,供应链金融里的仓单质押业务在仓单成为加密资产后,仓单质押时的货值估算就需要通过业务系统或者第三方Oracle提供实时价格,通过Oraclize向链上的智能合约提供当天和仓单相关的价格,由智能合约完成仓单货值的计算并在去中心化的存储上记录签名后的价格数据,作为将来进行货值验证的依据(参考下面的基础设施部署示例图)。

UDAP一个通用的、去中心化的资产协议

4.性能和扩展性

在典型的区块链架构中,有三个主要因素会导致糟糕的吞吐量。

·同一事务必须在所有节点上重演,无论它们可能有多昂贵。竞争或重复的计算浪费了大量的计算能力。
·在一个节点上,所有事务都被序列化为一个块,并且无法并行构建块,因为在读取和写入帐户信息时不需要划分事务以避免竞争条件。
·以太坊实施的智能合约速度缓慢。它们在运行时被解释,而不是以本机速度运行,或者在高度优化的虚拟机(如JVM)中运行。

4.1 节点之间的竞争性重复计算

这个问题正在通过一些解决方案来解决,例如基于POS的共识和一些根本不使用区块链的协议。 UDAP中间件可以使用Cosmos作为底层网络体系结构。 Cosmos提供了UDAP中间件可以立即利用的以下功能:

·提供1000 TPS性能的POS共识实施。
·提供_finality_的API,这是UDAP中间件成为易于使用的API的必备条件。
·Cosmos可以通过向区块链中心添加更多“区域”来线性扩张。

4.2 交易处理缺乏充分的平行化

交易处理缺乏平行化是因为交易缺乏有效的Map方法, 其根本原因是因为在一般区块链中没有足够的关于账户依赖关系的信息。一笔交易可能将资金存入一个账户,而另一笔交易则将资金从账户中取出。在同一个帐户上工作需要同步,这样不得不序列化了对帐户的访问。

UDAP中间件网络可以并行处理来自不同应用的服务请求,并分配到不同的运营者节点,然后提交到底层区块链的不同shard里完成链上操作:

·每个应用程序的用户帐户是唯一的。实际上,用户必须为每个应用程序注册并接收地址。在多个应用程序中使用相同的帐户是不可能的。
·交易总是在相同类型的账户之间执行。
·安全模型和事务是应用程序特定的。应用程序之间没有共享的信息。

相比之下,以太坊ERC20令牌不是应用程序之间的自然墙。有些交易可能涉及多个令牌。用户的帐户(外部帐户)未绑定到单一类型的令牌。用户帐户是不绑定到任何特定dApp的通用帐户,因此它没有自然的分界用于支持在机器的多个核心上同时运行交易验证和块挖掘。

尽管UDAP中间件网络已经在服务响应上支持多节点并行处理,但仍然有可能受限于底层区块链的序列化处理。因此,我们期待区块链底层技术的改进,例如区块链动态分片技术、侧链技术、状态通道等。

4.3. 低性能的智能合同

现在占据垄断型地位的 Ethereum 智能合同运行在 EVM 之上。 EVM 解释性执行智能合同opcode流。 同时智能合同中的收费模式是按照每一次执行一个opcode做一个费用核查。 这些因素使得智能合约的执行速度非常低下。

UDAP中间件的API虽然都是以某种智能合约的方式来提供, 但是这些智能合同以Go/C 等系统语言来编制并可以编译成webassembly,从而提供接近机器语言的执行速度。 这样的智能合约能同时获得高级别的安全性和性能。

总结:

由于在所有UDAP中间件网络节点之间不需要竞争性的重复计算,并且在节点软件的事务处理中具有优化的并行性,加上原生的智能合约, UDAP中间件在水平和垂直方向都提供了优秀的性能和显着更好的可伸缩性,但最终区块链整体的TPS受限于底层区块链的架构。

因此,我们正密切关注由Joseph Poon和Vitalik Buterin领导的Plasma Project的进展,以及Casper和Sharding技术的进展。等离子项目提出了基于区块链的递归Map-Reduce体系结构,旨在提供高达百万级别的TPS。Plasma项目的的发展将成为2018年行业中最优秀人才团队的核心努力之一。由于UDAP是独立于底层链的中间件网络,任何对底层链的改进都会为UDAP带来更好的性能和用户体验。

应用案例分析

1.活动与票务

活动与票务包括各类演出、实况表演、体育活动、线下的各种聚会的票务管理。 一个专注于各种票务发行、流转、服务提供等完整的票务以及全生命周期的第三方应用平台,经常会面对这样的情况,就是持有演唱会票的观众可能因为特殊原因不能出席演出,他需要能够以最能体现票面价值的方式把票转移给他人;同时,另外一类人在他们看到某个演唱会的时候,可能已经错过了演唱会门票发售的时间,他们没有一个合理便捷的方式能够获得这个活动的门票。也就是说这一类资产缺乏一个便捷的二级市场。演出市场相对而言还算一个较好的市场,因为私下里,我们称之为黄牛的人扮演了一个流动性的角色,虽然不是通过一个正规的渠道,但是他们的确起到了通过流通性来确认特定的活动的价值和满足供需对接的目的,他们从中获得了中间的差价。

可以利用UDAP提供的API为他们每一次活动发行加密资产化或者代币化后的各种票券,从而可以在朋友之间方便地赠送、转让,也可以放到资产钱包所提供的标准的资产市场,进行C2C交易。在加密化资产的交易流通过程中,资产的原始发行方可以控制资产交易的频率,流动性,以及在资产交易中价格的浮动范围。他们还可以控制每一个资产是否允许进行转手、转让等刺激市场的交易。这为票务管理的app提供了极为方便的特性,同时有一般的票务系统中不可比拟的安全性和流动性。我们的数字资产钱包,甚至包括了灵巧的资产转移的功能,完全可以直接用来完成演出演唱会,电影票等票务所需要的现场验票和交割环节的基本手续。因为我们的资产钱包把这一类资产所需要的交割,或者称之为已资产支付进行了抽象化。这样第三方应用叫至需要进行数字资产的铸造代币化。并且对这些资产的二级市场流通性进行配置,以后的后续工作都可以被消费者试用数字资产钱包。

2 个人品牌”上市”

在加密资产世界中,人们逐渐意识到,代币是一个崭新的经济模式。代币的核心其实就是把现实世界中形形色色的各类可触及的以及不可触及的资产进行数字化,并且纳入到了严格的计算机密码学和区块链技术的约束范畴。这些资产对应的代币,可以充分利用区块链以及围绕区块链的交易所所提供的巨大的流动性,形成一个崭新的代币经济。这其中一个非常有创新性的构思,就是出现了一种新的可能,让每一个人都能够发行代表自己的声誉和形象的代币。我们设想在未来的世界中,每一个人都可以发行自己的数字货币,以自己个人的形象和声誉、信誉,为自己的代币承诺。个人的代币可以代表了个人对世界及周边其他相关人群的某种信用和承诺。同时因为代币带来的流动性,能够比较准确的两个人的价值得到准确的体现。由此避免了个人自我价值确认过程中发生的自我估值过高,所带来的有价无市或者是自我估值偏低,形成的对自己的实质上的损失。有了我们平台的支持,个人非常容易的能够创建自己的粉丝俱乐部或者会员俱乐部,能够控制其所发行的会员证的数量以及流通的方式,能够为社会提供服务的个人,你把自己的服务包装成个人代币的形式,投放到市场中。并且,随着市场对个人服务需求的变化,浮动的定价。这种场景,对于服务提供方的充分就业和服务需求方的充分满足来说,都提供了一个前所未有的可能性。

3 供应链及供应链金融

典型的供应链金融包括3种场景:应收账业务、预付款业务以及仓单质押业务。这几种模式都存在着大量的大宗商品仓储、转运、销售等业务流程,以及票据、凭证等的防伪需求。UDAP提供的API将使得供应链上下游的资产确认、公证、担保、交易、转移和交割的效率得到极大地提高,减少了金融机构的风险。尤其是,我们平台提供的有包含关系的资产管理工具和方便的多签名机制和工作流支持,能够对b2b资产的流动服务提供极为便捷的、安全的、高效率的支撑。并列的上下游以及参与到共赢流转的资金方,例如银行是资金借贷方,可以把自己的资产形成加密数字化以后,在上面方便的进行交易。

4 零售行业

零售行业中,经常使用的各种现金券,打折券,会员优惠凭证,促销手段均可数字化和加密货币化以后,形成更方便的,刺激流通的资产。通过平台的交易和提供的中间货币,虚拟货币的调节作用,消费者甚至可以在不同的服务提供商之间实现积分的兑换和服务的置换。

5 旅馆行业

旅馆的房间是一个非常适合于数字加密资产化的一个应用场景。因为旅馆房间的价格的波动性随着节假日和季节,天气等因素的变化非常平凡。由于流动性不足,旅馆的房间经常没有得到充分的销售。从消费者的角度看。在突发的时间经常订不到旅馆的房间,也是一个经常面临的生活障碍。通过本平台,我们可以构建一个崭新的旅馆订阅平台。通过二级市场提供大量的流动性,使得旅馆房间的销售和消费者对于旅馆房间的需求都得到充分的准确的定价和满足。

6 数字游戏中的虚拟资产交易

市面上流行的各种电子竞技游戏中的数字资产有一个灰色的市场,供玩家们进行道具人物的转让,游戏的发行商也许不愿意让玩家们能够自由的进行武器道具的交易,这样总能保证需要新武器和额外设备的玩家总是从游戏设计者的商店中购买。但是也有不少的游戏意识到,提供一个标准化的游戏道具的交易市场,是提高用户体验,获得更多用户的一种手段。我们的资产服务平台,能够提供标准化的API,够第三方游戏开发者登记他们所发行的数字资产的类型,管理这些类型在交易中的交易规则。同时,资产交易的生态符合游戏设计者所期待的动态模型。

7 艺术品资产

艺术品的现货交易是我们资产管理网络的一个非常有前景的应用。我们的平台不仅仅提供基本的计算功能,同时还提供了艺术品收藏信息保存所需要的文件存储和多媒体存储能力,所以在艺术品流通中所需要的数字化、加密化和代币化的各种手段,都可以被用来直接对艺术品交易周期进行直接的管理。古董字画以及工艺和其他类的艺术品交易,过去存在着两种主流的交易方式:一种是文物艺术品商店直接向个人收购,或者滥授他们的作品,然后提供给消费者选购;另外一种交易模式发生于民间,自由市场的模型,艺术品的拥有者和艺术品的潜在买主直接进行交易和销售;艺术品还有一个常见的销售模型是拍卖模式,因为艺术品是一个流动性不足的产品,对于艺术品的定价有着巨大的分歧,而且有着巨大的灰色空间,有时候艺术品还被用于从事洗钱和非正当的经营活动,区块链技术将有助于把这些交流程中的欺诈行为去除掉,并且在满足非常灵活的交易模型的前提下,保证艺术品交易中最重要的数源保真担保。

8 权益代币化

UDAP支持公司通过把公司的权益或者产品使用的权利代币化,并且立即通过平台提供的交易能力获得流动性.

如果您还需要获取更多敬请关注微视迷