云莱链(Cloud Live Chain)点对点的直播互动系统

2019-01-10 18:08 栏目:经验之谈 来源: 查看()
一个真正的点对点的直播互动系统,应该允许消费者直接付费和打赏给内容生产者,不需要经过一个“中心”。现在作为“中心”的大部分平台虽然运营良好,但这一切都是在高达 70%的手续费基础之上来实现的。中心通常担负着直播评级和排行榜计算等涉及内容质量的定义和分发服务,因为没有公开透明的交易记录,而基于手续费抽成的中心经常通过虚拟货币的“超发”以获得额外收益, 同时也使基于此的内容评审分发机制的公平公正变的不可能,丧失了数字互联网给人类带来的最大益处“便捷、高效、低成本”。

我们为解决此问题,在基于区块链和智能合约的技术之上,重新设计了一个基于区块链的“云莱链”(Cloud Live Chain)。云莱链及以其为经济基础的分布式无中心的直播互动娱乐方案,可以让数字娱乐资产的发行的成本降到理论上的最低值。单位具有自治的特质,可以实现基于纳什均衡之下整个生态的平衡。在这个公开公平民主,任何人均可参与这个去中心化的娱乐生态。

在虚拟货币世界里,我们坚信区块链技术必将改变人类的价值交换方式,我们期待更多的信徒加入并构建一个足够大的社区。

然而,自从中本聪发表白皮书以来,社区主要由极客和矿工组成;随着技术的发展,越来越多的基于区块链技术升级的项目出现,社区发展起来,成员数量也在增加。随着区块链技术的进一步成熟和更广泛和更多产业的普及,将使更多的企业能够利用产业链技术来降低成本,提高合作效率。

简而言之,区块链中的基础技术正在不断演进,在技术方向上应该解决哪些问题,以及如何获得整个生态系统的健康发展,需要足够多的社区成员进行验证,在参与过程中发现问题,并逐步地解决。形成分散生态发展的良性循环。

Cloud Live Chain 是将聚集 IPFS(Inter Planetary File System)分布式存储技术、CDN(Content Distribute Network)加速技术和RTMP(Real-Time Mess.Protocol)实时传输技术进行构建。

Cloud Live Chain 公用链作为一种高效的、可演化的多链块链,支持广播行业的高频交易和分组模式下的多场景生态应用,在各个子生态系统独立交易的情况下,事务并行处理。

为了在直播平台上实时传输内容,为了给观众提供更平滑的广播体验和更清晰的画面,对网络带宽有一定的要求,通过增加具有分散CDN 的传输网络节点来实现加速效果,随着智能硬件技术,大型商用移动终端将来可以为社区贡献 CDN。

(一)生态结构

云莱链(Cloud Live Chain)点对点的直播互动系统

主播

· 主播直接获得 100%的收入来自粉丝的礼物赠送,粉丝的礼物将直接支付到主播的账户并兑换为 CLC。
· 在获得收入后,通过充分改变现有的与主播和机构分享收入的模式,主播将完全接管对劳动收入的控制,摆脱当前各方剥削的生态状态。
· 主播还可以直接获得直播室的广告收入份额和其他收入。
· 所有的主播收入将直接以智能合同的形式支付到 CLC的钱包中。
· 通过发展新成员加入社区,主播将得到奖励。
· 主播可以通过累积直播时间、礼品收入和其他方式提升排名以获得额外收益。
· 主播可以用 CLC 的形式支付房间带宽和其它第三方服务。

粉丝

· 粉丝可以通过社区成员的发展获得 CLC 收入。
· 粉丝可以观看/分享平台广告,从而获得相应的 CLC 奖励。
· 粉丝可以使用 CLC 支付虚拟礼物。
· 粉丝可以通过累积 CLC、礼品支出和其他手段来升级他们的排名以获得额外的好处。

广告需求方
广告合同可以通过广告商店直接与特定的主播达成。

开发者
开发者可以向需求者提供特定的智能合约,如各类智能合约模板和其他功能外接程序,以获得服务收入。

设计师
礼品设计者可以从礼品设计中获得相应的版权收入。

运营团队
在智能合约商店,运营团队可以销售主播运营包装培训等专业服务。

(二)解决方案

1. 智能合约商店

Cloud Live Chain 将面向用户提供足够丰富的智能合约模板,以便于代币的分配和激励的自动执行,同时也开放端口,让生态内的所有人均可以参与智能合约模板的设计和发行,并自行定义价格或激励条件,并和创始团队一样,通过用户的使用率来获得对应的代币激励,也就是无人使用的智能合约模板将无法获得收益,甚至是创始团队及联盟本身。

