龙空技术网

如何给区块链打上马赛克?

Odaily星球日报 152

前言:

此刻各位老铁们对“投票机制算法”都比较关注,同学们都想要分析一些“投票机制算法”的相关文章。那么小编同时在网络上收集了一些有关“投票机制算法””的相关内容,希望咱们能喜欢,咱们一起来学习一下吧!

Marvin:

我们团队比较早期便加入波卡,在去年5月份经过姜老板介绍开始使用 Substrate,所以我们和 Acala、达尔文等波卡项目也都是好朋友,都是 ala 系列的。

Phala 的特殊之处在于 Phala 的落地产品以及如何分发代币。中本聪的思想被发扬光大后,就来到了2018年,那时候我还在打工,尹航刚刚完成了 BitcoinGold 的启动和研发,我们发现了区块链的问题。

大家都知道,比特币是第一个也是最广为人知的去信任通证,主要用区块链来解决双花问题。以太坊则是扩展交易脚本、执行任意的逻辑、去信任智能合约。但只要用了区块链,数据就要公开,这导致很多需要数据保密的应用无法上链。

因为全公开、透明,所以限制了很多应用场景,敏感信息不能上链,比如以下这几种就用不了:在以太坊开发一个人和人玩的网游、做一个策略保密的 defi 合约、想要用户在区块链上身份验证。所以到现在为止,区块链99.9% 的项目落地都很艰难。为了解决这个问题,我们开始寻找解决思路,现在有多种隐私保护技术,分别能实现不同程度的保护,我们常常给隐私保护技术分成三个世代。

第一代技术的典型代表 Zcash 和门罗币,他们通过零知识证明、环签名、保密转账等技术实现了交易的隐私保护,他们的技术可以保护原生币的交易隐私。

第二代技术的典型代表是 Aztec,一个以太坊上的隐私协议,采用和 Zcash 类似的技术,可以为任何 ERC20 代币实现交易隐私。第二代技术是第一代的扩展,不过他们都只能实现交易隐私,如果涉及到图灵完备的智能合约就无能为力了。

总结一下:基于零知识证明可以实现匿名交易、有点逻辑的转账的隐私化保护,但是这远远不够。

第三代技术,我们希望把“隐私保护”的概念拓展成“机密保护”,隐私不仅指用户的交易隐私,更应该能保护智能合约中的任何机密数据不被泄漏。目前的智能合约技术,所有数据都必须完全公开,而我们希望“机密智能合约”(Confidential Smart Contract)可以如同以太坊的图灵完备智能合约一样,可以进行通用的计算,但不必暴露机密数据。

目前机密智能合约技术可以通过多方计算(MPC)与可信执行环境(TEE)实现。前者基于同态加密、零知识证明等纯密码学技术,不依赖硬件,可以高效率地应用在一些特定领域,例如可验证随机数、分布式密钥生成等,但在通用计算上有平均一百万倍的性能损失。后者基于可信计算硬件(主要是 Intel 的 CPU),但已经可以实现非常高效率的通用计算。

Phala.Network 选择了可信计算方案,致力于实现保护机密数据的、通用的图灵完备智能合约。

TEE 是什么呢?

其实就是使用硬件设计,实现一个硬件的可信第三方(trusted third party,TTP),它能够接收来自多方的隐私数据输入,诚实的执行既定逻辑,再反馈结果。这个硬件方案已经被成千上万的设备所拥有了,这就是 CPU 的 TEE(可信执行环境)。

听起来很高大上?其实每个人的手上可能都有这样的可信硬件。

比如 iPhone 的指纹功能。iPhone 有一个芯片专门做指纹验证和存储。从外部完全无法干涉整个验证流程,或者读取任何验证数据。芯片只会告诉 app 开发者一个“yes”或者”no”。而开发者只要能证明这个验证环境是完整的,便可相信指纹验证的结果。

这套东西和区块链有什么关系呢?

