OrchidOrchid
Open Menu
Close Menu
  • 主页
  • 运作方式
  • 关于
  • 博客
  • 联系
  • 中文

我们的博客

Orchid 网络:随机选择 + 权益加权

Orchid 网络:随机选择 + 权益加权

2019年 10月 9日

像比特币、以太坊和大多数其他去中心化系统一样,Orchid 也设计为以开源软件为基础的开放式网络;任何人都可以下载 Orchid节点软件,并在资源允许的情况下运行尽可能多的节点。在开放式去中心化系统中,防御系统攻击的可行措施最终归根于经济性,即系统的安全程度足以确保攻击者的攻击成本超过攻击所得的收益,或者任何攻击的执行成本都过于高昂。去中心化系统使用这些安全参数保护其网络安全并提供激励机制,让矿工或参与者可以赚取回报。当今大多数开放式区块链使用以下两种模型之一:工作量证明(需要耗电);或权益证明,需要协调工作和治理。Orchid 网络将使用权益证明的衍生形式(称为权益加权)验证点对点带宽协议并结合了以太坊的共识机制结算交易。

这意味着,带宽提供商将 Orchid 网络上的商用 Orchid 加密货币(OXT) 质押到时间锁定的保证金中,以证明身份并接收与相对质押保证金规模成比例的流量。我们最初考虑使用工作量证明(我们的原始白皮书中称之为“Medallion”),但后来发展为使用权益加权的设计。我们之所以放弃原来的系统是因为:

  • 工作量证明给最终用户造成了额外的计算负担
  • 即使假定在租赁市场中,工作量证明的攻击成本也远低于延迟权益加权的攻击成本
  • 一般的计算租赁市场的相对流动性已经远高于我们对未来任何 OXT 质押保证金租赁市场的预期

Orchid 网络

Orchid 网络设计为存储在以太坊区块链上的一组数据结构,使客户端可以高效地选择带宽销售商的节点。本质上,它形成了覆盖在以太坊网络上的一个 Orchid 特有的简单网络。

总体看来,Orchid 网络主要发挥以下作用:

  • 为带宽提供商提供了通过质押注册其节点的手段
  • 为带宽提供商提供了注册自定义服务和元数据的方法
  • 为客户端提供了查询自定义服务和元数据节点的手段
  • 提供了一种选择随机节点且概率与权益成比例的方法

使用权益加权是为了让 Orchid 网络的经济安全性与存入的总质押金规模成线性比例增长。权益加权选择过程本身是使用链上树数据结构实现的,意在让客户端能以可扩展的去信任方式将节点的选择外包给其他节点,使得轻量客户端不必再下载、存储或处理完整的节点目录。

节点目录树

为了高效实现扫描功能,我们使用了链上二进制加权树数据结构。树中的每个节点都是一个权益项,存储了权益、数量和延迟,以及左和右子树的树指针和权益小计。这种结构有效地形成了基于所有质押保证金之上的一个前缀和树,支持在每个节点进行简单的下降决策,找到包含给定随机点的子树(或节点间);只需要对数级数量的步骤就能找到包含给定随机点的准确节点。

节点元数据注册表

节点元数据注册表将允许提供商使用元数据“标记”节点。带宽提供商可以使用它存储与他们在区块链上的节点关联的自定义元数据并宣传服务。元数据注册表采用一般性结构,以便未来能简单地执行自定义延展。这样做是为了让节点运营商能宣传新服务,然后客户端无需更新代码即可选择这些服务。

如果 Orchid App 用户想要基于特定条件(例如地理)筛选服务,也能使用标签达到目的。由于标签是提供商添加的元数据片段,所以 Orchid App 最终必须检查提供商是否诚实行事。在许多情况下,我们希望自动化执行检查。

元数据标签示例:

  • 地理位置: 提供商将能够在特定区域中宣传其服务,因此客户端可以根据位置进行筛选(类似于典型的 VPN 服务)。Orchid App 将使用公共 IP 数据库确认位置。
  • 延迟: 在某些情况下,用户希望连接的延迟低于随机选择的节点。Orchid App 采用了“猜测和检查”策略,使用同一公共 IP 数据库查找距离较短的路线。最终,路线建立后,必须测量实际的延迟。如果延迟高于目标阈值,就必须尝试一条全新的不同路线。Orchid 路线和极微支付本质上是轻量型的,所以可快速设置和并行测试路线。
  • 价格: 提供商将能够设置其带宽价格,而客户端可以根据价格进行筛选。Orchid App 旨在使用预算编制算法,根据用户的余额和代表预算持续时长的目标时间跨度来确定当前的支出上限。

策划清单

Orchid App 还可根据任意出口或中继节点清单进行筛选,从而将可行节点限制到自定义子集中。Orchid App 的官方初始版本将使用此功能,利用包含受信任 VPN 合作伙伴的默认出口节点清单防止恶意出口节点发起的特定类型的攻击(例如 SSL 降级攻击)。定制的 Orchid 客户端可以使用自己的清单,最终我们期望著名的第三方成为白名单策划人。策划清单是引入外部声誉信任的一种简单方法,可补充通过质押实现的基于激励的经济信任。

