2019年,连接各大公链、解决其价值孤岛问题的跨链技术,成为区块链行业发展的焦点,备受追捧热议的跨链明星项目 Cosmos、Polkadot 正是在其开辟的道路方向一马当先。无独有偶,UNI以符合其生态的 Raft 共识算法、TPoS 分叉解决机制、分级数据管理等技术创新构建无感化跨链生态平台,专注于大幅降低去中心化应用(Dapp)使用门槛、提升用户价值和体验,推动区块链技术为普罗大众所用。
一.Raft 共识算法
所有公链的最大技术关键当属共识算法:从 PoW(工作量证明)到 PoS(权益证明),再从 PoS的改良算法DPoS(委托权益证明)到 PBFT(实用拜占庭容错),似乎没有一种能够完美解决区块链不可能三角(即不可能同时兼具去中心化、可扩展性、安全的特点)的终结算法。
着眼于大幅提升 Dapp 用户体验的目标,UNI选择了基于 Paxos 的 Raft 共识算法。在 Raft 算法出现之前,Paxos 算法几乎成为分布式共识算法的唯一标准,但它的复杂程度广为人知,几乎无人能懂。
为此,斯坦福大学的研究人员在2016年研究了很多方法来简化 Paxos,最终通过问题拆分、状态空间降维等方式简化产生了Raft 算法。
一个 Raft 集群由若干个节点组成。节点可能处于以下三种角色的其中之一:Leader (领导者)、Follower(追随者) 或 Candidate(候选者),其职责分别如下:
Leader :负责从客户端处接收新的日志记录,备份到其他服务器上,并在日志安全备份后通知其他服务器将该日志记录应用到位于其上层的状态机上;
Follower :总是处于被动状态,接收来自 Leader 和 Candidate 的请求,而自身不会发出任何请求;
Candidate :会在 Leader 选举时负责投票选出 Leader。
Raft 实现共识的方法是:首先选出一个服务器作为 Leader,让 Leader 来全权负责日志备份的管理。 Leader 从客户端接收日志条目,复制到其他服务器,并且告诉其他服务器什么时候将日志应用到状态机上才是安全的。数据流动的方向只会是从 Leader 流向其他服务器。 Leader 在决定将日志条目放在日志的哪个位置的时候,不需要和其他服务器商议。
有了在系统中使用 Leader 这一前提,Raft 将共识达成问题分解为三个方面:
1,Leader election (领导者选举)
简单举例说明 Raft 的 Leader 选举过程,其实跟现实世界的选举极为类似。众多节点,仅由一个Leader 跟 N 个 Follower 组成,Leader 在自己的任期(Term)内,负责不停的向所有 Follower 发出 AppendEntries RPC(心跳信息)并接收这些 Follower 的回应,而 Follower 只是响应 Leader 发出来的请求。
如果 Follower 得不到来自 Leader 的请求了(上一任Leader任期结束),最先完成自己他就自动变成 Candidate(候选人状态)。然后这个 Candidate 将自己的任期(Term)加 1,并广播 Vote 请求,发起新一轮选举,开始向 Follower 节点发送 AppendEntries RPC,如果得到大多数 Follower 回应投票,他就自动成为 Leader,开始自己的任期(Term);若在等待投票结果时,Candidate 收到其他 Candidate 发送的 AppendEntries RPC 并检查得知对方任期比自己的大,则放弃 Candidate 状态,自己变成Follower。这就是个完整的Leader选举流程。
下图简单演示了Leader由S4变成S2的过程
2,Log replication (日志备份)
在选举出一个 Leader 后,Leader 便能够开始响应来自客户端的请求了。客户端请求由需要状态机执行的命令所组成:Leader 会将接收到的命令以日志记录的形式追加到自己的记录里,并通过 AppendEntries RPC 备份到其他节点上;当日志记录被安全备份后,Leader 就会将该命令应用于位于自己上层的状态机,并向客户端返回响应;无论 Leader 已响应客户端与否,Leader 都会不断重试 AppendEntries RPC 调用,直到所有节点都持有该日志记录的备份。
日志由若干日志记录组成:每条记录中都包含一个需要在状态机上执行的命令,以及其对应的 index 值;除外,日志记录还会记录自己所属的 Term ID。
3,Safety(leader变更时的安全性)
Raft 主要通过如下机制确保安全性
Election safety:在一个 term下,最多只有一个 Leader。
Leader Append-Only:一个Leader只能追加新的entries,不能重写和删除。
EntriesLog Matching:集群中各个节点的日志都是相同一致的。
Leader Completeness:如果一个日志录入被创建了,则这个录入一定会出现在 Leader 的日志里。
State Machine Safety:如果一个节点服务器的状态机执行了一个某个日志录入命令,则其他节点服务器,也会执行这个日志录入命令,不会再执行其他命令。
综上所述,Raft 算法更强调保证各个节点内共享相同的日志数据状态,这无疑正是 UNI所需要的;同时 与其他共识算法相比,Raft 可以调整日志数据更新周期时间,这使得 Raft 可以针对不同应用场景可以调整不同的 TPS,而这也正是 UNI 能够应对不同游戏和应用场景需要加以灵活调整。
二.TPoS分叉解决机制
由于网络分叉或者其他节点失效等原因,Raft 共识出块可能产生分叉。对于出块分叉,UNI 提出的解决方案是 TPoS 树形块签名方案(Tree-like Proof of Stake)。简单来说,假设存在一组固定的验证人和一个建议机制(例如熟悉的工作提议机制证明),它产生现有块的子块,形成一个不断增长的块树。树的根部通常被称为“生成块”。在正常情况下,预计提案机制通常会在链接列表中一个接一个地提出块(即,每个“父”块具有恰好一个“子”块)。但是,在网络延迟或存在恶意攻击的情况下,提案机制将不可避免地会产生同一父母的多个子女。TPoS 的工作是从每个父母中选择一个孩子,从而从分块树中选择一个规范链。为了提高效率,TPoS 只考虑构成检查点树的检查点的子树,而不是处理完整的块树。生成块是一个检查点,并且块树(或块编号)中的高度为 H 的倍数的每个块也是检查点。块高度为 H*k 的块的 “检查点高度” 简单地称为 k,检查点 c 的高度 h(c) 是检查点链中从父节点一直延伸到父节点的元素的数量(如下图所示)。
检查点树,实线表示检查点之间的 H 个块,检查点由圆角矩形表示,树的根用 “r” 表示。
举例说明:每个验证人首先都有一笔存款,兑换成UNI代币加入到区块链中,每位验证人的存款将随着奖励和处罚而升降。验证人可以广播如下表所示的包含四条信息的投票消息:两个检查点 s 和 t 连同他们的高度 h(s) 和 h(t)。UNI要求 s 是检查点树中的t的祖先,否则投票将被视为无效。如果验证人 ν 的公钥不在验证人集中,则考虑投票无效。
三.分级数据管理
数据安全在 UNI平台设计中地位非常重要,数据按照私密等级,被分为上图中的三类。UNI按此分类层级对数据进行相应的加密操作,保证用户的数据安全。区块链用户应该对他们的数据有完全的掌控权,可以自主分享、修改和删除自己的数据。具体而言,UNI用户可以给服务提供商分享敏感度低的行为数据从而得到更好的定制化服务,用户可以跟朋友加密分享较为敏感的信息建立交际圈,同时,像加密钱包秘钥这样的数据则需要用最先进的技术加密,不应该与任何人分享。上图正是从这三个层级将数据分级存储在 UNI平台上。
实现技术具体介绍如下
第一层级数据存储:IPFS
Protocol Labs 创建的星际文件系统(InterPlanetary File System,IPFS)是一种点对点协议,每个节点都存储一组散列文件。想要检索任何文件的客户端可以访问一个抽象层,这个抽象层允许客户端使用它想要访问文件的哈希值来找到该文件,然后IPFS将通过节点路由向客户端提供该文件。
第二层级数据存储:非对称加密IPFS
这一部分数据,UNI采用非对称加密算法进行加密,加密密钥由 UNI根据用户 ID 和生成密钥的时间随机生成的,密钥被密钥密码和手机验证保护,密钥和用户账户相关联,只有能够访问特定账户,并且能够验证密钥密码和手机验证的用户,才能通过使用密钥解密查看这一层级的数据。
第三层级数据存储:硬件级同态加密 SGX
SGX加密是 Intel Software Guard Extensions (Intel® SGX) 保护选定的代码和数据不被泄露和修改的一种解决方案。开发者可以把应用程序划分到 CPU 强化的 encalve(飞地)中或者内存中可执行的保护区域,即使在受攻击的平台中也能提高安全性。使用这种新的应用层可信执行环境,开发者能够启用身份和记录隐私、安全浏览和数字管理保护(DRM)或者任何需要安全存储机密或者保护数据的高保障安全应用场景中。
UNI的数据分级管理中,第三层数据是最重要的,数据被保存在 UNI 超级节点共同维护的加密服务器上(提供加密服务器是加入 UNI超级节点的一个必要条件),而不是存储在去中心化的 IPFS 存储中。为了保证数据的绝对安全,UNI对于这一层级的数据进行最严格的加密,因为这一层级的数据一般为区块链钱包秘钥,不应该和第三方分享。但是为了提供无感化跨链服务,UNI在跨链时,需要访问这些秘钥。众所周知,同态加密是满足这个目标的最佳选择,但是迄今这项技术还不成熟,它要么限制可以对数据集执行的操作类型,要么导致系统性能显著下降。因此,UNI选择采用更先进的 SGX 加密技术,允许 UNI在处理数据同也保护用户数据的隐私性。
四.UNI的无感化跨链框架
眼下,区块链应用开发难度大、用户体验差,极大地禁锢了区块链技术发展。UNI致力于为用户打造无感化跨链交互的平台,除了上述 Raft 共识算法、TPoS 分叉解决机制、分级数据管理等技术设计,还开发了跨链接口平台 Phoenix。Phoenix 由资产层、图层、协议层三层架构构成,通过 RPC(远程调用协议)可以调用主链服务来实现跨链交易等操作。UNI也开发了一个开放的组件库和基础架构 Unicorn Framework,适用于开发者开发 Dapp。开发者可直接使用 UNI 提供优化后的智能合约库、组件库 SDK 来降低开发具有跨链服务 DApp 的难度。
UNI提供的这一整套开发框架工具和服务希望实现这样的场景:对于开发者,利用 UNI的SDK 和 API,实现各种接口实现跨链,让区块链应用开发更加轻松简便;对于普通用户,不用学习了解复杂的区块链技术,非常方便、无感的通过 UNI 的应用一键使用各种 Dapp,自动进行钱包结算、交互。
UNI的跨链交互协议(Cross chain Interaction Protocol)基于共识算法(RAFT+TPoS)和数字资产安全(SDA)算法构建。CIP 的任务是在网络上执行跨链交易。当涉及的资产在两个或多个不同的区块链网络上定位/运行时,跨链交互协议(CIP)是在分布环境中交换数字资产的过程之间的交互的原始版本。
五.UNI的跨链治理
UNI没有挖矿机制,参与交易的节点通过下列过程获得佣金:
节点通过签名来确认交易。随着它的签名,该节点在 RAFT+TPoS 协议下规定了报酬。
一旦交易被网络接受,该节点就会自动获得报酬。
节点的质押被解锁,并且由于伪造而未被阻挡的代币数量增加 ——新代币的数量与节点的评级成正比。
如果节点确认更诚实的交易并提出更大的押注,节点将获得更多的利润。
下面是 UNI参与跨链的节点类型及其功能:
普通节点:组合成一个扁平的点对点网络,确保平台的功能和分布化。
完整节点:提供查看完整交易历史的功能,额外的平台保护。
主节点:支持运行SDA层和应用层算法的应用层子网的功能。
桥:将交易传输到外部区块链网络。
服务节点:执行应用任务以确保网络功能。
跨链交互协议(CIP)中使用的每种技术都代表了一种独立的业务逻辑形式,并为 UNI的运行提供了不同的技术可能性和功能。不同技术的结合使得可以完成各种支付任务并执行广泛的不同财务操作。跨链交互协议(CIP)将拥有一个开放的 API,允许第三方开发者在外部服务和应用中使用 UNI技术。
相比于 Cosmos、Polkadot,UNI在跨链实现上有其独特的地方:
通过上图对比,可以看到 UNI 的硬件级的同态加密,可以让跨链数据处理的时候,对加密的信息进行操作与建模,把参与到跨链的项目或者说节点,无需对 UNI有任何信任,因为数据不用被解密也能被应用,而这却是 Cosmos、Polkadot 等跨链项目所没有的。UNI项目的数据分层管理,除了更进一步的提升安全性,也方便社群管理以及其他扩展模块,而在区块链跨链项目中,目前只有UNI设计了数据分层管理。对开发者而言,UNI的跨链模块会实现封装,对比Cosmos SDK目前只支持go语言开发,以及Polkadot使用的WebAssembly跟Rust语言,UNI采用API接口进行开发,将会支持更多种开发者熟悉的语言,使得开发跨链项目,成为更轻松更无感的过程。
六.UNI应用生态初长成
UNI的无感化跨链平台底层建设正在攻克跨链接口,而建基于上的应用案例却已初长成
UNI多链游戏平台:全球首个无感化畅玩多链游戏平台。平台降低游戏门槛让游戏开发商可以无缝链接,让更多玩家用户在公平、公正、公开的环境下,畅玩、讨论和创作游戏。平台目前已上线 EOSJOB、EOSBAC 两款游戏,用户可直接登陆 DAPPX、TokenPocket、Meetone EOSToken、Dappbirds、MORE Wallet、Dappreview 等任一钱包及应用商城或者登陆 UNI官方网址 unicorn.bi 即可畅玩游戏。
Unicorn Wallet:通过 RPC 计算机通信协议实现的跨链钱包,可以让用户在 Unicorn 账号上管理多个区块链资产,并且可以进行实时币币兑换和应用消费。
Unicorn-HOME:全球首家基于区块链去中心化旅行民宿服务平台。通过去中心化的区块链网络直接链接家有空房出租的房主和消费者,在为用户提供多样的住宿信息的同时,构建信任、激励、零佣金的未来旅行服务生态。
校萌链:利用区块链技术解决现实留学难题,将学生学历上链来解决第三方信任问题和打击造假学历,以及利用大数据与人工智能技术做一对一的留学分析。
据了解,UNI将于 2020 年第四季度实现主网上线,接下来将把重点放在以下几个方面:
跨链/公链:研发RAFT、UPOS共识、研发UDFS与IPFS分布式存储,研发SGX硬件同态加密计划,研发跨链闪兑,研发钓鱼验证机制
测试网内测,主网上线1.0,研发跨链接口平台组件(投票、资产管理、资源系统、交易系统组件等),Phoenix跨链接口平台1.0
平台化:开放平台多链钱包API对接文档,引入Dapp开发者;启动游戏引擎计划、推出一键跨Dapp渠道发布;推出游戏一体化编辑器、推出常用的工具组件
应用:多条链上的JOB、轮盘、DICE、BACCARAT、SICBO等游戏,跨链闪兑等应用。
就在不久前,8 月 14 日,UNI与CITEX交易所达成战略合作,双方将在共同开发CTT区块链应用、推进无感化链应用落地、建设Staking生态等多个方面做出努力,并且UNI 通证即将于8月19日首发上线CITEX CIC交易所开放申购,也是CITEX首个IEO项目。UNI 将为区块链行业、开发者和用户带来怎样更安全好用的价值和体验,值得拭目以待。
参考文档:
Raft code&paper https://raft.github.io/ https://raft.github.io/raft.pdf
网友评论