案例一:主播开通新的直播,通过商店租用了某免费智能合约模板,模板设定每观看十分钟需要消耗一个 CLC,并奖励分享者带来新用户消费的 10%的代币作为激励,粉丝赠送的代币 30%自动奖励给自己的运营团队账户,并在其账户里保留 50%作为抵押代币。如果一周后,观看人数没有超过 100 人,则自动解除和经纪人的合约,并拿回作为 50%的抵押代币。如果观看人数超过 100 人,但总观看时长过短,且收入没有达到 100 个 CLC,则将收入的 50%奖励给其运营团队,同时被其运营团队解约。直播中插播的 30 秒广告,将由广告主发送 100个代币给主播,100 个代币随机赠送给消费者。

案例二:某认证设计师通过礼物商店,根据主播的要求,为其设计独立的虚拟礼物及相关特效,并设定销售礼物的价格和奖励机制为万分之一。主播的直播间里,消费者购买的虚拟礼物特效和价格是设计师为其定制过的,其消费的金额会根据智能合约自动分配给设计师,而无需中间协调。

案例三:某运营团队建立自己的直播主页,将所有喜欢美食的消费者聚集在一起,并在智能合约商店里选定符合自己的模板,向直播的主播收取“激励”费,以帮助其吸引更多的粉丝来关注直播内容生产者。类似的例子都是基于公开透明民主的原则,系统将建立这样的公开透明的智能合约模板提供给生态里所需要的每一个环节,以保证生态的良好运转。

2. 评分系统

具有消费能力的“富豪粉丝”通过对主播赠送“虚拟礼物”以来消费其内容,这些礼物的金额在赠予主播的同时等同于对直播质量的“投票”。通过对观看时间的“时间因子加速算法”,对其投票产生的权重随着时间的推移而递减, 在不减少主播收入的同时,尽量防止“富豪”进行“刷票”。
云莱链(Cloud Live Chain)点对点的直播互动系统

普通粉丝通过根据主播定义的基础消费金额,在某单位时间内(例如 10 分钟),消费一定的代币(例如 1 个代币)以获取观看资格。而每个普通粉丝和“富豪粉丝”消费同等的代币,类似于播放次数,等于对内容质量动态的“投票”。当然主播也同样可以定义消费其内容可以获得由其提供的代币的奖励,与上述不冲突。

云莱链(Cloud Live Chain)点对点的直播互动系统

在区块链上,所有的参与者都是平等的。所有节点都需要消耗代币才能参与的高质量评论和赞等行为也构成了质量评价体系权重的一部分。系统对上述产生消费的代币统一抽取万分之一的手续费,以增加同等的“摩擦成本”以杜绝垃圾投票。为了彻底杜绝暗箱操作的可能(运营方将费用返还给参与者,使其零摩擦),手续费所对应的代币将被自动锁定在某不可操作的账户内以进行“销毁”。(例如:打到地址为 0x00000000000 的钱包地址上)。就像是现实社会一样,主播和粉丝由其公开持有的代币数量而定义其在社交网络内的用户等级,而其消费的代币历史数量作为等级的另一体系同样展示给其他用户。上述记录均存储于分布式账本内,任何人均可查看。上诉所有的交易记录都通过区块链的分布式账本,公布于所有参与者,以保证公开公正。系统将提供人性化设计的界面以便于大众查询。

3. 粉丝推广激励机制

具备内容传播能力的用户,通过对直播和主播相关地址的转发和分享,吸引更多的消费者来消费基于“虚拟礼物”代币和购买观看时长的代币,而这些有效的消费,在奖励传播者和主播的同时,也等于通过“分享指数”对内容进行投票。传播内容的用户随着点击其有效消费人数的增加,获得覆盖层级到十级的代币消费奖励。当然生产者也同样可以定义传播其内容可以获得由其提供的代币的奖励,与上述不冲突。

专业的流量分发机构和单一传播者获得的收益的百分比都由主播自行设定,彼此之间形成一定的竞争关系,以实现去中心化,高度自治的目标。
云莱链(Cloud Live Chain)点对点的直播互动系统

4. 闲置带宽利用

利用我们在高分辨率高比特率视频流方面的经验和专长,我们将使用一种目前比较被认可的分散的视频流传送技术,用于视频点播和实时流。

