Emin Gün Sirer:共识协议≠Po*

这是最近一段时间看到的最具洞察力的评论短文。下面是原文,据我所知,中文版本首发在以太坊中文社区,在这里对译者表示感谢。我顺着教授的陈述,缕了一下,写了三个结论。

Emin Gün Sirer:

唉,现在关于共识协议的分析框架存在着无可救药的错误。人们认为工作量证明(PoW)和权益证明(PoS)是共识协议,也是仅有的两种共识协议。(教授好无奈……)

错得离谱。让我来解释一下。

结论1:Po*(PoW,PoS,PoA,…)是抗女巫攻击机制,单凭Po*无法完成共识。

工作量证明和权益证明实际上是抗女巫攻击机制(Sybil Control Mechanism)。权益证明无法仅凭自身实现共识。它必须结合另一个协议,如 PBFT(实用拜占庭容错算法)、Ben-or、Tendermint/Cosmos、或是 Avalanche,来实现决断。
【笔者注】tendermint是一个PoS+BFT的算法。

工作量证明,从它本身来看,也不是一个共识机制。在 BTC/BCH 里,它与“最重(长)链选择规则”来实现共识。工作量证明自身可以用来阻止垃圾邮件,就像一开始 Dwork&Naor 提出的那样。工作量证明无法取得你的同意,它只会限制你的速率。

【笔者注】在Tendermint/COSMOS中,成为validator需要抵押token,根据抵押的token量的多少,系统选择一名validator负责出块,validator之间通过BFT就当前轮的区块达成共识。

结论2:加密经济系统≥抗女巫机制(Po*)+共识机制

世界上有很多共识协议(机制),也有很多的抗女巫攻击机制。两种机制之间存在区别并且可以相互独立。

一个系统或说一种币最终要把一种共识机制和一种抗女巫攻击机制结合在一起。当然了,不是任意组合都有好的效果,但确实有很多组合的可能性。

Avalanche 既可以跟工作量证明组合在一起,也可以跟权益证明组合在一起,只要你想。

你也可以用工作量证明机制来使用 PoS 代币,来保证虽然很流氓但抵押了代币的用户不会冲垮网络层。

结论3:加密经济系统的性能取决于共识机制(这一条有点不解?)

在加密货币设计上的重要决策并不在于选择工作量证明还是权益证明,而在于选择共识机制,因为它们会决定性能、可扩展性、能源消耗以及安全性。

这就是今天的微课程的结论。我希望对围绕加密货币的论述进行分类,避免混淆相互独立的机制。

教授在评论区互动时写道:PoW+DAG+modified heaviest chain==GHOST

原文链接: https://twitter.com/el33th4xor/status/1006931658338177024
作者: Emin Gün Sirer
翻译&校对: 阿剑 & Elisa

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
clear all clc N=4; T=24; P=[0.264022994089077,1.95562312037306,2.63516381183144,2.21652342018504,1.33482910725693,0.305198154765538,0.252912636845111,0.780143039749380,0.148933378343076,0.0730329736841870,1.70209730124967,-0.153088615396506,-6.12046904067520,-6.76721474145148,-0.550283713199661,2.91750695774928,1.23877822641917,0.658240442603604,2.50286413519235,3.15040780867548,1.56879091381377,0.285209344673449,0.141254479550278,-0.0651726588870925]; B=binvar(N,T,'full'); Pc=sdpvar(N,T,'full'); Pd=sdpvar(N,T,'full'); SOC=sdpvar(N,T,'full'); st=[ ];%约束条件 %电池 E=5.5;%额定能量 Pbmax=2.75; E0=2.75; Emin=1.1; Emax=4.4; nch=0.95;%储能设备充电效率 ndis=0.97;%储能设备放电效率 Pmax=[2.75;2.75;2.75;2.75];%上限约束 Pmin=[0;0;0;0];%下限约束 E=sdpvar(N,T,'full');%定义实数变量,为混合储能系统能量 for t=1:T st=[st,B(:,t).*Pmin<=Pc(:,t)<=B(:,t).*Pmax]; end for t=1:T st=[st,B(:,t).*Pmin<=Pd(:,t)<=B(:,t).*Pmax]; end for n = 1:N st = [st, E(n,1) == E0 + 0.95*Pc(n,1) - Pd(n,1)/0.97]; end for t = 2:T for n = 1:N st = [st, E(n,t) == E(n,t-1) + 0.95*Pc(n,t) - Pd(n,t)/0.97]; end end for t = 1:T for n = 1:N st = [st, Emin<=E(n,t)<=Emax]; end end % SOC=zeros(N,T); for t=1:T for n = 1:N st=[st,SOC(n,t)==E(n,t)./E]; end end %功率平衡约束 for t=1:T st=[st,sum(Pd(:,t))-sum(Pc(:,t))>=P(t)]; end %目标函数 h2=0.02; h1=1.02; h0=1.96; Q = diag([.02 .02 .02 .02]); C = [1.02 1.02 1.02 1.02]; Objective = 0; for t = 1:T Objective = Objective + SOC(:,t)'*Q*SOC(:,t) + C*SOC(:,t); end %设置求解器 % ops = sdpsettings('verbose',2,'debug',2,'solver','cplex'); ops = sdpsettings('verbose',2,'debug',2,'solver','gurobi'); optimize(st,Objective,ops); Objective= value(Objective); B=value(B); E=value(E); SOC=value(SOC); Pc=value(Pc); Pd=value(Pd);这个程序为什么没有结果
最新发布
06-08

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值