如何在 Orchid 上出售带宽

Orchid 市场使用去中心化架构,通过令牌化的点对点商业极微交易将用户与带宽提供商联系起来。

Orchid bandwidth process

提供商在以太坊区块链上注册节点来销售带宽,客户端通过调用以太坊智能合约来选择节点。然后,运行 Orchid App 的用户启动代理链连接,后者将通过一个或多个中继节点才连接到目的地的出口节点。客户端将使用概率极微支付向带宽提供商支付转发数据包的费用。有时候,卖方有望获得极微支付中奖彩币,可通过调用智能合约功能兑换为 Orchid 代币 (OXT)。

在 Orchid 网络中注册节点需要质押 OXT。在权益加权选择过程中,质押规模至关重要,质押的 OXT 越多,提供商就越可能收到Orchid App 用户的流量请求。

我们预计,节点运营商可通过三个步骤赚钱:

  • 获取 OXT: 从交易所购买 OXT 代币或者通过转账将 OXT 接收到钱包中,或者通过注册为节点提供商赚取 OXT。
  • 质押 OXT: 将 OXT 代币存入节点目录合约。
  • 提供服务: 向 Orchid App 用户出售服务。
  • 付款: 用提供商控制的钱包接收服务的 OXT 付款。

用户质押保证金

Orchid App 用户要想加入网络,必须在极微支付智能合约中存入有效的保证金,以便向提供商发出代币以换取带宽。此保证金的一小部分将作为用户“质押金”交给第三方存管,以使其激励措施与整个网络保持一致。

如何选择节点

应用程序将通过两个步骤为代理链选择节点,先进行随机的相对权益加权线性选择,然后按次级约束筛选。第一阶段的线性选择由节点目录树上的扫描功能执行。App 在本地生成一个随机点,将其作为单个参数传递下去,然后沿节点目录树向下扫描该参数。搜索终止于权益段与选定的随机点相交的单个唯一叶(或节点间)。

通过使用智能合约实现主节点扫描功能,可将选择过程轻松外包给服务器节点。客户端请求一个或多个扫描调用,远程服务器节点在本地执行每个扫描,并发回执行跟踪的简单证明。

在基于线性相对权益加权机制选择一个或多个节点之后,按照设计客户端可以按其他标准进行筛选,例如出口位置、延迟 (ping)、价格、自定义节点元数据标签和任意白名单。

质押撤回延迟

Orchid 质押保证金不能立即撤回,而是受到故意撤回延迟限制。撤回延迟是一种重要的安全限制。它给试图获取大部分 OrchidApp 连接请求的攻击者造成了障碍。特别是,它有助于防止系统性接管攻击。在这种攻击中,攻击者会获取很大一部分的总质押保证金,然后将客户端导向恶意服务器,这些服务器故意提供不良的连接、日志和报告流量或尝试发起主动连接攻击(例如 SSL 降级)。

我们认为,防范系统性接管攻击的主要措施是,建立高成本壁垒,让攻击者无法轻松获取和锁定大部分的 OXT 总质押金。如果没有撤回延迟,这一壁垒就弱化为流动性充足与否的问题,攻击的实际净成本就会非常小。

如果撤回延迟足够长,那么攻击者最终结束攻击并出售大仓位的OXT 时,就更可能受到额外的损失。然后,App 软件将根据撤回延迟进行筛选,忽略延迟未达到 App 阈值的质押保证金。Orchid 的初始 App 软件将接受三个月或更长时间的撤回延迟,但是灵活的参数化机制支持将来的 App 更新软件更改此参数,而不会造成硬分叉和相关的协调难题。

结语

我们采用权益加权方法打击攻击行为并创建了由 Orchid 代币支持的激励市场,朝着我们的最终目标又迈进了一步。这个目标就是 让Internet 成为一个更加开放和包容的全球用户空间。无论您想使用Orchid 购买还是出售资源,Orchid 网络都能让全球任何地点的用户私密安全地访问 Internet。

追随 Orchid 之旅

如果您想及时了解最新的 Orchid 新闻,请请注册接收我们的新闻通讯率先试用今年晚些时候启动的网络。

网站: www.orchid.com

Twitter: https://twitter.com/OrchidProtocol

Linkedin: https://www.linkedin.com/company/orchidprotocol/

Telegram (Announcements): https://t.me/officialorchidlabs

Telegram (Community): https://t.me/OrchidOfficial

Facebook: https://www.facebook.com/OrchidProtocol/

Medium: https://medium.com/orchid-labs

Github: https://github.com/OrchidTechnologies

Reddit: https://www.reddit.com/r/orchid

Orchid© 2020 Orchid Labs Inc.

Privacy Policy | Terms of Service

关注我们
  • Twitter
  • Medium
  • Telegram
  • Github
  • Facebook