用户社区贡献的计算机上运行。摄取节点负责将视频流转换成不同的比特率和分辨率。然后,拉动视频流并转播给最终的观众。任何用户都可以通过运行我们正在开发的特殊视频缓存软件客户端来贡献他或她的计算机作为缓存节点。视频缓存软件负责选择上游节点,并将视频流中继到下游节点。这与传统的 P2P 文件共享系统(如 BitTorrent)类似,但是由于实时流的特性,对延迟有着重要的额外约束。不是像 P2P 文件共享系统那样无序地发送文件块,而是首先发送更紧急的高优先级分组。此外,为了最小化重新缓冲,每个缓存节点可以缓存整个视频文件,而不是像 P2P 文件共享系统那样只存储文件的一部分。

将视频文件发送到 a 以便以后检索,而不是将流发布到摄取节点。存储系统可以是分散的文件系统,如 IPFS9 或 SWARM10,也可以是基于云的存储,如 AWS S3。网络的其余部分与流媒体直播场景中的基本相同。存储系统

对于任何查看器和缓存节点来说,为了接收具有高质量和低延迟的流,其物理上接近它们的对等缓存节点是必不可少的。因此,当一个新节点加入 Theta 网络时,它经过一个引导过程来发现物理上靠近的缓存节点。P2P 文件共享系统通常使用分布式哈希表(DHT),如 Kademlia 来查找对等节点。在 Kademlia 中,每个节点被分配一个随机 GUID,并且两个节点之间的距离被计算为它们的GUID 的异或。虽然这种距离度量对于诸如文件共享之类的非实时应用是足够的,但是在视频流的上下文中,节点识别地理上接近的对等节点是很重要的。为了实现这一点,我们建议将地理信息编码到GUID 中,如下所示

GUID= QuadtreeRegionID||RandomBitsPostfix

GUID 是两个部分的连接。第一部分是一个 64 位长的字符串,用于编码缓存节点的地理区域。采用四叉树数据结构作为空间索引。第二部分是 32 位随机位后缀,用于区分同一区域的缓存节点。这样,两个 GUID 的异或就是对两个节点之间的地理距离的粗略估计。因此,新节点可以首先收集具有小 GUID XOR 距离的候选对等节点的
列表。然后,它可以向候选者发送 ping 请求,以测量实际的往返时间。

上面的讨论假设一个完全分散的架构,其中所有摄取和缓存节点都来自用户。为了实现这个长期愿景,我们需要足够数量的用户参与,这可能需要一些时间。对于该网络,我们提出了一个与现有的 CDN 网络和分散式缓存节点协同工作的方案。
云莱链(Cloud Live Chain)点对点的直播互动系统

云莱链(Cloud Live Chain)点对点的直播互动系统

Cloud Live Chain 是基于一个利益证明(POS)共识机制。PoS具有较低的计算成本和较高的事务吞吐量。在这个模型中,缓存节点和查看器客户端不需要进行哈希计算,这减少了计算资源的浪费。然而,这种方法对 Cloud Live Chain 协议的设计,特别是对带宽共享奖励方案有重要影响。

为了进一步减少缓存节点的计算负担,将验证器和缓存器的角色分开。验证器是用于验证事务和组装新块的专用节点。通过这种分离,缓存节点和查看器不需要执行除了通常的视频流编码/解码任务之外的额外计算,就像在 POW 场景中那样。这使得广泛的边缘设备(例如,个人计算机、移动设备、IoT 设备)能够作为缓存节点和查看器操作。用户在提供闲置带宽的同时,也将获得相应 Share 的代币奖励。

5. 版权时间戳登记平台

Cloud Live Chain 是以传统内容版权登记为基础,引进区块链数据存证功能,生产新区块,形成版权资产链,利用区块链去中心化的技术特征,为版权嵌入专属且唯一的密码,即为内容版权加盖时间戳,以时间戳写入的区块链版权声明,与传统版权证书同样具备法律效力。同时生成一张内容版权“电子身份证”,且永久有效,无法篡改。原创者将作品上传到系统中,系统中提供能给该作品⽂件进⾏采样的智能合约,包括直播内容的采集、风格的采集以及特定风格元素的采集等,采集完成后就把这些极简但极重要的数据存储在区块链上,于区块链系统中记录的数据具有严格的时序且不可篡改。如发⽣著作权冲突,系统可以根据发布顺序确定最终版权归属。这从根本上保护创作者的利益,并有助于激发他们的创作热情。
云莱链(Cloud Live Chain)点对点的直播互动系统

云莱链的技术架构

