与大多数加密货币挖矿机制不同, Chia 的区块的创建与耕种池协议之间完全分离,耕种池只负责代币奖励的发放。

原文标题:《Chia 最新耕种池协议全解析》
撰文:Chia
整理:蓝贝壳云储

在 Chia 官方近日举行的视频会议「Chia Pools for Pool Operators」上,创始人 Bram Cohen 与其团队成员共同分享了 Chia 耕种池协议相关的最新信息及进展,详细介绍了 Chia 耕种池协议的设计原则、运行机制及技术背景,并再次确认官方耕种池协议将很快上线。以下内容由「蓝贝壳云储」整理自会议信息,具体内容请以 Chia 官方为准。

Chia 团队详述「耕种池协议」设计原则与运行机制

Chia 团队详述「耕种池协议」设计原则与运行机制

Chia 团队不希望其相关「耕种池」产生一家独大的局面,即便在某些情况下这种局面已经形成,他们也会保证这些大型耕种池无法作恶。(「耕种池」相当于其它区块链项目的「矿池」,Chia 官方将其获取区块奖励的过程称为「耕种 farming」,对应其他项目的「挖矿 mining」)

Chia 团队中的耕种池协议程序负责人之一 Mariano S. 表示,在大多数工作量证明机制(Proof of Work)下的矿池协议中,矿池会去创建区块,矿工则会去进行哈希碰撞,「区块的创建」直接关联于「代币奖励的发放」,这样的机制下矿池会拥有极大的控制权。

而 Chia 的耕种池协议中,「区块的创建」与「耕种池协议」之间是完全分离的,耕种池只负责「代币奖励的发放」。它收集农民 farmer (相当于其它区块链项目中的「矿工 miner」这一角色)的全部代币奖励,并按比例将它们分配给这些农民。这些农民可以运行他们自己的全节点(full node),也可以将自己连接至第三方并代理他们去为自己运行全节点。

Chia 团队详述「耕种池协议」设计原则与运行机制

Chia 耕种池设计中的基本原则

为农民保障安全:农民无需信任耕种池,农民也绝不需要向耕种池上传他们的私钥,这些私钥全部都保存在本地。

由于在工作量证明机制中的矿池不涉及到私钥,矿工只需不断进行哈希碰撞并将其提交,以此赢取奖励,矿工需将自身算力投入矿池,所以其中不存在作弊行为。然而在 Chia 的空间证明机制(Proof of Space)中由于涉及到私钥去创造签名,其农民并不与耕种池进行绑定,因此理论上农民在可以赢取 Chia 的同时又去对另一方进行签名,出现多挖作弊的行为。为避免这种作弊行为的发生并确保其安全性,Chia 的耕种池协议相对于普通的矿池协议会更复杂也更难于建设。

为耕种池保障安全:P 图(Plots)以加密的形式与相关智能合约进行绑定,而该合约指向某一特定耕种池,由此便可以防止农民作弊。1.75/.25 奖励分割机制(创建区块所获得的 2 个 Chia 代币中,1.75 个代币流入耕种池继而按比例分配给所有农民,剩余 0.25 个代币则直接奖励给赢得了那一区块的农民)也会有效抵御耕种池之间的攻击行为。

在目前的版本中,P 图里加密存储了公钥。团队曾试图将耕种池地址加密存储至 P 图中,以此防止农民的多挖作弊行为,然而这种做法会让农民无法更换耕种池,一旦 P 盘完成,他们就只能固定加入某一特定耕种池中,这不仅非常不方便,而且还会导致耕种池趋向中心化。最终团队决定使用智能合约去绑定耕种池地址,从而有效解决了上述问题。

区块创建更为去中心化:农民们可以选择运行自己的全节点,从而助力去中心化,也可以选择代理耕种池为自己运行全节点。

可自由更换耕种池:农民可以随时更换耕种池,无需重新 P 盘,同时确保农民无法为赢取更多奖励而对耕种池作弊。不涉及「注册」、「用户名」和「密码」等,农民可以直接在链上更换耕种池并直接开始耕种。

无需重复配置的区块链备份系统:假设某农民拥有 A 和 B 两台计算机,这两台计算机中用到同样的 key (同样的 24 个关联词汇),那么只要其中一台计算机加入了某耕种池,则另一台计算机就会自动加入该耕种池并进行耕种,无需重复手动进行配置。