Phala 相当于使用这些设备中的 TEE 环境作为隐私基础设施,通过区块链调用起来,使其可以为区块链提供隐私算力,实现保密智能合约的功能。

除了数据保密能力,我们还有两个优势。第一是合约级的并行,因为非拜占庭,我们不用通过每个节点共识一次实现去信任化,可以实现极高的性能。第二个是天生支持跨链,Phala 的合约是并行执行的,需要配合智能合约之间的互操作协议实现相互调用。这个互操作协议不仅可以用于合约之间,也兼容多种跨链方式(Phala 上的转接桥、波卡的 ICMP 协议等)。

总结一下,Phala 包含一条主链与可信硬件矿工网络,未来会争取成为波卡的平行链。合约在可信节点上并行地执行,开发者以合约的形式部署转接桥与 Dapp 在网络之上。其中,主链提供了跨合约、跨链的调用,矿工提供了算力,转接桥实现了和外部区块链的通信。

波卡有这么几个标签:

是否用 substrate 开发地

是否会成为平行链

是否获得波卡大使

是否入选 Parity 的 Substrate 建设者项目

是否入选波卡轻白皮书

是否获得了 Web3 基金会 Grant

是否入选了 Web3 训练营

Phala 全部符合以上筛选标准,可以说是和波卡生态紧紧绑定了,我们希望能够为其他波卡平行链提供给区块链打马赛克的服务。

当然,现在区块链很多很多只有协议,只有币,只有链,所以我们基于 Phala 实现了一个帮助普通网站、app,帮助普通用户保护和管理自己隐私数据的产品,叫作 W3A (Web3 Analytics)。

数据是当今一切商业行为的基石,效率的提高、科技进步、产品体验的提升,都来自于对数据的炼金术。然而时至今日,数据的交易依然很难达成。

1、数据由用户产生,而如今数据的收集与利用早已被互联网公司垄断,他们通常拒绝或以高价出售数据。

2、数据可被复制,因此交付原始数据困难重重,一方面原始数据包含敏感信息,另一方面数据容易被二次贩卖。

为了填补供求之间的空白,不仅需要让用户取回数据的所有权,还需要存在一个无需信任、可以安全交易数据的渠道。互联网公司中,数据都是由产品内的 SDK 上报至后台,用于商业分析。因此 Phala 推出了 Web3.0 下的数据收集解决方案,Web3 Analytics。

我们可以看到,在数据收集分析领域,谷歌占有绝对的话语权,那么托管给谷歌去分析自己 app 的数据,让谷歌持有自己的数据,安全吗?

所以,我们通过 W3A 想改变这个现状,实现去中心化的数据收集、分析和交易平台,可以作为 Google Analytics 的去中心化升级,帮助 Web2.0 与 Web3.0 应用以极低的成本接入 Phala Network 数据交易市场。

我们调研过很多区块链项目,都使用了谷歌分析,这是被环境所迫的,因为现在没有这样的产品。

W3A 的功能包括:

– W3A-SDK:在端到端加密的前提下实现事件追踪(埋点),接入成本极低,仅需粘贴一段脚本,就可以实现 Web 端与移动端接入。

– 用户数据控制台:用户可以通过控制台管理、下载、删除个人数据,并可以管理访问授权。

– 开发者数据面板:内置大量常见的数据分析合约,提供可视化面板,并展示给开发者。

– 数据广场:市场化数据买卖,提供数据联合分析功能,允许使用内置分析模版或自定义分析合约,在获得用户授权后完成分析与支付结算。

这个产品已经上线了体验测试版,但是去中心化版本需要 Phala 主网上线后才可以真正运转起来。

有人会问,把 Web2 产品的后端改造成 Web3,是不是成本很高?有人用吗?

答案:不是!只需要几行代码,你就可以体验 Web3.0 的数据分析,大概1分钟左右的接入成本。

产品有了,那么 Phala 的通证有什么用呢?