云莱链的目的是基于脚本、token 和链上元协议(on-chain meta-protocol)概念进行整合和提高,使得开发者能够创建任意的基于共识的、可扩展的、标准化的、特性完备的、易于开发的和协同的应用。云莱链通过建立终极的抽象的基础层-内置有图灵完备编程语言的区块链-使得任何人都能够创建合约和去中心化应用,并在其中设立他们自由定义的所有权规则、交易方式和状态转换函数。域名币的主体框架只需要两行代码就可以实现,诸如货币和信誉系统等其它协议只需要不到二十行代码就可以实现。智能合约-包含价值而且只有满足某些条件才能打开的加密箱子-也能在我们的平台上创建,并且因为图灵完备性、价值知晓(value-awareness)、区块链知晓(blockchain-awareness)和多状态所增加的力量,而比比特币脚本所能提供的智能合约强大得多。

(一)云莱链账户

在云莱链系统中,状态是由被称为“账户”(每个账户由一个 20字节的地址)的对象和在两个账户之间转移价值和信息的状态转换构成的。云莱链的账户包含四个部分:

随机数,用于确定每笔交易只能被处理一次的计数器
账户目前的云莱币余额
账户的合约代码,如果有的话
账户的存储(默认为空)

云莱币(CLC Token)是云莱链内部的主要加密燃料,用于支付交易费用。一般而言,云莱链有两种类型的账户:外部所有的账户(由私钥控制的)和合约账户(由合约代码控制)。外部所有的账户没有代码,人们可以通过创建和签名一笔交易从一个外部账户发送消息。每当合约账户收到一条消息,合约内部的代码就会被激活,允许它对内部存储进行读取和写入,和发送其它消息或者创建合约。

(二)消息和交易

云莱链的消息在某种程度上类似于比特币的交易,但是两者之间存在三点重要的不同。第一,云莱链的消息可以由外部实体或者合约创建,然而比特币的交易只能从外部创建。第二,莱链消息可以选择包含数据。第三,如果云莱链消息的接受者是合约账户,可以选择进行回应,这意味着云莱链消息也包含函数概念。云莱链中“交易”是指存储从外部账户发出的消息的签名数据包。交易包含消息的接收者、用于确认发送者的签名、云莱币账户余额、要发送的数据和两个被称为 STARTGAS 和 GASPRICE 的数值。为了防止代码的指数型爆炸和无限循环,每笔交易需要对执行代码所引发的计算步骤-包括初始消息和所有执行中引发的消息-做出限制。STARTGAS 就是限制,GASPRICE 是每一计算步骤需要支付矿工的费用。如果执行交易的过程中,“用完了燃料”,所有的状态改变恢复原状态,但是已经支付的交易费用不可收回了。如果执行交易中止时还剩余燃料,那么这些燃料将退还给发送者。创建合约有单独的交易类型和相应的消息类型;合约的地址是基于账号随机数和交易数据的哈希计算出来的。消息机制的一个重要后果是云莱链的“头等公民”财产-合约与外部账户拥有同样权利,包括发送消息和创建其它合约的权利。这使得合约可以同时充当多个不同的角色,例如,用户可以使去中心化组织(一个合约)的一个成员成为一个中介账户(另一个合约),为一个偏执的使用定制的基于量子证明的兰波特签名(第三个合约)的个人和一个自身使用由五个私钥保证安全的账户(第四个合约)的共同签名实体提供居间服务。云莱链平台的强大之处在于去中心化的组织和代理合约不需要关心合约的每一参与方是什么类型的账户。

(三)云莱链状态转换函数

云莱链的状态转换函数: APPLY(S,TX) -> S’ ,可以定义如下:

1. 检查交易的格式是否正确(即有正确数值)、签名是否有效和随机数是否与发送者账户的随机数匹配。如否,返回错误。

2. 计算交易费用:fee=STARTGAS * GASPRICE,并从签名中确定发送者的地址。从发送者的账户中减去交易费用和增加发送者的随机数。如果账户余额不足,返回错误。

3. 设定初值 GAS = STARTGAS,并根据交易中的字节数减去一定量的燃料值。

4. 从发送者的账户转移价值到接收者账户。如果接收账户还不存在,创建此账户。如果接收账户是一个合约,运行合约的代码,直到代码运行结束或者燃料用完。

5. 如果因为发送者账户没有足够的钱或者代码执行耗尽燃料导致价值转移失败,恢复原来的状态,但是还需要支付交易费用,交易费用加至矿工账户。

6. 否则,将所有剩余的燃料归还给发送者,消耗掉的燃料作为交易费用发送给矿工。

例如,假设合约的代码如下:

if !contract.storage[msg.data[0]]:
contract.storage[msg.data[0]] = msg.data[1]

需要注意的是,在现实中合约代码是用底层云莱链虚拟机(EVM)代码写成的。上面的合约是用我们的高级语言 Serpent 语言写成的,它可以被编译成 CVM 代码。假设合约存储器开始时是空的,一个值为 10 以太,燃料为 2000,燃料价格为 0.001 以太并且两个数据字段值为[ 2, „CHARLIE‟ ] [3]的交易发送后,状态转换函数的处理过程如下:

