Cardano SL中的权益委托

Cardano SL中的权益委托_第1张图片

本文由币乎社区(bihu.com)内容支持计划奖励。

这篇文章是讲解权益委托过程的实现细节。

就像前面说的那样,被选举为领导者的股东为了产生新区块必须在线。不过,这样的情况可能没什么吸引力,因为大多数当选的股东都必须为了刷新随机数而参与币投掷协议(领导者选举过程的关键属性)。如果有很多当选的领导者,这会让股东和网络都有很大的压力,因为可能需要广播和存储大量的提交以及共享

委托的特性允许被称为发行人I1...In的股东们将他们的“委员会参与”转移给某些代表团D1...Dm。这些代表团将会在币投掷协议中代表股东S1...Sn。这样的话真正参与到币投掷协议中节点数量就少很多,可以看看白皮书的第38页。

不仅如此,代表团不仅仅可以生产新区块或参与到MPC/SSC中,而且还可以在系统更新中进行投票。

策略

领导者可以将自己生产新区块的权利转移给代表团。为了转移这个权利,领导者使用一个代理委托的策略:领导者产生一个代理签名钥匙,或者说PSK,然后代表团会使用它签名信息来认证一个块。有两种类型的PSK:重量级和轻量级(看下文)。

具体来说,股东通过自己的公钥构建一个特殊的证书来指定代表团的身份。因此,稍后代表团可以在有效的信息空间内通过在自己的公钥下为这些信息提供的签名以及签署的证书给信息签名。

这是代理签名的格式。它包含了:

  • 代理私钥
  • 签名

代理私钥包含了:

  • omega 值
  • 发行人的公钥
  • 代表团的公钥
  • 代理证书

Omega(或者说ω)是一个特殊的值。在我们的实现中,它是一对时代的标识符。这些标识符定义了委托有效期:如果时代索引在这个范围内那么生产的区块就是有效的。

代理证书就是Omega和代表团公钥的签名。

重量级委托

重量级委托使用权益阈值T。意思是股东拥有的权益不少于T的时候才能参与重量级委托。这个阈值在配置文件中定义了。就像主网的这个阈值是总权益的0.03%。这个值可以通过系统更新来改变。

来自重量级委托的代理签名证书存储在区块链中。请注意发行者在每个时代只能发布一个证书。

请注意重量级委托有一个传递关系。所以,如果A委托给B,然后B又委托给了C,那么现在C代表的权益等于A + B,而不仅仅只是B

到期

重量级委托证书如果在每个时代的开始不再传递阈值T那么它就会过期。这样做是为了预防委托池膨胀攻击:用户提交一个证书然后将自己所有的钱(高于阈值)都转到另一个账户,并且重复此操作。

轻量级委托

注意:当前轻量级委托功能是关闭的,在Shelley发布版本中会打开此功能,所以下面的信息可能是过期的。

与重量级委托相反,轻量级委托不要求代表团拥有T或更多的权益。所以轻量级委托可以用于任何的节点。但是轻量级委托的代理签名证书不存储在区块链中,所以轻量级委托证书必须要广播到代表团。

稍后轻量级PSK可以被指定发行者的公钥、签名和信息本身进行验证。

请注意“每个时代只有一个证书”的规则在轻量级委托中不采用。因为轻量级委托证书不存储在区块链的里面,所以有可能在每个时代签发很多轻量级证书也不会导致膨胀。

确认代理签名交付

代表团应该使用他拥有的代理签名钥匙使用PSK和代表团的钥匙制作一个PSK签名。如果签名是正确的,那么就是由代表团进行签名的(由PSK策略确保是这种结果)。

为什么有两个委托?

你可以将重量级委托和轻量级委托想象成强委托和弱委托。

重量级委托证书被存储在区块链中,所以被委托的权益可能会通过加入到委托权益中而参与MPC。所以有很多重量级委托的代表团可能会累计足够的权益去通过阈值的门槛。不仅如此,重量级委托可以参与Cardano SL更新的投票。

与此相反的是,轻量级委托的权益不会被计算到代表团的MPC相关的权益。所以轻量级委托只可以用来生产新区块。

撤销证书

撤销证书是一个特殊的证书,发行者创建一个撤销证书来撤回委托。重量级委托和轻量级委托都可以被撤回,不过撤回的方法不同。

作为发行者和委托是相同的标准PSK,撤销证书也是相同的。(换句话说,发行者委托给他自己)。

要撤销轻量级委托,发行者发送撤销证书给网络,要求撤销委托,但是不能强制撤销,因为轻量级的PSK不是区块链的一部分。所以,理论上轻量级委托是可以忽略撤销证书的,这样的话,它就一直保持着委托直到它的委托过期。但是这样的情况不会妨碍区块链。

重量级委托撤销的处理是另一种方式。因为来自重量级委托的代理签名证书是存储在区块链中的,撤销证书也会被提交到区块链中。这样的话节点会删除撤销证书签发之前的重量级委托证。不过有三个重要点:

  • 如果提交的重量级委托证书是在节点的内存池里面,而且撤销证书也被提交了,那么委托证书将会从内存池中被删除
    显然,这种情况下委托证书将永远不会添加到区块链中
  • 如果一个用户提交重量级委托证书之后丢失了它的钱,他仍然可以撤销那个委托,即使那个时候他已经没有足够的钱了(也就是他拥有的钱少于上面提到的阈值T
  • 尽管发行者在当前的时代只能发布一个证书,但是在同一个时代他可以撤销他的重量级委托。

翻译作者: 许莉
原文地址: STAKE DELEGATION IN CARDANO SL

你可能感兴趣的:(Cardano SL中的权益委托)