Proof of Evolution: leveraging blockchain mining for a cooperative execution of Genetic Algorithms
阅读有问题:
- 进化证明是什么?
- 进化证明了这种方法的正确性的优点和角度?
- 进化证明了哪些缺点,哪些原因受到限制,哪些方法可以解决这些问题?
- 未来的方向
核心思想
POE与POW和POS区别与联系
使用部分挖矿组件来执行一些客户可以提交的遗传算法(GA) PoE矿工之间的合作思想已经实现。矿工在采矿过程中必须维护和开发候选解决方案,PoE为他们提供了分享他们目前发现的最佳解决方案的可能性,他们可以将这些解决方案添加到他们的团队中。 PoW只要诚实节点集体控制的计算能力超过任何合作攻击者节点组,系统就可以被认为是安全的。这一说法是基于矿工必须解决散列问题的属性,并以实例为例。 上述属性包括:
- 问题的内在硬度
- 易于解决的公共可验证性
- 所有问题的同质硬度
- 难度可调
- 区块敏感性
- 不可重复使用
- 独立同分布的计算
PoW的:保持区块链运行造成的巨大消耗。
本文贡献
- PoE采矿时可以实施优化问题,包括PoW采矿过程中消耗的部分计算能力执行所有属性GA,加强矿工之间的合作GA解决方案的质量。
- 提供来一个关于工作在采矿计算总量中的百分比估计,实验结果表明使用PoE解决方案的质量优于使用PoS结果。
nonce的结构
- nonce("sol","eval","cmp") - sol:使用中的GA可能的解决方案 - eval:精确性 - cmp:测量使用的精度函数的复杂性 nonce的结构
在 PoE 的 nonce 第三个值与操作解决方案及其评估一起要求。 每个基本操作都有自己的权重去除,这些权重不是固定的,会被伪随机变量改变,由前一块的哈希值和矿工的公钥决定。
如何引入合作?
矿工应该能够分享他们的解决方案,这样他们就不能窃取他们。 在PoS中, 这个问题是可以避免的,因为只有宣布最佳解决方案的矿工才会在比赛结束时宣布解决方案。 PoE矿工们想分享他们目前最好的解决方案:
- 检查他们的解决方案是否开放
- 检查他们的解决方案是否优于已知的最佳解决方案
- 在交易中提交解决方案时,ID以及通过评估器获得的解决方案的分数连接哈希值
- 当当前区块被开采时,他们之前的交易就被确认了
- 如果他们找到更好的解决方案,其他矿工可以将解决方案添加到他们的群体中,并使用它们进行交叉
奖励
PoE独立奖励有三种不同:
- 对发现有效nonce第一个矿工的奖励
- 提交给客户GA矿工奖励最佳解决方案
- 奖励鼓励矿工合作
采矿的奖励可以由系统分配,就像PoW第一个矿工实例化一个区块。 最佳解决方案的奖励是提交相应的GA客户支付的,就像PoS中间。这样,客户就不会有兴趣提交他已经知道最好解决方案的作业,也不会作弊。 为了建立一个真正的合作系统,我们应该鼓励矿工分享他们的个人解决方案。因此,只要他们的解决方案对他人有用,他们就应该得到一点奖励。该奖励不能由系统产生,否则客户可能会赚到欺骗的钱。因此,该奖励也必须由客户支付。系统应制定一些标准来解释解决方案是否有用,以确定何时必须向矿工支付。
安全考虑
该模型不鼓励客户为他们的工作提交解决方案,特别是他已经知道的好解决方案,因为他必须为使用该系统付费。 这个恶意的客户端可以建立一个假的评估器,它为他所知道的特定输入返回最大的分数,而为输入中的每一个其他值返回常规的分数。如果矿工在区块链中分享他们的解决方案,客户可以阅读它们,并在比赛结束时获得他支付的奖金。因此,他会从别人那里读到一些好的解决方案,而不付钱。为防止这种不良行为,PoE还需要支付有用的共享解决方案,必须由客户执行。如果客户提交了假的最佳解决方案,最好没有其他解决方案。因此,从那一刻起,将公布没有更好的解决方案。
拒绝服务攻击,防止工作执行或支付。一种方法是为候选人提交虚假的高评价解决方案。这种攻击可以与评估人员一起检查。禁止执行攻击节点进入网络,最佳解决方案的选择可以重新开始。 PoW另一个可能的问题是,它促使矿工购买应用规格集成电路形式的定制硬件。该硬件比普通硬件更有效,因此更容易使用。
测试和比较
作者将POE和POW以及POS比较。 考虑到给定作业评估师的复杂性,散列问题的硬度也相应调整。POS()设计为使用和使用POW相同数量级的能量。POE也进行了相应的调整,使其消耗相同数量级的能量。POE与POW最大的区别是,它将解决相应的优化问题。 挖掘任务的难度取决于哈希字符串开头所需的零数。在这里,我们假设哈希值存储在块中,并在16进制字符串的情况下给出硬度k,随机nonce有效概率为p=16^(-k). 有很多矿工不去,其中矿工生成了新的nonce检查其哈希值,了解有效性nonce被发现。最终操作量由所有矿工尝试的次数乘以每次尝试所需的次数。 假设一个POW采矿任务需要硬度k,则称之为:
- 可以调整PoE为了需要和PoW总操作量相等。
- 如果PoE选择特定工作的硬度是k-1, 所以每个采矿点93%的操作尝试是有益的。
- 如果PoE为特定工作选择的硬度为k-2或更小,99%的操作是有用的。
提出的:
一项工作POE硬度与其复杂性有关。
POE中挖矿任务的硬度y可以通过计算y=k-log16((w x)/w) w是制作区块哈希的计算要求,k是POW目标硬度。 如果我们有y=k-1.我们可以计算上述公式x~w(16^1 - 1)=15w。因为每次采矿尝试的计算都是w x=w 15w=16w,每次尝试的有用功百分比是x/(w x)=15/16~93%
-
IV.1 设k是POW挖掘任务的硬度,y是POE采矿过程与使用POW应设置在总量一致的硬度上。设置w为POW每次试图执行散列和检查时所花费的操作量,将x设置为POE每次尝试通过评估工作的候选解决方案生成新的nonce额外的操作量。 所以有以下两个:
-
在证明IV.我们还需要我们还需要证明 IV.2,设Pk哈希在硬度k采矿过程中的有效概率,a是期望的阈值。矿工应该尝试多少次?N,使得有K>=a概率发现。nonce是
最简单的表达方式是给定一个复杂度为x的工作,有可能找到一个硬度,使数量相等y,相反,给定硬度y,有可能工作必须复杂x,使数量相等。
POE相比较于POS(搜索证明)其优点是可以通过促进矿工合作来提高最终解决方案的质量。 在两种模式(标准和合作)下实施一套GA,固定代数用于一组不同种子初始化的矿工。 考虑到这些测试,实例:
- TSP problems (最小化)
- Knapsack problems (最大化问题
- Locolmotion problem (一个调用外部程序的复杂fitness任务)
- Symbolic Regression problem(使用GP编程)
最终实验结果表明,合作可以提高GA的最佳解决方案的精确性。
如果这篇文章对你有所帮助~ 欢迎关注我的公众号夏虫不可语冰也 同时也欢迎访问我的个人网站 未来将会出更多区块链相关论文解析哦!