1. 检查交易是否有效、格式是否正确。
2. 检查交易发送者至少有 2000*0.001=2 个云莱币。如果有,从发送者账户中减去 2 个云莱币。
3. 初始设定 gas=2000,假设交易长为 170 字节,每字节的费用是5,减去 850,所以还剩 1150。
4. 从发送者账户减去 10 个云莱币,为合约账户增加 10 个云莱币。
5. 运行代码。在这个合约中,运行代码很简单:它检查合约存储器索引为 2 处是否已使用,注意到它未被使用,然后将其值置为CHARLIE。假设这消耗了 187 单位的燃料,于是剩余的燃料为1150 – 187 = 963。
6. 向发送者的账户增加 963*0.001=0.963 个云莱币,返回最终状态。

如果没有合约接收交易,那么所有的交易费用就等于 GASPRICE乘以交易的字节长度,交易的数据就与交易费用无关了。另外,需要注意的是,合约发起的消息可以对它们产生的计算分配燃料限额,如果子计算的燃料用完了,它只恢复到消息发出时的状态。因此,就像交易一样,合约也可以通过对它产生的子计算设置严格的限制,保护它们的计算资源。

代码执行

云莱链合约的代码使用低级的基于堆栈的字节码的语言写成的,被称为“云莱链虚拟机代码”或者“CVM 代码”。代码由一系列字节构成,每一个字节代表一种操作。一般而言,代码执行是无限循环,程序计数器每增加一(初始值为零)就执行一次操作,直到代码执行完毕或者遇到错误,STOP 或者 RETURN 指令。操作可以访问三种存储数据的空间:

1.堆栈,一种后进先出的数据存储,32 字节的数值可以入栈,出栈。
2.内存,可无限扩展的字节队列。
3.合约的长期存储,一个秘钥/数值的存储,其中秘钥和数值都是 32 字节大小,与计算结束即重置的堆栈和内存不同,存储内容将长期保持。

代码可以象访问区块头数据一样访问数值,发送者和接受到的消息中的数据,代码还可以返回数据的字节队列作为输出。

CVM 代码的正式执行模型令人惊讶地简单。当云莱链虚拟机运行时,它的完整的计算状态可以由元组(block_state, transaction,message, code, memory, stack, pc, gas)来定义,这里 block_state是包含所有账户余额和存储的全局状态。每轮执行时,通过调出代码的第 pc(程序计数器)个字节,当前指令被找到,每个指令都有定义自己如何影响元组。例如,ADD 将两个元素出栈并将它们的和入栈,将 gas(燃料)减一并将 pc 加一,SSTORE 将顶部的两个元素出栈并将第二个元素插入到由第一个元素定义的合约存储位置,同样减少最多 200 的 gas 值并将 pc 加一,虽然有许多方法通过即时编译去优化云莱链,但云莱链的基础性的实施可以用几百行代码实现。

区块链和挖矿

虽然与比特币有一些不同,但云莱链的区块链在很多方面类似于比特币区块链。它们的区块链架构的不同在于,云莱链区块不仅包含交易记录和最近的状态,还包含区块序号和难度值。云莱链中的区块确认算法如下:

1. 检查区块引用的上一个区块是否存在和有效。
2. 检查区块的时间戳是否比引用的上一个区块大,且小于 15 分钟。
3. 检查区块序号、难度值、 交易根,叔根和燃料限额(许多云莱链特有的底层概念)是否有效。
4. 检查区块的工作量证明是否有效。
5. 将 S[0]赋值为上一个区块的 STATE_ROOT。
6. 将 TX 赋值为区块的交易列表,一共有 n 笔交易。对于属于0……n-1 的 i,进行状态转换 S[i+1] = APPLY(S[i],TX[i])。如果任何一个转换发生错误,或者程序执行到此处所花费的燃料(gas)超过了 GASLIMIT,返回错误。
7. 用 S[n]给 S_FINAL 赋值, 向矿工支付区块奖励。
8. 检查 S-FINAL 是否与 STATE_ROOT 相同。如果相同,区块是有效的。否则,区块是无效的。

