现在就转换成视频直播 now it just it just switched from affair to live
好的 okay
来得正好 大家都已经加入了 good timing me we called it right when though a whole bunch of people joined
嗨 Jack 嗨 hey Jack hi
在我们上周的讨论之后，我意识到这些命题不一定是正确的 so I realized after our discussion last week that the propositions don't have to be bets right
投注有可能只能在最大一致的子集上 they can be it can the bets to be only on the maximally consistent subsets
投注有可能只能在最大一致的子集上 你指的是什么 well what do you mean the bets can only be on the maximally consistent subsets
我的意思是 你的投注行为只能在最大一致的子集上 I just mean that when you what the betting behavior is only on the maximally consistent subsets
这些命题有点像。。。 你可以考虑这些命题来代替区块 the propositions are sort of you can think of propositions to stand in for blocks
可以 yeah
然后你可以通过使用最大不一致子集的验证结构来激励自己得到最多的命题 right and so and then you can incentivize to get the most propositions by having by using the justification structure for the maximal inconsistent subset
确切地说 你知道这是从哪个命题中提取出来的 say exactly you know which proposition said this is drawn from
对不起 你知道的 进一步的最大一致的子集之后是否有验证 sorry you know whether justification after further maximally consistent subset
对我个人来说 最大一致性子集非常简单 就是每个区块都进去 so for me personally the maximally consistent subset is pretty simple it's just every block gets in
那么如果有碰撞冲突的话 就不可能完全顺利工作 对吧 well then that couldn't quite work right if there can if there are collisions ,right
是的 所以基本上我们会是这样的 哦 就像一个验证节点的模棱两可状态 yeah exactly so basically we're gonna have like it's like oh it's like one validator equivocates
不 不 就像有些赌注一样 你知道 最好的赌注还没有收敛聚合 no no as in like some of the bets there's like you know not the best haven't yet converged
所以我们有一大串的不同的集合 我们可以从中提取出来这个 and so we have a whole bunch of neat a bunch of different sets that we can pull out of this
就像基本上设置一个正确的未来数周的出块集？ like basically set a proper set of propositions with weeks
哦 对 我明白了 好的 oh right yeah I see it so okay
所以我想我尽力不那么抽象 so I guess I'm trying to be much less abstract
因为我认为这些命题非常简单 就像 x 区块得到它 或者 x 区块没有得到它 because I see these propositions as being pretty simple like a block X gets it or block X doesn't get in
你知道 x 对 x 素数的情况吗？ you know okay what about like X versus X prime
我的意思是这是另一个选择 I mean that's the other option
是的 所以我实际上是故意试图避免一个区块对一个区块 一个场景是精确的 yeah see so I'm actually deliberately trying to avoid a block versus block a scenario is precisely
因为你知道的一些 because of you know some of the
好的 但是你不能阻止拜占庭节点造成这种情况 sure but you can't you can't stop the Byzantine node from causing that scenario
不 但你可以这么做 所以没关系 well no but you can do it what so okay
如果一个拜占庭项目符号节点等于星门 是的 你有 x 对 x素数 if a Byzantine bullet node equal gates yes you have X versus X Prime
但这只是拜占庭 所以那不得不决定 but it's but visiting so yes that has to be decided
尽管从另一方面来说 你不能强迫拜占庭节点制造出其他人之间的竞争场景 though on the other hand you can't force Byzantine nodes to make other the create competition scenarios between other people's applause
另一件事就像我看待事物的方式 如果你看看逻辑的话 and then the other thing is like the way the way I'm looking at if you look at the logic
我的命题就像是可以看到区块结构里面去 hey I'm the propositions in like can see into block structure
所以它不只是在区块水平 它是在交易这个层次 so it's not just not just at the block level it's at the transaction level
好 这就是你所指的东西 right okay so that's post you point to stuff then
然后是 Vlad 提出了一个非常有趣的观点 除非你有隔离和孤立信息 and and then four and then Vlad raised a very interesting point which is unless you have isolation information
那就很难对此做出决定了 then it's hard to make certain decisions around that
我认为 因为我们控制名字空间 本质上是地址空间 what I argue that because we control the namespace essentially the address space
这些地址空间应该足够做到使用静态分析来推断出隔离和一些合约 that should be sufficient to do to use static analysis to infer isolation and some of the contracts
我不认为这有什么用 因为比如说我有两份合约 有两不同的地址 Idon't really think that works because contract so say instead I have two contracts in two different adresses
每一个地址都从他们的存储里调用一些合约 each of which call some contract with from their storage
其中一份合约 另一个也会改变这个故事 and one of the costs one of the contracts the other would change that that piece of stories
这会改变第二份合约的去向 that would change what call the second contract went to
你永远看不到所有的一切 这就是为什么我给了你 Matt 的参考资料 停止分析的工作 you can never see all of that that's why that's why I was giving you the references to Matt stop this work on reagent analysis
还有类似的分离逻辑工作 我想说的是它不是静态的 and similarly the separation logic that was what I'm saying is that it's not static
它是静态的 在某种意义上来说你仅仅只需要合约上的信息 it's it's it is static in the sense that you don't need anything more than the information of the contracts
所以如果一份合同在存储里 那么当然你必须要求获得合同存储内容 so if a contract is in storage then of course you'll have to ask for the contracted storage
你能够发现的是有可能相互纠缠或者相互依存 but you can well like what you'll be able to detect is that there is the possibility of intertwining or interdependence
现在开始执行合约以启动 now open by executing the contract
不 你不必执行合约 no you don't have to execute the contracts
重点是你可以做到 你可以象征性地执行 that's the point is you can do them you can execute it symbolically
是的 所以我不确定这是不是真的 因为就像这样的事实 yeah so I'm not sure if that's true because like of the like fact
你可以根据类似于任意脚本的东西 快速地把你要调用的地址放在一起 that you can put together addresses of that you're send calls to on like the fly based on something like arbitrary script
如果地址是根据外部世界的输入放在一起的 if you if you have if you have if addresses are put together based upon input from the outside world
我同意你的观点 I agree with you
是啊 你可以这么做 yeah which what you could do
是的 没错 yeah that's that that's correct
如果一个地址是由任意代码计算出来的 那么肯定会有这种情况 and there certainly will certainly if it is the case that an address is calculated from arbitrary code
没错 这就是停止的心跳？ yeah right that's that's halting heart
我怎么会在这里 你可以做很多很多 how am I here you can do you can do lots and lots
在这种情况下 你要做的就是下赌注 然后做最坏的打算 in those cases what you do is you punt and you assume the worst
这意味着 你进入 你喜欢 你是什么意思 right and which means that you enter you like what do you mean
你假设有一个依赖关系 你说你不能孤立那些 you assume that there's a dependence do you say you can't isolate those
我们现在要怎么处理隔离 what are we trying to do with the with isolation right now
但是这又怎么样呢 所以关于隔离信息你能做的是 though so what so the so then with isolation information what you can do is
你可以说是否本质上是两个命题 必须做两个不同的合约 you can say whether or not essentially two propositions that have to do two different contracts
两种不同契合约的交易可以继续或不继续 transactions against two different contracts can be continued or not
你会得到一大堆效率 比如拟合周期的收敛性吗？ do you get a whole bunch of efficiencies around like the convergence of the fitting cycles
确实是的 完全正确 exactly so correct
好的 我觉得这真的很酷 okay I think that that is really cool
但我也认为这就像你所知道的 but I do also think that that it is like you know
我是说我觉得这很酷 我不确定这是不是最简单的实现方法 something that yeah I mean I think it's really cool I'm not sure if is if it's the simplest thing to implement
但是如果你觉得那个很舒服的话 but it like if you feel comfortable with that
又有提议吗 proposal again um
所以我的意思是 如果你基本上喜欢那样 也许能够做静态分析 也可能不去做 well so I mean if you basically like might be able to do static analysis and may be not
如果你做不到 你就会做最坏的打算 如果你能做到 你就会做得更轻松 and if you can't then you assume the worst and if you can then you like will have an easier time
以相同的状态聚合收敛 因为你知道 这些交易设置可以独立于这些交易集合而收敛 converging on like profit on like the state because you'll know for example that these sets of transactions can be converged on independently from those ones
好的 你知道 我个人更倾向于鼓励用户直接提供这些信息 right so you you know I personally rather kind of in try to incentivize the users to provide that information directly
但是用户不一定知道他们的交易会影响到什么合约 um but users don't necessarily know what contracts their transaction is gonna affect
当然 但协议也不会提前知道 well sure but the protocol doesn't know that either ahead of time
如果用户可以给它们一些信息 这将会很酷 right so if the user can give them information that will be cool
是的 当然 如果我们使用类型声明 那么所有更多是更好的 ？ yeah o fcourse and if there's if we use type type declarations then all more is the better right
是的 都很好 比那个变得更好 yeah all right both than that that becomes even all right
再一次我们需要开始 VM 是一个类型 again we need to begin and she's the VM to be a type
你知道这就是我们现在很难做出承诺的东西 which you know it's something that like is hard for us to commit to at the moment
我的意思是 类型可以意味着很多不同的东西 比如最简单的事情就是我们已经在计划做的事情 I mean types can mean lots of different things like the simplest possible thing is what we're already planning on doing
就是让交易声明他们限制自己的地址范围 which is in you know letting transactions declare our address ranges that they're restricting themselves to
嘿 我们已经差不多到那个程度了 朝着我已经做的那个方向了 hey we're already there most of the way there towards what I do
那么我怎么能说 我做了一个限制在一个地址范围内的交易呢 so how would so say my I make a transaction that restricts itself to an address range
然后它尝试超出范围 但是抛出了一个异常 and then it tries to go outside the range but that throw an exception
哦 等等 但是重要的是你检测到了一个异常 这个异常是一个编译时的异常 oh wait but the important thing is that you detect that exception that's a compile-time exception that'll run time
所以它应该是潜在的 因为你最终可能会做的是你知道有一些变量 一些在地址中的广告 是动态的 信息网络系统 so it should potentially because look what you could end up doing is you could end up you know having some variable that's some ad that's in address which is dynamic ins
我的意思是 我认为只要让它在范围之外就是相当安全的 and I mean I think just making it an out of range here is pretty safe
因为你知道人们基本上意味着什么都不会发生 because you know people basically means that nothing happens
所以不是很紧？ so it's not really a tight
是的 你知道这就像是一个范围限制 就像你知道试图去帮助 ya know it's like it's it's like a range restriction that's like you know attempting to help
它基本上是在帮助转换 因为你可以在两个不同的集合上收敛聚合 well it's basically it is helping conversions because you can converge on two different sets
更像是一个断言的类型 it's more like assertion that a type
好的 没错 okay that's right
好吧 没错 很酷 这就说得通了 okay that's right cool that makes sense
不 我不是 我有点喜欢这些推理 no I'm not I kind of like these reasoning
但既然这不是必须的 我不认为它为什么应该来自客户 but as long as it's not required right I don't think that it should why are this from clients
虽然如果他们给它 也许我们给他们就像给个gas费折扣？ although if they were to give it maybe that that we give them like a gas discount
或者别的什么 or something but
然后就开始了 这基本上就是我计划要做的 then that started that's basically what I'm planning on doing
总的来说 有一件事我是不会妥协的 yeah like in general one thing I'm not gonna compromise on .
那就是一切可能发生的事情都应该继续发生 is that everything that was possible in .should continue to be possible
比如可能会有扩展的地址范围 而实际上不是 like there might be expanded address ranges between which it's not
但是你知道现存空间中的所有东西都应该继续在gas成本上工作 but you know everything on these existing in the existing space should continue work in gas it worked before in the existing space
那么关于实现的东西也是如此？ so so then also with respect to implementation stuff
我已经开始给开发者工作室做一个关于如何将这些概念直接转化为代码的演讲 one of the things I've started to give developer workshop talks on on how to kind of take some of these concepts directly to code
尽管上周五我做了一个演讲 其中我描述了如何使用参数化抽象语法 though this past Friday I gave a talk in which I you know I described how if you work with parameterised abstract grammars
然后这些直接对应于大多数函数式语言中的类型声明 then these correspond directly to type declarations in most functional languages
并且谈到了一个叫做 beam FC 的工具 它允许你直接将它呈现给两个内存中的数据结构？ and talked about a tool called beam FC that allows you to go directly render this directly to both in-memory data structures
以及连线数据结构 and on the wire data structures
所以下一步我要和 Roman 谈谈他的基于 java 的实现 and so the next step there is look I'm talking to Roman about his Javabased implementation
看看我们是否可以简单地插入 因为你可以使用 BNF to see if we can simply plug in the because you get you can using the BNF
我可以把这个数据结构方面的内容放在逻辑论文中 然后直接编写内存中数据结构和有线数据结构的代码？ see I can take this data structures aspect in in the the logic paper and go straight - straight to code for in-memory data structures and on the wire
这种开发方法的优势在于 它在构造上是正确的 and the advantage of that kind of development methodology is that again it's correct by construction
每一件单独的东西都直接从数学中推导出来 every every single thing follows directly from the math
所以我们并不是最薄弱的环节 当然我们也不是你们所熟知的编程平台 so we're not the weakest link of course will be whatever you know programming platform you're sitting on
但是你又一次从数学规范直接进入到运行代码 but but again you go straight from the mathematical spec to running code
代码就是 你知道 你有一个证据链 and the code is you know there's you know you have a chain of proof
所有的一切都直接推导出来 that everything follows directly from
无论你在更高层次的规范中喜欢任何定理 你也喜欢更低层次的规范 and so whatever whatever theorems you enjoy at the higher level spec you enjoyed the lower level spec
这是另一个我一直在推进的关于 Casper 的工作 so that's that's another piece of work that I've been pushing out with respect to the Casper stuff
因为我想开始实施这个计划 because I like I'd like to start getting this implemented
当然可以 我们可以做很多这样的东西 即使没有类型 sure we can we could do a lot of this stuff even without types at all
我的意思是 几乎所有这些都是没有效率的 对吧 I mean most pretty much all of it it's just likeless efficient right
我的意思是 像Vetalik说的 主要的事情是我们需要向后兼容 所以我们不能坚持这些东西 I mean it's and I mean the main thing like Vetalik said is that we need to be backwards compatible so we can't insist that this stuff ?
你发明了所有合约都可以使用的东西 you invent available for all contracts
所有的医生都把它作为一种选择 甚至鼓励它是更便宜的gas费成本 all doctor make it an option and even incentivize it was cheaper gas costs
是的 是的 这是完全公平的 我认为它变成了一个价值 Casper 进入以太坊 一种洁净的实现 yeah yeah that's totally fair I think I think it becomes a value to Casper into etherium though to have a kind of clean room implementation
你知道什么是. stake 吗 that isn't be holden to you know a . stake
因为这样你就可以挑战极限 because that way you you can you can kind of push the limits
你可以把它当作一个小技巧 you can use that as a you can that as kind of a straw man tip here
所以有些事情是可以被证实出来的 so there's but some things can be transpired
并且仍然保留了很好的可更改性， 在你最初部署了你的合约之前，就不必去拥有类型 and like still maintain a nice of mutations and set whereas somethings like you know like the type thing like you don't get to have types if you didn't before or you initially deployed your contract
没错 就是这样的 that's exactly right that's correct
有人也说过这样的话 你知道 who say that like you know
这就好像APP应用实现的复杂性是我们的技术债务 it's like that's how the app implementation complexity is our technical debt
如果我们想解决它 我们必须基本上 你知道 我们真的需要要么打破社会契约或者硬分叉？ and if we want to get rid of it then we have to like basically um you you know we really either need to like break that's like rough social contract or hard fork
要么我只是开始一个新的区块链 or me only start a new blockchain
是的 你知道的 这就是我一直试图了解的东西 我知道你们在做什么后 尽我可能去了解 ya know exactly and this is kind of what I've been trying to get in you know as soon as I possibly once I sort of figured out what you guys were doing you know try to get in as soon as possible
我只是希望能从一开始就知道影响开发方法的正式方法 I just would love to have you know formal methods influencing the development methodology from the from the get-go
有开发方法的层次 有协议的元素 有协议的东西 还有所有的合约和应用 no but others there's levels of the development methodology right there's the element of the protocol and then there and and there's the protocol stuff and then there's all of the contracts and applications right
没错 yeah exactly
在某种程度上 我们可以为应用程序提供协议 there's an extent to which like the protocol is given by what we can provide for applications
但是你知道我们已经有了一些应用程序 but I but but you know that we've already we already have some applications on there
我们也阻止不了喜来登 and we can't really stop Sheraton
不 我听到你说的了 这是很棘手的 这总是一个很棘手的游戏 no I hear you it's a it's a tricky it's it's always a tricky game to play it right
如果你抓住了你已经得到了 如果你得到了遗留代码 它以某种方式绑定了你 if you catch you've got if you got legacy code it binds you in a certain way
就我个人而言 我不认为你有足够的代码 硬分叉是不会有的 and personally I don't think you have enough there that hard fork is not going to be
随着时间的推移 它的成本不会比维护费低很多 it would it's not going to be much lower cost over time than the maintenance fee
我确信 另一件关于要求类型的事情是它增加了合约开发人员的负担 I'm sure the other but the other thing about requiring types is that it increases the burden on the contract developers
除非你有某种类型推断 and unless you have some kind of type inferencing
哦 有趣的路由类型哦 这是我不知道的东西 Oh interesting type in routing oh that's something that I don't know about
一个很好的例子就是他在Haskell中用到的hindley-milner模态逻辑？ so a really good example is hindley-milner which is what they use in Haskell
在那里你可以推断出函数式程序的类型 where you can infer the types of functional programs
在并发设置中 类型推断变得更加困难 it becomes a lot harder type type inferencing in the concurrency setting
情况要复杂得多 it's much more complicated
有一个典型的系统是由...开发的 对不起 我忘了他的名字 there's a there's a system called typical that was developed by oh I'm sorry I'm blanking on his name
但我可以查一下 but I can I can look it up
它确实对并发设置进行类型推断 that does do type inferencing for for the concurrency setting
我的意思是 在你们的情况下你们基本上有一个顺序机器 I mean in your case you guys essentially have a sequential machine
所以你可以用李 · 米勒或者其他 so you can just use you know in Lee Miller or some very there up
在这种情况下 在我想象的BM中类型推断会更加精巧或微妙 in the case in the kind of BM that I'm imagining it type inferencing would be more subtle or nuanced
以太坊向并发执行级别的转变不是显而易见的吗 I mean isn't the etherium transition to concurrent execution level visible
我希望如此 但我不确定真正的答案是什么 I would I would hope so but I'm not sure what the actual answer well
当然执行肯定会在图表 像当前教育中的任何扩展解决方案一样？ I mean certainly execution will definitely in charting like any scaling solutions current education
EVM的核心的问题是基于 PI演算的 我想是这样的 the question of what you're not the core of the EVM will be like based on the pi calculus i think is so
不得不基于 PI演算的东西 恰好是最好的并发演算 what has to be based on the pi calculus that just happens to be the the best concurrency calculus for this kind of stuff
但是你也可以很容易地把它建立在很多其他的东西上 but you could easily base it on lots of other things as well
不如我换个说法 so how about me to try to rephrase
我认为我们并没有达成共识 即我们将使用一个为合约设计的 VM 以便在并发环境中可以很容易地进行形式上的验证 I don't think that we have consensus on the idea that we will use a VM that's designed for contracts to be easily formally verifiable in the concurrency setting
对我我来说 我们有这个选择似乎是不需要动脑筋的 right yeah Oh which you know I actually like to me it seems like a no-brainer that we would have this option
但这是绝对不用动脑筋的 我的意思是任务明确 我希望关键任务的应用程序被部署到区块链中 我希望它足够安全 but it is like absolutely no brainer I mean mission clear I want mission-critical applications to be deployed to the blockchain I want it to be like secure enough
而形式验证似乎是唯一真正做到这一点的方法 and form verification is like the only way that really do that
但与此同时 我并没有强制执行 我觉得 but at the same time I don't making it mandatory I feel like
是的 就像我在 reddit 上发帖用到的那样 yeah like would you that I used in a reddit post is that
有点像血型 就是你知道你的应用程序或者你正在献血 你想要 o 型血 it's kind of like blood type is where you know if your app or if you're giving blood you want to have type O blood
所以你可以影响 你可以给每个人。但是如果你接受了，你想要 II b 型血 so you can kind of effect you can give it to everyone but if you're accepting it you want to have type II B's to you
你可以接受每个人的。所以对我来说并没有验证。图灵完备的虚拟机类似于B型血 you can accept it from everyone so to me like the currents not verified at all Turing complete virtual machine is kind of like type a B
因为任何东西都可以编译成它 because everything can compile into it
所以你知道的 开发人员想要在最近的开发编程风格之间做出怎样的权衡 无论他们用更高级的语言能做什么 so you know whatever trade-offs developers want between recent development programming style whatever they can do it
更高阶的语言您允许更少的限制 因为系统可能是不同类型的 and higher with higher-level languages that's the place where you might want to have no more more restrictive as systems possibly of different kinds
但是 但是你不想有一个证明来显示编译器与此类似 and but but but what you don't want to have a proof or obligation to show that the compiler to this like
你知道 你不想有任何协议级别的义务去证明 you know what yeah you don't want to have any obligation of protocol level to be kind of provable like
这是一个我认为应该在顶层的高级语言系统中完成的任务 it's a I think it should be instead of done in a high level language systems on top
不 我的意思是 你必须证明 可以验证的高层次的东西编译到低层次的东西 no I mean you'll have to prove that the high level thing that can be verified compiles down to the low level thing
是的 正确 如果你想要更纯粹一点的话 all right yes correct if you want to kind of be purist about it
你就得写一个你的形式来证明这里的高层级的属性在那里降到了低能级？ you'll have to write a form of your fire that proves that the properties of the high leve ls that have been here are down to the low level there
你证明了编译器的正确性 然后你必须证明虚拟机的正确性 you prove the correctness of the compiler and then you have to prove the correctness of the virtual machine
这比一开始就考虑到这一点来设计虚拟机要难得多 right which is my understanding is that that's harder to do than to design the VM from the start with that in mind
没错 that's correct
这里的要求是 我听不见你说的 the requirement is that again here I couldn't couldn't hear you
你能对不同的鲨鱼有不同的要求吗？ could you have different requirements for different sharks identical
但是我的意思是 这对他们来说是最大限度的 我们应该尽量不让开发者应对不同的环境 but so I mean this is like a to them to the maximum extent we should we should try to not have the developer reason about different environments
他们的应用程序，对我来说这就像在第一个图表 that their application I'd be sitting in like to me it's like idea that like at least for the first charting
我们没有不同的环境 that we don't have different environments
对 right
我的意思是 在某些领域我们展示的是不可避免的权衡 I mean there are areas where you know there are inevitable trade-offs that we showed me
有可能表达出这种权衡 get kind of possible to express the trade-offs
但是它应该尽可能的简单和尽可能的理想的低维度 but it should be as simple and ideally low dimensional as possible
？
比如说提供不同级别的安全保障 like for example maybe like providing different levels of security
但已经解决了 but that's fixed ？
抱歉我没听清楚 sorry I didn't catch that be
我只想说 是的 这是个很好的例子 I'm just going to say yeah that's I mean it's a good example
如果我忘了我还要说其他方面的 and it's if I forgot what other point I was going to make
哦 是吗 但你没有？ oh is it but you were not ？
不 对不起 我们正在很好地谈论彼此 no yep no sorry we're talking over each other well
我只是想说我有点意识到以太坊情境 I'm just gonna say that I'm sort of aware of the eggs Aegean Seas of the ethereum situation
这就是为什么我想做一个干净的实现 so that's kind of why I want to do a kind of clean room implementation
我们有一个 byconstruction 虚拟机 我们有一个正确的 byconstruction 编译器 where we do have a byconstruction vm we have a correct byconstruction compiler ?
以及所有这些事情 然后就不必这样了 and all of those things and then that doesn't have to be
你知道人们可以随便玩玩的 you know people can just play with it right
我们可以把它放在那里 它可以是开源的 人们可以使用 we can just put that out there it can be open source and people can play with it
你知道为什么它不一定是公认的以太坊 and see you know why you know that it doesn't have to be it doesn't have to be the the accepted ethereum stuff
但它确实可以作为一种教学工具 but it can certainly serve as a pedagogical device
我的意思是 这显然总是被需要的 对吧 i mean that's that's oh that's obviously always going to be wanted right
问题是我们怎样才能在不失去向后兼容性的情况下 从以太区坊区块链这种形式的验证工具中获得好处 the question is how can we like get the benefits of this form of verify stuff in the you know main a etherium blockchain without losing the backwards compatibility
我们基本上是不能妥协的 that we like basically can't compromise on
是的 我想你知道这是肯定的 因为他们的名字是图灵完备的 yeah and i think i think that you know it's certain I mean since since their name . is turing-complete
对 我们当然可以从一个 虚拟机到另一个虚拟机做一个转译器 right we can certainly make a transpiler from from from one VM to the other
你知道你可以证明关于EVM的正确性假设 and that you know and you prove that you can prove that correct up to the assumption of the correctness of the EVM one point
是的 但不是现在执行 很高兴知道你的类型是正确的 oh yeah and though that would be what's that but not now do the execution uh nice to know your types right
这就对了 所以这个想法就是你有你的类型和正确性 让我们把这个叫做 PI pm 好吗？ that's right so so so the idea would be that you have you have types and correctness down to this let's call this the PI p.m. okay ？
因此，您可以一直输入和正确性到 PI BM，并需要一个从 IBM 到 EB 的编译器。 so you types and correctness all the way down to the PI BM and a need to a compiler from the IBM to the EB in . right
所以你得到了所有的正确性，包括 EVM 的 so you get you get correctness all the way down including to the surface area of EVM .and then all bets are off
那么为什么我们要在 EVM 上运行 PI AVM 程序呢？ so why would we want to run PI AVM programs on the EVM
是不是另一种方式？ isn't it the other way around them that the ones in it
如果你这样做，他们在那里你可以是的，我同意你不会想要它 你不一定想要瞄准它 if you if you so they're there you could yeah I agree you wouldn't want it you wouldn't necessarily want to target that
你当然也可以做一个跨 IBM 到 PI BM 的编译器 you could certainly also do a across compiler from IBM to PI BM
你必须做类型推断 you'd have to do type inference
没错 exactly
是的 但是为什么你认为这是必要的？ right but but so like why why can't we like yy-you think that's necessary
我们需要吗? 我们不需要那么严重的类型 do we need we don't need types that badly for like like for it to like work
是的 你从来不需要类型化的执行 你可以做你所有能做的 你总是可以做类型化的东西的非类型化版本 yeah you you don't ever need typed execution that's not that's not you know you can all what you can always do untyped versions of typed things
只是随着时间的推移 这样做的代价要大得多 it's just that that ends up being much much more costly over time
同意 这样的结果就是可能会更昂贵 对吧 agreed yeah and and and so you know and like they're like could be you know that could bemore expensive as a result of that right
是的 确实这样的 yeah exactly
所以这多少有点意思 我更担心的是我们的另一个目标就是有不同的实现版本 so that's that's more or less fun the thing that I worry more about is I guess like one other goal that we kind of have is for all these different implementations to be able to do like follow suit
是的 让我们来说说这是什么意思 yeah let's say what does that mean
意思是实现方式类似于参考实现？ meaning like implement insync up with with what with it with whatever is like the reference implementation ？
我的意思是我希望在参考实现中尽可能形式化验证这个想法 and I mean I'd like the idea of having in the reference implementation be as formally verified as possible
是的 我同意 我认为形式化验证的参考实现是社区的黄金标准 yeah I agree I think the reference implementation the being formally verified is that is what would be the gold standard for the community
我仍然认为参考实现应该是用英文的 I still think the reference implementation should be in English
这可能是最高级别的规范 但我的意思是 人们将写的和参考的红色的东西 当他们编写和实现应验证 the that could be like the top level spec but I mean like that the red thing that people will write will reference when they're writing and implementation should be verified
所以当他们写一个实现的时候？ so when they write an implementation
哦 我有一个关于英语规范的小故事 oh I have a short little story about specs in English
我写了一个 ATM 网络管理系统 或者把我送到住友银行？ I wrote a ATM network management system or send me to a Sumitomo a bank ？
我用一种反射语言写的 他们突然想要英文文档？ and I wrote it in a reflective language and they suddenly wanted in English documentation
我花了一个周末写了一个代码到英语的翻译器 so I took the weekend that I wrote a code to English translator
我在ATM 网络管理系统运行了一下代码 I'm like and I ran it I ran it on on the ATM network management system code
然后交付了英语规范 and then delivered the English spec
你知道 因为我把它送到了一个非英语国家 他们对此非常满意 and you know because I was delivering it to a non-english speaking culture they were perfectly happy with
我完全可以这样做 我想做的是能够采用像英语规范一样 I can totally like so there's like what I would like to do is be able to take like the English spec
把它翻译成可以被机器证明的东西 and like translate it into things that can be proved by like a machine
但是这不是重要的 这就像是验证代码的一个想法 but also the important thing isn't so much it's like the idea of verified code right
正在验证系统属性 there's verifying the system properties
他还在那里 and he's still there
你知道有一个 ALICE 但是实际上还需要验证一下代码是否具有能力属性 I'm like you know just an ALICE but then there's like actually verifying that the code has the ability properties
是的 没错 yeah that's correct
我们需要两个层次 we want we want both levels right
我们要收敛的证据证明 we want you know proof of convergence
然后实现与规范匹配 and then that the implementation matches the spec
我认为这将是非常好的 yeah I think I think that that is I think of thatI think that that would be great
问题就是像你知道的那样 这种验证形式显然是以我们更高的理解和劳动成本为代价的 the question is like you know it like form of verification obviously comes at our higher cost in terms of understanding and labor
但你知道 我觉得这很值得 but you know I think that is like probably worth it
所以我们能不能换个话题 总结一下我在Casper上遇到的实际问题 um so can we just move on to a bit of a different section the sum up practical issues that I've come up with around the Casper
好的 great
所以其中之一问题 基本上有这个想法就是 验证节点实际上有一个动机：在创建区块之前有尽量延迟 so one of them is this issue of so basically the idea is that validators actually have an incentive to delay before creating blocks as long as possible
因为这样可以让它们获得更多的交易 because that lets them grab more transactions to get more views
我想知道有没有什么办法可以减轻这种影响 这种影响能坏到什么程度 okay so I'm wondering if there is any way around that any way to mitigate that effects to what extent is that effects bad
我想 区块会用尽可能快的方法减轻它的影响 对吧 well I mean the blocks fast as possible approach mitigates it right
不 问题是你没有它 假设你有一个盒子尽可能地快 well no but the problem is that you don't have it so okay so let's say you have a box as fast as possible approach great
然后假设你有一个时间限制 如果某个验证节点没有显示下一个值 你也可以替代它们显示 then let's say you have some time limit between you know after which if some validator doesn't show up the next value either you can show up in place of them
以验证节点可以有一个默认策略 当你开始在其他验证节点上积极下注 so that validator can can play some I mean there's like there's l ike a default strategy about when you start betting aggressively on that in the other guys block
但那家伙可以发布他的区块 but that guy can publish his block you know
一旦他发现 他怀疑网上有其他人在线 as soon as he has an inkling that he suspects that this other guys in online
我不知道那种感觉是不是也一样 I don't know that feels a bit too
我错过了话题 你关心的是什么 I missed the concern what is your concern
我的话题是 假设实际上验证器有一个动机发布一个区块 在一段时间内 the concern is suppose that practically speaking a validator has an incentive to publish a block you know within you know simple as some period of time
那么在这个验证器中实际上有一个延迟发布区块的动机 then in that validator actually has an incentive to delay publishing a blocka bit
因为发布区块会增加时间，验证器不得不收取相应的交易费用 because publishing the block a bit will in group will increase the a mount of time that that validator has to collect transaction fees
或者挑出那些能给他最多费用的交易 yeah or to pick out the transactions that like give him the most fees that are the ones that he has built
是的 如果gas费没有被填满 那么大多数交易如果被填满的 那么这就是收入最大化的问题 yeah yeah so if the gas will emit isn't filled it's about the most transactions if you guess home it is filled it's about maximizing revenue
是的 唯一能抑制他们积极性的是他们的区块没有装满 yeah true and the only thing that is like disincentivizing them is their probability of their block not getting it
对 但问题是我们不想依赖这个机制 right but the problem is we don't wants to rely on that mechanism
因为如果独一无二的话 这个机制就会很强大 而且会产生很高的动机去获得更高的网络连接性 这是不起作用的 这就是中心化的风险 because if unique that mechanism strong and i creates a high incentive to be bit to have higher network connectivity which is really don't work is the centralization risk
我对中心化的分析是基于抑制卡特尔 so to me like I do analysis of centralization based on like be kind of like disincentive of like a cartel to exclude the non corner
我一开始就试图阻止卡特尔的形成 yes I'm trying to prevent cartels from forming in the first place
我只是假设它们会形成 I just assume that they'll form
我认为你可以或多或少地喜欢 I think you can Likud form to a greater or lesser extent
所以你知道 每个人都有动机把他们的机器组合在一起 so but you know there always is an incentive for every one to get their machines together
我实际上是在尽可能地让这个动机变得更好 because in there well I'm actually trying to make that incentive be as well as possible
所以我试图创建一个系统 只要你能做到 网络时间可靠地低于 4 秒 so I'm trying to create a system where if as a long as than that you can the network time is reliably below four seconds
你得到的基本上是一样的 或者说不管怎样 and you get basically about the same or what's no matter what
好的 所以基本上通过使用时间 为了更具体的时间表 当验证节点验证区块 okay so basically by using you know time yeah like me in order to like more specifically like schedule when validator lotteries blocks
如果这就是你的策略的话 yeah if that is your strategy for doing that
所以很自然的 他们会有动机在自己的周期结束时给区块多少小费 mm-hmm yeah so naturally they're just gonna have an incentive to tip how much block at the end of their period
尽可能的靠近它，并且对于相反的情况进行slash right or as close to it and slash like as opposed to over as they can get it
我想你可以这样做 如果验证者有更强的网络知识 yeah and I guess you could make the case that if a validator has stronger sort of network knowledge
这样他们就能在接近期间结束的时候行事 then they can time themselves closer to the end of the period
因为他们更清楚以后发布和不被收录之间的权衡 because they have a better idea of the trade-off between a publishing later and not getting included
对 我想说的是 如果你防止中心化的策略是给人们安排时间 that's true but what I'm saying is that if your strategy to prevent centralization is to give people schedule time
那么他们肯定会安排好时间 then like they're definitely
理论上来说 我没意见 yeah and look theoretically I'm fine with that
但你刚把它当作一个担忧提出来 but you just raise it as a concern well
不 我担心的是 理论上我能接受 no so my concern basically is that I'm fine with it theoretically
但另一件让我恼火的事实是 but the other thing that that annoys me basically is the fact
在这种环境下人们仍然有动力改善网络连通性 that in that kind of environment there is still an incentive to have better network connectivity
因为我们可以带来更好的网络连接 然后你可以更接近你的时间段 because we have about bring that better network connectivity then you can go even closer to the end of your time slot
你仍然确信那些可能包括在内的东西 and you still be sure the what yet probably gets included
说实话 我个人觉得鼓励人们拥有更好的网络连接是件好事 and I mean honestly like I personally feel like it's a good thing to incentivize having better network connectivity
因为我不认为这是中心化和这个协议的主要力量 because I don't think that that's actually like the main force of centralization and like this protocol
我的意思是网络依赖于如何影响收益 um I argue I mean if network depends on how affects profits
但它也会影响用户体验 yeah it does but the but it also affects user experience right
验证器的连接越多 它们越不出现问题 我的交易收据就越快完成 the more connected the validators are and the less they like have hiccups the more quickly my transaction receipt is finalized
是的 你知道 尽管我认为在中心化风险和收敛速度之间有一个权衡 right ya know so though I think there is a trade-off between like centralization risk and Ohelp convergence speed？
对 yeah exactly
我的意思是 对于工作量证明来说是真的 对于任何系统来说都是真的 I mean it's true for proof of work it's true for I think any system
是的 我想这是真的 yeah and I think that's I think that's true
但我认为中心化的主要来源实际上是利用卡特尔的动机来做坏事 but I think that the main source of centralization actually using the incentive of the cartel to behave badly
如果我们处理得相当好 那么下一个主要的中心化来源是什么 if let's say we deal with that reasonably well what's the next major source of centralization
成就或自动攻击 and also achievement or automating attacks
什么样的攻击 散发着浓重的悲伤气息 what what kind of attacks reeking weighting griefing briefing
好吧 okay so
卡特尔 griefing 然后也许是运营成本和网络？ cartels and griefing and then maybe then maybe operational costs and network
所以我会给出一个实际的经验证据 so I'll give the practical piece of so empirical evidence which is that
我们看到了比特币的中心化 我们看到了以太坊矿池中心化 we have seen centralization you know happen in Bitcoin we've seen - mining pool centralization happen in etherium
一般来说 这种情况的发生有几个原因 and ingenerally that happens for a couple of reasons
其中一个原因就是 so one of those reasons is just
在工作量证明的情况下 或在矿池工作量证明情况下 well in the proof-of-work case it's or in the proof-of-work mining pool case
这是因为更大的池子可以提供更低的方差 it's because bigger pools can provide lower variance
我认为其中一些也是这样的原因 and I would argue that some of it also is that
如果你经常看一些不同的矿池 这些不同的矿池理论最终会有不同的感觉 if you like if you look at some of the different mining pools quite often these different mining pools theory end up having to a different feel
不 你掉线了 我不确定你是不是和大家失去联系了 oh no you're breaking up I'm not sure if you're breaking up for everyone
你们现在听得更清楚了吗 I'm are you hearing me better now
我一直都在这里 I've been here you find the whole time
好的 另一个挑战是 okay the other challenge is that it like
例如 实际发生的一件事是 one thing that actually happened for example is that
池子里的那个人把他们的矿池服务器在相同的数据中心作为矮人池？ the person from pool I think put their mining pool server in the same data center as a dwarf pool
我设法在某种程度上减少了他的Uncle率 and I managed to reduce his Uncle Ray to some extent
所以这种事确实发生了 so this stuff does happen
但我认为改善工作比改善状态更容易发生 yeah and but I think that it happens more improved work than improve state
因为你实际上并没有从排除他人的区块中获益 because that you don't actually benefit from excluding other people's blocks and
他说的是工作证明 这不是要排除人们的区块 因为迄今为止这些矿池都没有积极参与排除任何人的策略 no yes that he was in the case of proof of work it's not about excluding people's blocks like none of these mining ports have so far actively engaged in a strategy of excluding anyone
到目前为止 它们所做的一切都是试图让自己更靠近彼此 以减少所有红色 so far all that they've done they've tried to situate themselves closer to each other in order to reduce All red's
没错 yeah exactly
所以他们想要降低自己的叔块率，他们不一定要提高别人的叔块率 so so they wanting to reduce their uncle rates they're not necessarily trying to increase other people's on her rates
嗯哼 虽然他们可能实际上是间接地这样做 因为其他人很清楚其他矿工不会接近中心 mm-hmm only although they may actually be doing that indirectly because other knows well other miners won't be close to the Centro
因为一般来说 如果一个人走得更近 就邀请他 well no well because okay so ingeneral right invite if a moves closerto be
你是一个可爱的机会 可以让你看得更远 而不是让你看得更远的问题 you a cute chance that's gonna make see further away from the question of whether that makes see further away
或者更接近于Section boolean 确定它可以是任意一个 or closer to a is like in Section boolean determine that it could be either one
我们有些人知道有些节点 right exactly so we're so some knows but some know for some nodes
在那之前我们已经讲过一些了 所以平均来说它的影响是中立的 it'll be about so we go through some of those before there so just arguing on average that the effect of that is kind of neutral
但是你知道 但是在 Casper 看起来比你知道的更多 but you know but in Casper it's like it's much more you know
是的 在 Casper 我们有更强烈的动机去做那些增加所有原始数据的事情 yeah yeah in Casper we have a stronger incentives knots to do things that increase all the raw data soon Cory
我同意 对我来说 我想说这样就足以减轻所有这些风险直到让我满意 it's I agree and to me like that I want to say that like that is enough to mitigate all the all of all of these risks like to my satisfaction
对我来说可不是 mmm not to mine
因为接下来会发生的事情就是卡特尔会走得很近 and then and and because like what will happen is that like the cartel will move close to close together
那些不合作的成员就不会那么接近卡特尔网络了 and then the non coordinating members won't be so close to the cartels Network
卡特尔不会有什么动机的去耶路撒冷 and the cartel won't have an incentive Jerusalem
看看你对卡特尔是否满意 see if you're comfortable the cartel
然后你就可以放弃这种去中心化的共识的东西了 then you could just you know give up this decentralized consensus thing
在银行中可行 and make available in the bank
不 完全不对 no no no that's not right at all
我想要一个在寡头垄断的环境下有消费者担保的市场 这样的卡特尔就不会发生 I want I want a market that has Consumer Guarantees in an oligopolistic setting where like cartels can't happen
我觉得我们可以做到 and I mean I think that we can actually do that
我是说我觉得不会是伯特或者你知道的 I mean like I don't think it'll be Bert or you know
我认为总的来说，有一个比无声的寡头垄断市场提供更好的性能的市场是好的？ okay I think that's such in general having a market that provides better properties than inaudible oligopolistic setting is good
但我认为避免寡头垄断倾向或者一开始就减少这种倾向更好 but I'd argue avoiding oligopolistic tendencies or mitigating them in the first place is even better
我认为他们不可避免的 I think that they're inevitable
但问题是他们是更大还是更小 I mean well you are but the question is are they greater or smaller
因为这是一个经验事实 你知道在以太坊中 如果你想进行51%攻击，你需要矿池 because it is an empirical fact that you know in etherium you need to pools to get 50 51 % ?
只有一个矿池你是做不到的 but you but you can't do it with one pool
如果你降低到了个体矿工的水平 即使是在比特币中 if you go down in the level of individual miners you know even in Bitcoin
这是一个经验事实 你需要四个或五个矿工 他们得到51% it's an empirical facts that you need like four or five for them to get 51%
但你可以利用这个机会和他们中的一个做 but you can do your chance to do it with one of them
所以实现肯定会变得更好或更糟 so actualization can definitely get better or worse
同意 但就像协议一样只会让事情变得更糟 因为它具有对抗性的动机 agreeing and but like the the protocol really only makes it worse in as far as it has adversarial incentives
不 协议可以在两个方面使它变得更好或更坏 well no the protocol can make it better or worse in two ways
其中一种音乐可以有对抗性的动机 one of the music can have adversarial incentives
其中之一就是他可以有联合的动机 one of them is that he can have incentives to coalesce
因此如果它创造了激励赞同我们 即使是关于对抗性激励 so if it creates incentives to call us even about the adversarial incentives
那么你就知道在学校它是如何有动机去买F来凑钱什么的 then you know in school how it has the incentive to buy F to pool or whatever
或者你知道他们有合并或共同定位的动机 还有我定位的东西什么的 or you know they have an incentive to merge or co-locate and what I locate or something
是的 我绝对认为这是令人担忧的 yeah yeah yeah and I definitely think that is concerning
但我想说的是 but but the thing that I want to be able to do is to say
就像你知道如果有些人只是想寻求网络的帮助 that like you know if there are some people who are just like looking out for the help of network
然后他们会喜欢持久的 他们的盒子将被包括 他们不会喜欢被踢出去 then they will be able to like have you know whose enduring and their box will be included and they won't be like kicked out
是的 人们正在寻找网络的房子 一般来说，我们应该努力让他们能够参与其中 yeah people are looking out for the house of the network that in general we should strive for them being able to hit participate
参加展示或者零以上的收入 and in show and or an above zero revenues
即使他们不是在卡特尔中 and and you know even if they're not in the cartel
没错 yes correct
是的 即使它们只是整个 Ebonics 中相对较小的一部分 yeah and even if they only make up some small relatively small portion of the overall Ebonics sake
所以总的来说这听起来就像我听到的一样 okay so in general what this sound the way that this sounds to me basically
这并不是一个很好的交易方式 is that there isn't really a good way of kind of making transactions
我认为这些交易费用是无关紧要的 或者像我这样的人确信消除等待更长时间来获得更多交易费用的动机 these transaction fees I suppose irrelevant which or a certain like me yeah making sure removing this incentive to wait longer to get more transaction fees
你当然可以减少这种动机 但你不能做的是我们产生了重新安置的动机 you can definitely reduce that incentive but what you can't do we produce the incentive to relocate
你如何减少等待更长时间的动机 它就像有一个反向激励来更快地生产一样 okay so how how can you reduce the incentive to wait longer it's like just having a counter vailing incentive to produce faster
我想做的是 我尝试让这些激励在可接受的范围内尽可能接近于零 you yeah okay so yeah see what I'm trying to do is I'm trying to kind of make all these incentives sort of as close to zero as possible within the acceptable range
尽可能快地制作区块还有另一个目标 就像你知道科学会越来越快一样来自香烟 um but but so but if but making blocks fast as possible has another goal which is that like you know science will get faster comes at cigarette
不 这是你的经验 是的 这是另一个原因为什么我喜欢如此理想像一个验证节点 yeah no it is your experience yes yeah yeah that's that's another reason why I like you know so ideally like as a validator
你应该害怕等待超过一段时间 you should be like terrified of waiting more than some amount of time
这个时间应该由协议规定 and that amount of time should be given by the protocol
我想对你来说没问题 只要你同意就行了 and I guess to you you're okay just give me an approval
你知道我很高兴只是选择一个数字 yeah no you know I'm happy just pickinga number and saying like what I'm happy with is the idea
也就是说我很高兴的是我们有一个同步选择的想法 that we have a synchronous option
我只是浪费了四秒钟 因为这看起来很合理 and I'm just throwing out four seconds cause it seems reasonable
而且我能够在同步假设的基础上提出收敛保证？ yeah and me being able to make a claim that within that synchrony assumption on top of converges guarantees
我们也有一些类似于反集中化的类似于回报线性的保证 we also have some of these sort of anti centralization kind of marked sort of pay off linearity guarantees
那么如果一个客户向一群验证器广播一个交易请求呢 so what about if a client broadcasts a transaction request to a bunch of validators know
那么验证器当然会受到激励 then the validators would of course be incentivized
因为可能会提议包含来自其他验证节点的交易区块 because the block may be proposed that includes the transaction from some other validator
所以他们错过了费用 so they miss out on the fee
这意味着区块在某种程度上是竞争的 right so this is a this implies that blocks are in competition to some degree
这没关系 对我来说在一个有交易费的环境里避免竞争可能比我想象的要难一些 hmm which is okay yeah so it sounds to me like within the in an environment with transaction fee is avoiding competition might be a bit harder than I thought
可能几分钟左右就会下线 um possibly to drop around minutes or so
我一会需要离开 yeah Ishould I need to leave in minus
但是这里有一个问题 跳过区块的惩罚应该比交易费用高一个数量级 um but so here's the question the penalty for skipping blocks therefore should be an order of magnitude higher than the transaction fees
这是对跳过区块的制作人的惩罚还是对所有人的惩罚 um is this a penalty that gets applied to the producer who skips or it's everyone
问得好 that's great question
我的意思是惩罚已经适用于每个人 I mean the penalty has applied to everyone
但是我想我要做的是有动机去做 but but what I guess what I want to do is to have the incentive my incentive to
好的 Vlad（V神） 我认为我们应该做的一件事就是默认情况下更多地参数化 so so Vlad I think one thing we might want to do to try to parametrize things more is by default
假设所有的惩罚和奖励都归一个人所有 这个人负责触发这些惩罚和奖励的行为 let's say that all penalties and all rewards just go to a single person of course you know responsible for whatever activity trigger those penalties and rewards
除此之外，还有一个单独的因子 and then on top of that we have a separate factor
你知道我们可以给它一些花哨的希腊字母 我们可以叫它 Omicron you know we can give it some fancy Greek letter we can call it Omicron
因为没人喜欢卡片上的其他东西 because nobody likes on the card otherwise and it
基本上我会让你们取平均值 然后乘以犯罪率 然后把它减去一些常数分配给所有的验证器 and basically I'll make you take the average piece and you take multiply that by on the crime and you distribute that minus some constants to all of the validators
所以理论上 如果我增加一些正常数 如果 McCrone 基本上是 so the theory is that you know if McCrone is like basically if I'm if I'm growing some positive constants
那么如果有5个旷工 你认识所有这样的人 而我不知道 或者别的什么 then if some miner who is five then you know everyone who is this I don't know it . or whatever
或者你知道按比例相乘 or you know proportionately multiplied
所以你知道可能会有损失 就像你知道两个或更多东西分配给每个人 so you know there might be a loss of like you know two or something split among everyone
所以对跳过区块的惩罚就像集中在一个人身上 okay so so so the penalty for penalizing would be sorry for skipping blocks would be like concentrated on one
这个想法是 如果有惩罚针对跳过区块的人 比如跳过X次 so the idea is that if there is the penalty versus so them in or who skipped would be penalized what say X
然后就会有x倍Omicron的罚金这就会被每个人瓜分 and then there would be a penalty of x times Omicron and that would be kind of split among everyone
我真的很不满意这个 为什么 I really am not happy with that why
因为我希望旷工没有等待的动机 because I want the miner not to have an incentive to wait
我想让他们完全知道 I want them to like know completely
如果矿工跳过 他们会受到惩罚 所以矿工有不等待太久的动机 yeah some of them like so the idea is that if if a miner skips then they get penalize that so the miner doesn't have it has an incentive not to wait too long
如果被跳过 就会受到惩罚 and so if it gets skipped it gets penalized right
如果被跳过 就会受到惩罚 and so if it gets skipped it gets penalized
你怎样看 我无所谓 oh I see um what do you think I'm fine either way
对我来说 你们知道我希望使用的效果是每个人都能花点费用 to me you know the effect that I was hoping to use is that everyone would make less fees
因为我实际上在做的是把我的区块分发给每一个人 because the thing that I'm doing actually is I'm distributing my block to everyone whose conversion that block
如果我们有这个 Omicron 参数 每个人得到的 b 都比较少 如果有 a 或者每个人都猜想如果有跳过会有怎样结果 okay so if we have this Omicron parameter than everyone gets a less B's if there's a or everyone guess what if there's a skipping
因为失去钱的人正好被跳过了 but because the person who the person who lost money being skipped exactly
这样就可以了 所以只要这样引用 我认为这实际上是相当不错的 so that could be fine so so as long as that so the quote that so that I think that's actually quite quite nice
因此 只要费用是一个数量级大于交易费用 那么你真的不会想要你的盒子礼物 so that so as long as that fees are an order of magnitude greater than the transaction fees then you you really will not want to have your box gift
这样你就有了发布的动机 就像约定的那样 right and so you'll have an incentive to publish it like you know well as arranged
对 所以这正是我觉得满意的事情 right right and so this is exactly the kind of thing that I am quite comfortable
我的意思是我们要考虑的另一件事 我甚至不确定 不用担心 这是不可能的 okay yeah I mean the other thing we'll think about is this well actually I'm not even sure - no never mind you probably is impossible
好吧 一切会好的 okay no that's fine
我还发现了私有随机性的一个问题 I also discovered one issue with private randomness so which is basically that if you particularly
如果你开始特别依赖私有随机性进行分片 if you start relying on private randomness for sharding
那么就有可能发生协同状态无休止的攻击 then there's the possibility of kind of coordinated state grinding attacks
协同状态无休止的攻击表明了对总收入的影响 where the goal of a state grinding instance the influence total revenue
协同状态无休止的攻击目标是确保每个人在特定高度上获得相同的结果 the goal of the state grinding is to make sure that everyone gets the same result at some particular height
实际上 您确实设法在一个特定的分片上解决了问题 and so you actually do manage to overwhelm on one one particular shard
等一下 至于私有随机性 我觉得我们刚才的谈话对我来说没有那么重要 oh boy wait a second so with private randomness this whole conversation that we just had doesn't mean nearly as much to me
因为你不能确定某人是否有权生产区块 because I you can't actually tell if someone has a right to produce a block
直到他们后来有可能生产出一个区块 until maybe they produce a block later
对 um correct
赌注数据采集系统是让您喜欢多样化的主要原因 so is the ante das the main reason why your let you you prefer various over
另一方面就是它通常更偏执 the other one is just it's generally more paranoid
第二点 赌注数据采集系统是更瘫痪的单片机 yeah ante doses one the other one that's more paralyzing bol
第三点 它的直觉让它更难在自私的捆绑攻击中发挥作用 the third one it just get the intuition that makes it harder to play in selfish binding attacks
循环赛有一个点很容易理解 为什么要惩罚自己那么多采矿攻击 but the round-robin has a very it's very easy to see why punish yourself so much mining attacks much easier to see actually
我的意思是问题是提前 no no I mean the problem is that you know ahead of time
当你在一半特定的高度时 when you're when you're going to be half particular Heights
其中一个人不会有特别的高度 one of the people are not gonna have particular Heights
可能会有一些奇怪的情况 在这些区块在这一点上确切在什么地方 and so there might be like weird situations where you know exactly that you know within these blocks at this point
我就能强迫它朝一个方向运动 I'm going to be able to force it gets one direction
我会受到惩罚 在我之前的验证器他们可能把共识推向了另一个方向 I'm gonna be punished the validators before me who made it might have pushed the consensus in another direction
而私人随机性是你看到你要做什么 但你看不到其他人要做什么 whereas was private ranthabyss you see what you're gonna do but you're not gonna see what other people are gonna do
当然 这是公平的 sure that's fair enough
有了私人随机性 审查的抑制作用就不那么直接了 but you but but but with private randomness the disincentive from censoring is less direct right
你不能只是这样 you can't just like
我明白了 因为总的来说你还是可以的 事实上是这样的 oh I see because you well I mean in general you can still ah actually here's the thing
当你制作视频博客的时候 when you uh if you produce any vlog
你必须展示你的哈希值 you have to pretty you have to reveal your hash
该哈希值显示了您以前可能生成的所有区块 and that hash reveal sall the previous blocks you could have produced
如果你这么说 你只知道你在以后的日期里什么时候产生一个区块 right so if you say so you know only when you produce a block at a later date
是否清楚你可能在之前的日期被审查过 does it become clear that you might have been censored at a previous date
是啊 我觉得这很好 因为每个人都得等上几个月才能拿回他们的存款 yeah and I think that's fine because everybody has to wait for months to get their deposits back anyway
我认为这很糟糕 因为它没有惩罚 当那实际上是在说湿婆标签？ no I mean I think that sucks because like it doesn't punish when then when that's actually said the Shiva tag
这里是迟早会有的东西 我只需要在拿到我的钱之前受到惩罚 here's something sooner or later it's all I need to get punished for it before I get my money
在真正的审查攻击中 他们永远不会得到奖励 因为它实际上会被审查 in an actual censorship attack they won't ever get prize because it will actually be censored
我明白了不过问题是他们永远不可能把钱拿出来 oh right I see it um well no but the thing is that in they're never going to be able to get their money out it
但是为了实际上取出 你必须提供你的原始种子 yeah basically but say in order to like actually withdraw you have to provide your original seed
只有这样你才知道我们得到的奖励是多少 and only then you know the rewards proper we get calculated
宁愿人们不取出 也不会让每个人都会因此受到惩罚 okay and if people don't withdraw than everyone gets punished for it
这是个选择 um sure that's an option
不 不是现在 如果你让人们在任何时候取出 no it's not now if you let people withdraw at any time
然后持有 这样人们可以随时取款 但是他们必须等几个月才能拿到存款 um hold on so people can withdraw at any time but they have to wait for months to get their deposit right
这不就是法律吗 isn't that the law
与此同时哈希甚至还有一些哈希正在把它拉起来 或者它们没有 如果它们没有 then in the meantime that hash even some of the hashes are pulling it up or they're not and if they're not then
所以不舒服的是 它仍然给你答案反义芯片激励 exactly yeah okay so the uncomfortable about that is it still gives you answers antisense chip incentives
我觉得这比不用熵不干净多了 you know um its till feels much less clean to me than not not using entropy at all
因为你会立刻失去跳过区块的动力 because like I immediately like you you get an immediate disincentive to skip blocks
这是非常缺乏流动性的 我的意思是人们很长一段时间没有获取他们的自己的途径 that's pretty illiquid though right I mean people they don't have access to to their funds for a long time
等等 我的意思是 这就像是验证器的作用 oh wait I mean that's I mean that's just like that's just the role of validators
我是说他们整个紫檀把他们的东西封锁了很长一段时间 I mean their whole rosewood block their things down for a long time
我觉得我们应该非常明确 yeah I mean I think we should be very explicit that
演讲的作用是一个储蓄账户 而不是一个消费账户 就像人们熟悉这些概念一样 the role of speaking is to be a savings account and not a spending account and like people are familiar with those concepts
一般来说 你知道有很多像以太硬件 是完全没问题的 and in general you know there are lots of like ether hardware's who are perfectly fine with that
我认为我们应该基本上应该做更多的市场投资 so like I think we should basically I think we should market staking more to the sorts of
是的 我是说那种对某种长期投资收益感兴趣的人 yeah I mean the sorts of people who kind of are interested in any kind of long-term stake of a long-term stake of some kind
你就知道人们可能会认为 你只需要明天把所有的花圈都花在某件事情上 then you know what people could might decide you only need to spend all the wreaths on something tomorrow
那么这和采矿业的情况相比怎样呢 so how does that how does that compare against mining in
实际上采矿是非常相似的 mining is very similar actually
采矿是非常相似的 实际上采矿是长期存款 mining is very similar actually mining is is along-term deposit
事实上你永远也拿不回你的所有存款 你得到的只是收入来源 in fact you can never get your deposit back all you get it is just you it's just the revenue stream
你没有获得收入来源 alright but here you don't get there venue stream either right because wellI
对不起 其实没关系 有几种方法 I'm sorry actually never mind so there's a couple of approaches
一个的方法是当你取出时 你就能获得所有的收入 righ one approach is you get your revenue stream when you you get everything when you withdraw
另一种方法是 我们可以让收入随着时间的推移慢慢回落到你们的排放量上 the other approach is we can have the revenues kind of trickle back to you emit up over time
当你撤回理论上两种选择都没问题的时候 你就可以拿回你的本金 and you get your principal back when you withdraw theoretically fine with both options
是的 我认为后者对市场更有吸引力 yeah I think the latter optionis gonna be much more attractive to market
好吧 如果后一种选择更有吸引力而不是完全满意的话 我也没有任何选择了 okay yeah no if that if the latter options more attractive than perfectly happy with that like I have no opinion either way
你知道轮询对私人随机的关系 okay but but but about the you know round robin versus private right in this thing
我还在试着缩小你知道的权衡范围 no I'm still trying to be like narrow down on like you know what trade-offs were making
在我看来 我的程序更适合数据采集系统保护 不知道谁会在未来制造出什么样的区块 to me it seems my program this is better for das protection and for not being able to know who's gonna be making what stretch of blocks in the future
所以这可能是潜在的 但你知道更好的应用程序 so that could like potentially but you know yeah better for the applications
是的 你认为如果你不知道将来谁会创建区块 这对应用程序会更好 yeah well you think it's better for the applications if you don't know who's gonna create blocks in the future
我的意思是或道德上 如果你知道它是随机的，那就更好了 if you do if you don't right um okay I mean or morally it's better if you know that it'll be random
因为那样你就不需要担心像你所知道的提交显示周期那样使 SuperDuper 变长 yeah because then you don't need to worry about like making Super Duper long like you know commit reveal periods
对 exactly
但另一方面 你不这样做 所以这就像循环赛一样 这是一个非常清楚的事情 你知道 but the flipside is that you don't so the so that there's like with the round robin it's like a very clear thing where like you know
如果我知道我要跳过哪个块 我有动机等待直到一个特定的点 在发布Maya区块之前 if like I know which block I'm skipping and I have an incentive to wait until I have like until a certain point before publishing Maya block
被跳过区块的人会因此受到惩罚 其他人也是 mm-h mm and the person whose block is skipped is gonna be punished for that and so is everyone else
这太疯狂了 他们可以立刻说出来 但是在你的版本中所有这些惩罚都必须推迟 当哈希变得可用的时候 right there yeah that's crazy and they can be part of saying immediately whereas in your version this all of these punishments have to be delayed for when the hashes end up becoming available
如果是这样做的 他们就必须假设 yes or if they do they have to be assumed
是的 我的意思是 是这么回事 yeah exactly I mean like the thing is that
我不太担心这些东西的原因是 I'm the reason I'm not too worried about this stuff is
因为这些个人惩罚中的每一个都可能是相对较小的比例 because what each and every one of these individual punishments is probably going to be relatively small percentage wise
据说是这样 so it's said
但是审查一个旋律就会增加很大的惩罚？ but it has to add up to a large punishment for censoring a melody
我的意思是 即使有些人采取了最愚蠢的方法 okay yes so my point is that like even if even a few takes the stupidest possible approach
你只需要做一个概率 所以如果验证器在空气中制造更小的区块 那么它就会制造更少的区块和它们的期望值 然后他们就会受到惩罚 and you just do it probabilistically so if avalidator makes smaller blocks in the air then there it makes fewer blocks and their expected value then they get punished
你知道如果我受到惩罚 它的价值得到超过他们预期的奖励价值 and you know if I gets punished its value Tory gets more than their expected value they get rewarded
即使你采取的方法会产生一些差异 但它仍然基本上完成了目标 even if you take that approach that creates a bit more variance but it's still basically accomplishes the goal
因为如果我们假设在提币期间 你得到的每一个验证节点不出块 because if let's say during the withdrawal period you get every a validator will on average make I'm no , blocks
那么标准偏差是 then the standard deviation is ?
所以你知道 在这种额外的方差中 基本上就是1% 左右 and so you know in the sort of extra variance to get out of that is basically just look around one percent
你知道如果你审查超过2% 如果超过1% 如果有人的区块被审查 and you know if you censor more than two percent of if more than two percent if someone's blocks get censored
如果我受到的惩罚比他们随机受到的惩罚要多 then you know if I get punished from that much more than they will get punished by random chance
当然 我完全理解你 我是说 我认为从长远来看 平均来看 你是对的 sure yeah I totally do you I mean I think that you're that's definitely true on average over the long run
很容易就能想出有效的机制发挥作用 it's quite easy to come up with mechanisms that give this in effect
我试图确定我们直接是否失去了一些东西 yeah I'm trying to identify as whether we lose something from the immediate
如果我们不这么做 如果我满意的话 把这些惩罚 留到以后再说也没关系 okay Amy and if we don't and if I'm satisfied that it's it's totally cool to leave these penalty nails for later
然后我就会使用私有随机性 因为我认为这对应用程序有好处 then I'll be like down to have the private randomness thing because I think it's good for applications
主要是排队 but yeah major that is the queueing
我的一般观点基本上是 人们的钱被冻结在里面 直到以后 oh right so my general argument is basically that people's money is locked in until later anyway
如果我们想要这样一种数学转换 你可以在客户端软件中对每个价值进行转换 so if we want like here's a sort of mathematical transformation you can make in each value in the client software
当你向别人展示他们的内部存款有多少时 when you show someone how much about how much money they have in their inner deposit
你所能做的不是只显示电子邮件去显示合同中的内容 what you could do is instead of just showing the email that gets shown that that's in the contract
你实际上会计算出如果他们通过贴海报的程序 他们能拿回多少钱 you would actually calculate how much money they would get back if they were to go through the poster wall procedure
所以从他们的角度来看 一旦他们知道这些内容会被审查 或者其他人 或者任何发生的事情 and so from their point of view they soon as they you know it gets censored or someone else or whatever happens
然后他们立刻看到他们的存款减少了 then they immediately see the reduction in their deposit now
我认为从双方的观点来看 他们所看到的 and I would argue that from the point of view from the point of view of both what they see
从链上最终会发生什么的角度来看 你知道他们在 x 个月后会得到一定数量的钱 and from the point of view of what eventually happens on chain which is that you know they get some particular amount of money after X months
效果是一样的 it's the effect is the same
但实际上如果客户在计算验证器的权重 but actually if if the clients are computing the weighting of the validators
根据他们所看到的 他们是他们的计算器 你想让客户验证 比如计算支付收益 right yeah based on what they see and they're their calculator you want the client to actually validate like calculate payoffs
这么二元化的砍？ mmm well so binary slashing ever
加倍验证器可以很容易地计算出他们自己的支出是多少 以及其他验证器的支出是多少 double the validators can easily calculate what their own payouts are and what the payouts to the other validators are
不是那么多 但是请注意客户不需要像我认为的那样仔细考虑细节 know too short we continue you know drunk now because I'm getting pulled on this guy literally now guys not so much but note what clients don't really needs to look at details out as much I think
客户只需要假设初始值 初始值 赌注的初始分配 okay so clients will just assume the initial the initial the initial distribution of stake
我的意思是 实际上它可以变得更加细微 例如 你可以做的一件事是 yeah well actually yeah I mean what's quite well it could get a bit more nuanced so for example one thing that you could do is
如果你有证据表明一些验证器应该有很多 你可以立即开始合并它 you know if you get evidence that some validators deposit actually should have it should be by a lot you can start incorporating it immediately
所以这完全是另一种情况 right yeah so that's that's a whole other stream
是啊 这就像客户优化一样 我会让 Python 程序员来解决这个问题 yeah that's like that's clientele optimization I'm gonna let the Python coders figure that out
我有点喜欢这样 但我也希望你知道给客户一些工作上的东西 是的 yeah I kind of like that but I also want to you know give clients something to work with that's right
让浏览器那里 人们可以看到你最新的 了解在验证器上的分布是什么 make alligator Explorer right where people can see ya up to date you know understanding what the distributionis on the validators
我同意 我需要走了 我现在接另一个电话 I agree I need to go it's like and I have another call right now
现在好了 真是太巧了 but all right now what a coincidence
我们没有打电话给对方 虽然那实际上是 we're not having a called each other though that's actually
但实际上我觉得这次谈话很像你 okay oh but but actually I feel like this conversation was like you
?