数据交易是 Phala Network 的核心能力,Phala 将会捕获数据价值以及链上资源价值。

如图所示,在此流程中需要被商业购买的行为:

– 数据交易结算:Phala 通过智能合约实现了隐私数据的管理、分析与交易,数据分析师必须支付交易款项。

– 可信计算资源:交易中用到的可信计算算力、链上状态、链下存储等资源,均需要在 Phala 网络结算。

PHA 将会捕获这些业务价值,当然,POS 治理、社区治理也需要 PHA 来实现。

PHA 的经济设计是什么样的?

Phala 的代币,PHA 的初始分配采用了激进的分发策略,通过把80%的 PHA 分配给目标用户,实现增强产品 / 市场契合度(Product-Market Fit)、鼓励社区早期参与者并保证基础开发稳定进行。

首先,70%的 PHA 是挖出来的,那么谁来挖?就是提供隐私算力的 TEE 矿工、数据所有者(你们在座的各位)、数据开发者(Phala 开发者)。挖矿奖励释放和比特币很像,最开始最高,逐步衰减,另外我们还会根据挖矿产出通过合约实现动态算力调整,如下图:

除了挖矿,我们还有9%的 PHA 是通过锁仓 StakeDrop 形式发放的,因为 Phala 致力于成为 Web3 时代的隐私层基础设施,为了让更多人参与这场“觉醒”,我们给想要参与这场社会实验的每一位观众 PHA 作为入场券。Phala 是波卡生态,当然以波卡优先。

为了这场觉醒,Phala 一共设计了3轮 StakeDrop:第一轮面向 KSM 用户,第二轮面向 DOT 用户,第三轮面向 FIL(暂定)用户,并为此准备了共计9000万 PHA 。

在参考了 Edgeware 的 LockDrop、NuCypher 的 WorkLock、Rocco 的 WarLock 机制之后,我们觉得 LockDrop 很不错;而鉴于在 Kusama 网络无法使用智能合约实现锁仓,我们开创了一个全新的形式:StakeDrop 。参与者通过抵押手中的 KSM,提名给白名单中的验证节点,以获得 StakeDrop 点数,最终会根据 StakeDrop 点数兑换 PHA。我们不希望社区 StakeDrop 的价值被主网时间限制,因此 StakeDrop 的 PHA 在 Phala 主网上线前以 ERC20 代币的形式分发。我们将通过开源脚本持续监视记录 Kusama 链上抵押情况。若参与者的抵押符合我们的要求,则抵押期满之后,参与者可以在以太坊上领取释放的 PHA。

你们会说,为什么不直接用智能合约锁仓?

因为现在 Kusama 上没办法部署 KSM 交互的智能合约,所以先用这个办法实现好的效果。

这么设计,有三个好处:

1、无机会成本:抵押 KSM,可同时获得 KSM 的抵押收益和 PHA。

2、超低门槛:10 KSM,抵押满30天,傻瓜式操作,即可领取。

3、安全可靠:经过 Phala 官方筛选的 KSM 白名单节点,收益有保障。

什么时候开始呢?快照时间是5月15日到8月15日,因为最少要30天,所以大家一定要在7月15日之前抵押。抵押对象:Phala 白名单验证阶段。这个我们在材料中会给出列表,Phala 也会制作抵押工具。我们的合作节点基本上覆盖了国内外的主流波卡节点,感谢 Hashquark、猎币、麦子钱包、Nodeasy、Polkaworld、SSSnodes 几大中国节点对此次活动的大力支持。

这个就是核心了,我们预估每100 KSM 对应时间、PHA 的收益参考。

什么叫全网点数占阙值的比例?

就是我们理想预期是有270万个 KSM 参与这个抵押活动进来,实际参与量/270万 KSM,就是这个比例了。如果到时候超过270万 KSM,我们就从后面 FIL StakeDrop 的部分多挪过来给 KSM 的持有者。还是那句话:波卡优先。