这一确认方法乍看起来似乎效率很低,因为它需要存储每个区块的所有状态,但是事实上云莱链的确认效率可以与比特币相提并论。原因是状态存储在树结构中(tree structure),每增加一个区块只需要改变树结构的一小部分。因此,一般而言,两个相邻的区块的树结构的大部分应该是相同的,因此存储一次数据,可以利用指针(即子树哈希)引用两次。一种被称为“帕特里夏树(” “Patricia Tree”)的树结构可以实现这一点,其中包括了对默克尔树概念的修改,不仅允许改变节点,而且还可以插入和删除节点。另外,因为所有的状态信息是最后一个区块的一部分,所以没有必要存储全部的区块历史- 这一方法如果能够可以应用到比特币系统中,经计算可以对存储空间有 10-20 倍的节省。

应用

一般来讲,云莱链之上有三种应用。第一类是金融应用,为用户提供更强大的用他们的钱管理和参与合约的方法。包括子货币,金融衍生品,对冲合约,储蓄钱包,遗嘱,甚至一些种类的全面的雇佣合约。

第二类是半金融应用,这里有钱的存在但也有很重的非金钱的方面,一个完美的例子是为解决计算问题而设的自我强制悬赏。最后,还有在线投票和去中心化治理这样的完全的非金融应用。

(一)令牌系统

链上令牌系统有很多应用,从代表如美元或黄金等资产的子货币到公司股票,单独的令牌代表智能资产,安全的不可伪造的优惠券,甚至与传统价值完全没有联系的用来进行积分奖励的令牌系统。在云莱链中实施令牌系统容易得让人吃惊。关键的一点是理解,所有的货币或者令牌系统,从根本上来说是一个带有如下操作的数据库:从 A中减去 X 单位并把 X 单位加到 B 上,前提条件是(1)A 在交易之前有至少 X 单位以及(2)交易被 A 批准。实施一个令牌系统就是把这样一个逻辑实施到一个合约中去。用 Serpent 语言实施一个令牌系统的基本代码如下:

from = msg.sender
to = msg.data[0]
value = msg.data[1]
if contract.storage[from] >= value:
contract.storage[from]=contract.storage[from]value
contract.storage[to] = contract.storage[to] + value

这从本质上来说是本文将要进一步描述的“银行系统”状态转变功能的一个最小化实施。需要增加一些额外的代码以提供在初始和其它一些边缘情况下分发货币的功能,理想情况下会增加一个函数让其它合约来查询一个地址的余额。就足够了。理论上,基于云莱链的充当子货币的令牌系统可能包括一个基于比特币的链上元币所缺乏的重要功能:直接用这种货币支付交易费的能力。实现这种能力的方法是在合约里维护一个云莱币账户以用来为发送者支付交易费,通过收集被用来充当交易费用的内部货币并把它们在一个不断运行的拍卖中拍卖掉,合约不断为该云莱币账户注资。这样用户需要用云莱币“激活”他们的账户,但一旦账户中有云莱币它将会被重复使用因为每次合约都会为其充值。

(二)金融衍生品和价值稳定的货币

金融衍生品是“智能合约”的最普遍的应用,也是最易于用代码实现的之一。实现金融合约的主要挑战是它们中的大部分需要参照一个外部的价格发布器;例如,一个需求非常大的应用是一个用来对冲云莱币(或其它密码学货币)相对美元价格波动的智能合约,但该合约需要知道云莱币相对美元的价格。最简单的方法是通过由某特定机构(例如纳斯达克)维护的“数据提供“合约进行,该合约的设计使得该机构能够根据需要更新合约,并提供一个接口使得其它合约能够通过发送一个消息给该合约以获取包含价格信息的回复。当这些关键要素都齐备,对冲合约看起来会是下面的样子:

1.等待 A 输入 1000 云莱币。
2.等待 B 输入 1000 云莱币。
3.通过查询数据提供合约,将 1000 云莱币的美元价值,例如,x 美元,记录至存储器。
4.三十天后,允许 A 或 B“重新激活“合约以发送价值 x 美元的云莱币(重新查询数据提供合约,以获取新价格并计算)给 A 并将剩余的云莱币发送给 B。

这样的合约在密码学商务中有非同寻常的潜力。密码学货币经常被诟病的一个问题就是其价格的波动性;虽然大量的用户和商家可能需要密码学资产所带来的安全和便利,可他们不太会乐意面对一天中资产跌去 23%价值的情形。直到现在,最为常见的推荐方案是发行者背书资产;思想是发行者创建一种子货币,对此种子货币他们有权发行和赎回,给予(线下)提供给他们一个单位特定相关资产(例如黄金,美元)的人一个单位子货币。发行者承诺当任何人送还一个单位密码学资产时。发还一个单位的相关资产。这种机制能够使任何非密码学资产被“升级“为密码学资产,如果发行者值得信任的话。然而实践中发行者并非总是值得信任的,并且一些情况下银行体系太脆弱,或者不够诚实守信从而使这样的服务无法存在。金融衍生品提供了一种替代方案。这里将不再有提供储备以支撑一种资产的单独的发行者,取而代之的是一个由赌一种密码学资产的价格会上升的投机者构成的去中心化市场。与发行者不同,投机者一方没有讨价还价的权利,因为对冲合约把他们的储备冻结在了契约中。注意这种方法并非是完全去中心化的,因为依然需要一个可信任的提供价格信息的数据源,尽管依然有争议这依然是在降低基础设施需求(与发行者不同,一个价格发布器不需要牌照并且似乎可归为自由言论一类)和降低潜
在欺诈风险方面的一个巨大的进步。