什么是 Singleton?

每个 Singleton 都是独一无二的,类似于 NFT,一旦在区块链上创建,那么它就永远是独一无二的。在新的 Chia 耕种池 P 图中,将会包含特定的 Singleton 支付地址(pay to singleton address)。

Chia 团队详述「耕种池协议」设计原则与运行机制

用户通过 Singleton 创始币(Singleton genesis coin)来创建你的第一个 Singleton,这个创始币可以是你钱包里的任意 Chia 代币,因为用户想要在 Chia 区块链上生成记录,就必须通过花费 Chia 代币来实现,如此才能开始创建 Singleton。

在创建独一无二的 Singleton 时,用户可以将具体的耕种池相关信息加入其中,包括耕种池的地址、URL、用户的公钥等,这些信息将全部上链。

Chia 团队详述「耕种池协议」设计原则与运行机制

一旦用户想要更新 Singleton 上的信息,就需要花费这个 Singleton 去创建新的 Singleton,这个新创建的 Singleton 将拥有和原 Singleton 同样的 ID。也就是说,Singleton 本身无法修改,更新其信息也就意味着销毁旧的 Singleton 的同时创建一个相同 ID 的新的 Singleton。

当成功收获一个区块时,由耕种池分配的 1.75 个代币并不直接流入用户或耕种池手中,而是进入 Pay to singleton puzzle 里,只有耕种池才有权领取这些代币。

当用户想要更换到新的耕种池时,需要使用现有的 Singleton 去创建一个包含新耕种池信息的新的 Singleton,在一定的时间过后,用户就会更换到新的耕种池中。一个 Singleton 对应一个特定的耕种池,各耕种池通过查看区块链上的 Singleton 信息来判断某用户是否为其成员之一。

Chia 团队详述「耕种池协议」设计原则与运行机制

测试版演示

每一个 Pool Tab (耕种池标签)都代表一个 Singleton。在 Pool Tab 上,可以看到「耕种池名称」、「耕种池 URL」、「已获得奖励」、「当前难度」、「Points Balance (积分余额)」等信息。

Chia 团队详述「耕种池协议」设计原则与运行机制

用户可以选择自己组建耕种池(耕种奖励将直接进入自己的钱包地址中),也可以选择加入其它耕种池。想要加入其它耕种池,只需将耕种池地址输入 Connect to pool 的空白栏内,下方便会自动弹出该耕种池的相关信息。用户通过仔细核实这些信息,来确保自己不会加入恶意耕种池中,以免遭遇欺诈。

Chia 团队详述「耕种池协议」设计原则与运行机制

在新的 Point 积分系统中,假设 A 贡献难度是 1000,B 是 10,那么 A 自然比 B 更重要,价值更大,因为 A 的证明比 B 的证明难度更高,当用户通过耕种池耕种时,在耕种池的数据库中,他们会被授予和所贡献难度相应的积分(如贡献难度为 10 则会被授予 10 个积分),由此耕种池就可以追踪用户所拥有的积分,用户也可以随时查看自己的积分。

在 P 盘时的设定菜单中加入了 Join a Pool 选项。在选项单里可以选择 none,即按照以往方式自己耕种,或者也可以选择由自己创建的 Singleton (每个 Singleton 指向某特定耕种池)。

Chia 团队详述「耕种池协议」设计原则与运行机制

Q&A

Q: 我可以用一张 P 图加入两个不同耕种池吗?

A: 不可以,你的 P 图与 Singleton 绑定,而一个 Singleton 一次只能指向由你自己设定的某一特定耕种池。

Q: 耕种池可以封禁用户吗?

A: 可以,因为 Singleton ID 加密存储于 P 图中,所以耕种池理论上可以封禁用户。虽然耕种池无法禁止用户将自己指向其耕种池,但是耕种池可以通过不向用户发放奖励的方式封禁用户。无论如何,耕种池奖励依然是由耕种池控制。

Q: 耕种池有可能卷款跑路么?

A: 如果耕种池支付了你应得的奖励,那就没什么问题。不过一些流氓耕种池可以在支付间隔——也就是三天之内卷款跑路,理论上这类流氓耕种池确实可以在三天之内收集所有奖励,然后不把奖励发放给农民,自己卷款跑路。因此,耕种池的名誉是用户在加入某耕种池前需要调查清楚的重要事项,毕竟没人想加入流氓耕种池。另外,用户永远都有更换耕种池这一选项,用户一旦发现自己加入的耕种池不太对劲,就可以马上更换到其它耕种池。