大家可能问,抵押多长时间合适呢?这个要看个人需求,很多人想高位套现 KSM,我们也考虑到大家的需求,所以我们是支持“断点续传”的抵押机制。抵押时间与收到的奖励不是线性的,而是指数上升的,假设投入100 KSM,抵押30天,断掉前和重新抵押的都是白名单验证人,则奖励仍然是 100 KSM × 30天。但是假设你第1-29天抵押了100 KSM,第29天取消;后来从第31天开始抵押到第33天,但 NPoS 分配了100 KSM 给你的白名单验证人,奖励是白名单验证人收到的100 KSM × (29+2)天。另外人性化的部分是我们不希望有些 StakeDrop 会扣本金利息,所以大家抵押 KSM 的收益一样能领。

如果我同时抵押给了白名单验证人和非白名单验证人,怎么计算奖励?

如图:粉色点是普通的验证人,白色圈内是白名单验证人,绿色点是你的实际提名。

假设投入了100个 KSM,抵押30天:

如果90 KSM 抵押给了白名单验证人,10 KSM 给了非白名单验证人,则只会获得90 KSM * 1个月的奖励。

为什么这样做呢?因为我们考虑到有的非白名单节点的收益可能会高(波卡的收益计算十分动态)。

庞晓杰:

观众提问,矿机为什么卖这么贵?

Marvin:

我们其实不卖矿机,因为 Phala 不像很多项目那般会指定矿机,只要任何人有16年后的英特尔处理器电脑,主板支持 SGX 开启,就可以来挖。然而一般家用电脑最便宜也要3000元,所以我们自己找了一个比较便宜的主板,做了一个配置表,帮助社区粉丝组装电脑,相当于卖一个组装手工费。

至于为什么我们近期平均每台涨价200元,是因为最近受新冠肺炎影响全球休克歇业。特别是韩国、题本、菲利宾都受到了比较大的影响。导致全球 DDR 和 NAND FLASH 的价格暴涨,所以整体每个哨兵主机都有接近200元的价格上浮。

至于为什么单台哨兵明平均显价格高于集群,一是我们集群采取薄利多销的策略,也鼓励大家购买集群。二是,集群相对外观结构件的成本更低,以及分摊的销售成本、售后保险更低。

还是那句话,能免费获得 StakeDrop 就不要花钱买币,自己有闲置电脑就不要买币、买矿机。

庞晓杰:

观众提问,目前比特币交易虽然和真实身份的关联相互隔断,但是也可以通过地址ID、IP等可以追查到账户和交易的关联性,由此分析出现实情况下具体某个人的身份信息。请问区块链世界如何尽可能的保护企业和个人不想公开的个人信息?

Marvin:

首先,ip地址是从哪里获取的?其实每个网站、app 都一定记录下来大家的地址,所以你只要用了交易所、钱包,就会留下痕迹。

第一种办法,只用链上动作完成交易。

第二种办法,推动这些更能保护隐私的产品,使用 Phala 的 W3A-SDK 来收集数据,就可以做到只要你不同意,没人能动你的数据,只要你同意,他们就得在你的授权范围内使用。

庞晓杰:

观众提问,昨天阿里云被成功攻击,这种情况非常少,阿里的防护能力是有目共睹的,但是也在昨天也未能幸免。随着技术的提升,攻击能力势必会越来越大,作为隐私守门人的 Phala 该如何应对?何去何从?

Marvin:

大家要区分服务器(机器)、服务端、数据库、链上数据这几个概念。服务器被攻击是因为数据存在了保险箱,而保险箱密码被人管理,如果数据的钥匙在你自己手里,只有你自己能解开呢?