(三)去中心化存储

在过去的几年里出现了一些大众化的在线文件存储初创公司,最突出的是 Dropbox,它寻求允许用户上传他们的硬盘备份,提供备份存储服务并允许用户访问从而按月向用户收取费用。然而,在这一点上这个文件存储市场有时相对低效;对现存服务的粗略观察表明,特别地在“神秘谷“20-200GB 这一既没有免费空间也没有企业级用户折扣的水平上,主流文件存储成本每月的价格意味着支付在一个月里支付整个硬盘的成本。云莱链合约允许去中心化存储生态的开发,这样用户通过将他们自己的硬盘或未用的网络空间租出去以获得少量收益,从而降低了文件存储的成本。这样的设施的基础性构件就是我们所谓的“去中心化 Dropbox 合约“。这个合约工作原理如下。首先,某人将需要上传的数据分成块,对每一块数据加密以保护隐私,并且以此构建一个默克尔树。然后创建一个含以下规则的合约,每 N个块。

合约将从默克尔树中抽取一个随机索引(使用能够被合约代码访问的上一个块的哈希来提供随机性), 然后给第一个实体 X 以太以支撑一个带有类似简化验证支付(SPV)的在树中特定索引处的块的所有权证明。当一个用户想重新下载他的文件,他可以使用微支付通道协议(例如每 32k 字节支付 1 萨博)恢复文件;从费用上讲最高效的方法是支付者不到最后不发布交易,而是用一个略微更合算的带有同样随机数的交易在每 32k 字节之后来代替原交易。

这个协议的一个重要特征是,虽然看起来象是一个人信任许多不准备丢失文件的随机节点,但是他可以通过秘密分享把文件分成许多小块,然后通过监视合同得知每个小块都还被某个节点的保存着。如果一个合约依然在付款,那么就提供了某个人依然在保存文件的证据。

(四)去中心化自治组织(DAO)

通 常 意 义 上 “ 去 中 心 化 自 治 组 织 ( DAO, decentralized autonomous organization)”的概念指的是一个拥有一定数量成员或股东的虚拟实体,依靠比如 67%多数来决定花钱以及修改代码。成员会集体决定组织如何分配资金。分配资金的方法可能是悬赏,工资或者更有吸引力的机制比如用内部货币奖励工作。这仅仅使用密码学块链技术就从根本上复制了传统公司或者非营利组织的法律意义以实现强制执行。至此许多围绕 DAO 的讨论都是围绕一个带有接受分红的股东和可交易的股份的“去中心化自治公司(DAC,decentralized autonomous corporation)”的“资本家”模式;作为替代者,一个被 描 述 为 “ 去 中 心 化 自 治 社 区 ( decentralized autonomous community)”的实体将使所有成员都在决策上拥有同等的权利并且在增减成员时要求 67%多数同意。每个人都只能拥有一个成员资格这一规则需要被群体强制实施。下面是一个如何用代码实现 DO 的纲要。最简单的设计就是一段如果三分之二成员同意就可以自我修改的代码。虽然理论上代码是不可更改的,然而通过把代码主干放在一个单独的合约内并且把合约调用的地址指向一个可更改的存储依然可
以容易地绕开障碍而使代码变得可修改,在一个这样的 DAO 合约的
简单实现中有三种交易类型,由交易提供的数据区分:

[0,i,K,V] 注册索引为 i 的对存储地址索引为 K 至 v的内容的更改建议。
[0,i] 注册对建议 i 的投票。
[2,i] 如有足够投票则确认建议 i。

然后合约对每一项都有具体的条款。它将维护一个所有开放存储的更改记录以及一个谁投票表决的表。还有一个所有成员的表。当任何存储内容的更改获得了三分之二多数同意,一个最终的交易将执行这项更改。一个更加复杂的框架会增加内置的选举功能以实现如发送交易,增减成员,甚至提供委任制民主一类的投票代表(即任何人都可以委托另外一个人来代表自己投票,而且这种委托关系是可以传递的,所以如果 A 委托了 B 然后 B 委托了 C 那么 C 将决定 A 的投票)。这种设计将使 DAO 作为一个去中心化社区有机地成长, 使人们最终能够把挑选合适人选的任务交给专家,与当前系统不同,随着社区成员不断改变他们的站队假以时日专家会容易地出现和消失。