Q: 用户如何使用 Singleton?

A: 用户通过 Chia 官方的图形操作系统来创建 Singleton,在相应界面加入一个 P 图 NFT 即可。对于没有 Chia 代币或 mojos (Chia 代币的最小单位)的用户而言,可以去 Chia 官方水龙头领取,地址为 faucet.chia.net,或者用户也可以从自己的朋友那里拿些 mojos。

Q: 当为每个用户的证明(proofs per user)设限时,是否同时会为单用户耕种规模(farm size)设限。

A: 不会,这两者是独立的,如果你有 100P 空间,同时把证明难度设置的非常高,那么你最终得到的每日证明量可能会和拥有 1T 空间的人一样多。

Q: 对于想要使用多个 Singleton 连接同一耕种池的用户而言,是否需要每个 Singleton 单独登录?

A: 是的,目前每个 Singleton 需要单独登录。不过这只是 Chia 耕种池协议的第一个版本,后面还会陆续加入更多功能。

Q: 1.75/.25 奖励分割比例是否可以更改?

A: 不可以,这一比例存在于源代码及共识之内,因此无法更改。我们之所以加入这一比例,是因为如果存在某一耕种池的规模在全网中超过了一定比例,那么原则上,它就可以通过攻击其它耕种池来为自己牟利。为了让全网的发展更为健康,这种奖励分割是非常必要的,它保证这些被攻击的耕种池或农民依然可以获得部分奖励。那些没有奖励分割的传统矿池协议是糟糕的。另外 Chia 的交易手续费均直接流入农民手中,因为我们希望由农民创建区块,而不是由耕种池创建区块,这也会是对抗某些耕种池的恶意行为的有力武器。此外随着今后的奖励减半,奖励分割的数量也会减半,但是比例依然保持不变。

Q: 耕种池如何设置提现的最小限额,它是否可以根据全网交易手续费的变化来进行更改。

A: 这完全由各个耕种池决定。

Q: 难度和获取证明的机会是否是线性相关的?

A: 是完全线性相关的。这和 Time Lord 的速度也有关系,不过大部分时间里我们假设 Time Lord 的速度是恒定不变的。

Q: 奖励机制会不会在未来改变?我们是否可以封禁耕种池?Chia 究竟是不是真的去中心化?

A: 关于第一个问题,奖励机制不会改变,目前我们发布的所有东西都是基于 Layer 2 的,未来我们什么都不会去变更。我们不会去分叉,绝不会去硬分叉,在很长一段时间内也没有任何软分叉的打算。再次强调,奖励机制不会改变,我们不是 Chia 网络的独裁者,这是一个去中心化的网络。关于第二个问题,我们无法封禁耕种池,因为这是一个去中心化的网络,我们并不拥有这个网络,因此它也并不被我们掌控,所以我们无法封禁耕种池。关于第三个问题,是的,我们是非常去中心化的,当然也希望未来 Chia 能够更加去中心化,以建设一个更健康的生态系统,我们希望存在多个耕种池相互竞争,而不是一家独大。

目前关于 Chia 的开发均在计划之内,只不过这个计划正在加速进行。Chia 上线后的发展速度超乎我们的想象,因此人们对耕种池协议的需求之急也在我们的预料之外,要知道距离 Chia 币价趋稳还不到一个月时间,目前我们正尽我们所能,以尽快推出耕种池协议。

Q: 任何人都可以建设耕种池吗?

A: 是的。不过想要建设并运行耕种池并非易事,你需要通过一系列相关申请,还要进行 KYC、AML 等。另外,我们当然不会建设官方自己的耕种池,我们希望这个生态系统是健康的。

Chia 团队详述「耕种池协议」设计原则与运行机制

最后,官方表示他们不会再提前预告具体的耕种池协议上线时间,而是会在官方认为目前的耕种池协议已经准备好,并尽可能解决了所有 bug 之后再上线。另外在耕种池协议的测试网版本上线后,一旦官方确认测试网版本的耕种池协议可以在没有重大 bug 的前提下有序运行三天时间,官方就会在主网为所有人上线耕种池协议。