这种架构中,即使黑客攻击阿里云也没用,因为破解出来的都是加密后的数据。攻击 TEE 芯片呢?目前在严格的实验环境内有一些破解论文,但是英特尔采用了很巧妙的升级方法,只要矿工的 TEE 不更新补丁,他就会被 Phala 拒之门外,保证了不少安全性。另外,Phala 网络的价值就在于不依赖英特尔的 TEE 环境,也可以支持 AMD、ARM 等芯片的标准,因此比中心化云服务更安全。

庞晓杰:

观众提问,目前市面上也有很多的隐匿币,例如 XMR、ZEC、Dash,每个都有自己的算法与优缺点,想问 Phala 能冲出来的机会在哪呢?

Marvin:

这部份,在刚才的王婆卖瓜环节有所分享。总体来说,XMR、ZEC、Dash 提供的都是匿名币服务,而 Phala 提供的是隐私智能合约服务,就像比特币和以太坊的区别。

庞晓杰:

观众提问,Phala 的流民主机制很有新意,可以再具体说说嘛?它与当前流行的节点委员会治理(比如 EOS)有哪些优势?

Marvin:

我们觉得波卡的 NPOS 机制创新性十分厉害,所以共识和治理框架参考了很多波卡的设计,然而在三个点上,我们有独特的创新:

– 匿名投票,我们将使用保密合约完成投票,因此民主的匿名性可以保障

– 流民主投票机制和算法,充分提高投票参与率

– 将委员会改制为 DAO,提高开放程度,并通过抵押制度保证决策层的利益与社区绑定

匿名投票就不说了,只是 Phala 擅长做的事,我们讲讲流民主。

流民主起源于Bryan Ford 在1884年发表的论文《Delegative Democracy》,即针对某个议题,可以直接投票,也可以把投票权委托给一个代表,再由这个代表投票决定这个议题。

发现流民主的一个应用例子是 Google 员工通过 Google Votes 决定今天吃什么,如果某人不知道今天要吃什么,他先把决定权委托给口味相近的同事,再由这个同事决定今天吃什么。流民主的优点在于对直接民主和间接民主的折衷,既保证了足够真实、纯粹的民主,也提高投票率、能够专业、理性去解决问题。但是流民主的执行过程非常复杂,需要频繁的、实时的统计投票权。比如我和阿清臭味相投,我就可以委托她帮我投票,而且我不喜欢她时可以随时撤回,她还可以把我的票再委托别人,比如小杰,晓杰可以把我们委托的票再委托给 gavin wood,一次次传递。

但是为什么没有区块链项目这么用呢?因为链上性能问题,在流民主中,其委托关系是一个树,为了计算和更新每个节点的投票数,每次投票都需要对这个树进行先序遍历或后续遍历,其时间复杂度为O(n)。

这部分的实现技术在传统区块链中较为困难,因为流民主的计算数据庞大导致区块大小有限、gas 手续费高昂。而在 Phala 协议中,我们将采用 TEE 计算方式来解决性能问题,同时保障流民主的隐私。

另外呢,就是我们会把刘民主用在投票中,但是提名逻辑还是参考波卡的,只不过我们会尽量做到匿名化。

庞晓杰:

观众提问,作为节点服务商想参与进来的话怎么参与,方便跟我们说说 PHA 的节点模式与节点搭建方法及节点的收益分配方式吗?

Marvin:

目前 Phala 的节点配置要求其实没有确定,但是大致如下:

– 支持 SGX 的 CPU

– 其他配置与 Kusama 类似

搭建过程,我们会写成教程在测试网发布后公布,请大家期待。

庞晓杰:

感谢佟老板的分享和回答!也非常感谢参与今晚 Math Show #003 活动的“show”友们~

另外,大家也可以参与Math Show发起的“你想见到的那个他/她”活动,推荐并且助力你想在”Math Show”见到的嘉宾,有机会成为惊喜MC与你想要见到的嘉宾面对面对话哦,

链接:

本期 Math Show #003的“show”友会就结束了,再次感谢大家的时间和聆听,我们下一期不见不散。

标签: #投票机制算法