一个替代的模式是去中心化公司,那里任何账户可以拥有 0 到更多的股份,决策需要三分之二多数的股份同意。一个完整的框架将包括资产管理功能-可以提交买卖股份的订单以及接受这种订单的功能(前提是合约里有订单匹配机制)。代表依然以委任制民主的方式存在,产生了“董事会”的概念。更先进的组织治理机制可能会在将来实现;现在一个去中心化组织(DO)可以从去中心化自治组织(DAO)开始描述。DO 和 DAO 的区别是模糊的,一个大致的分割线是治理是否可以通过一个类似政治的过程或者一个“自动”过程实现,一个不错的直觉测试是“无通用语言”标准:如果两个成员不说同样的语言组织还能正常运行吗?显然,一个简单的传统的持股式公司会失败,而像比特币协议这样的却很可能成功,罗宾·汉森的“futarchy”,一个通过预测市场实现组织化治理的机制是一个真正的说明“自治”式治理可能是什么样子的好例子。注意一个人无需假设所有 DAO 比所有 DO 优越;自治只是一个在一些特定场景下有很大优势的,但在其它地方未必可行的范式,许多半 DAO 可能存在。

(五)进一步的应用

1. 储蓄钱包。

假设 Alice 想确保她的资金安全,但她担心丢失或者被黑客盗走私钥。她把云莱币放到和 Bob 签订的一个合约里,如下所示,这合同是一个银行: Alice 单独每天最多可提取 1%的资金。 Bob 单独每天最多可提取 1%的资金,但 Alice 可以用她的私钥创建一个交易取消 Bob 的提现权限。 Alice 和 Bob 一起可以任意提取资金。

一般来讲,每天 1%对 Alice 足够了,如果 Alice 想提现更多她可以联系 Bob 寻求帮助。如果 Alice 的私钥被盗,她可以立即找到Bob把她的资金转移到一个新合同里。如果她弄丢了她的私钥,Bob 可以慢慢地把钱提出。如果 Bob 表现出了恶意,她可以关掉他的提现权限。

2. 作物保险。

一个人可以很容易地以天气情况而不是任何价格指数作为数据输入来创建一个金融衍生品合约。如果一个爱荷华的农民购买了一个基于爱荷华的降雨情况进行反向赔付的金融衍生品,那么如果遇到干旱,该农民将自动地收到赔付资金而如果有足量的降雨他会很开心因为他的作物收成会很好。

3. 一个去中心化的数据发布器。

对于基于差异的金融合约,事实上通过过“谢林点”协议将数据发布器去中心化是可能的。谢林点的工作原理如下:N 方为某个指定的数据提供输入值到系统(例如 CLC/USD 价格),所有的值被排序,每个提供 25%到 75%之间的值的节点都会获得奖励,每个人都有激励去提供他人将提供的答案,大量玩家可以真正同意的答案明显默认就是正确答案,这构造了一个可以在理论上提供很多数值,包括CLC/USD 价格,柏林的温度甚至某个特别困难的计算的结果的去中心化协议。

4. 多重签名智能契约

比特币允许基于多重签名的交易合约,例如,5 把私钥里集齐 3把就可以使用资金。云莱链可以做得更细化,例如,5 把私钥里集齐4 把可以花全部资金,如果只 3 把则每天最多花 10%的资金,只有 2把就只能每天花 0.5%的资金。另外,云莱链里的多重签名是异步的,意思是说,双方可以在不同时间在区块链上注册签名,最后一个签名到位后就会自动发送交易。

5. 云计算

CVM 技术还可被用来创建一个可验证的计算环境,允许用户邀请他人进行计算然后选择性地要求提供在一定的随机选择的检查点上计算被正确完成的证据。这使得创建一个任何用户都可以用他们的台式机,笔记本电脑或者专用服务器参与的云计算市场成为可能,现场检查和安全保证金可以被用来确保系统是值得信任的(即没有节点可以因欺骗获利)。虽然这样一个系统可能并不适用所有任务;例如,需要高级进程间通信的任务就不易在一个大的节点云上完成。然而一些其它的任务就很容易实现并行;[email protected], [email protected] 和基因算法这样的项目就很容易在这样的平台上进行。


关于更多云莱链信息:http://webclc.com/

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发