BMP - The Bitcoin Mining Parliament
3.86 ms
4 sql
419 kb

比特币挖矿议会(简称为BMP)

这是一个开源工具,不需要第三方为使用爱工具负责

BMP logo

为什么选择比特币矿业议会?

比特币矿业议会 (BMP)是一个协议和以哈希算力(hashpower)为基础的投票系统,它是去中心化、链上、开源、可验证、易于使用、简单、可扩展、自愿、抵抗外部干扰和中立的。

在比特币现金的内部分歧中,BMP不会偏袒任何一方。BMP是一种与链上数据一起工作的中立协议。它和比特币现金区块链一样安全。

BMP是一个链上的比特币现金管理协议,它能够使矿工们协调他们的行动,从而给BCH生态系统带来更大的安全性和确定性。矿工们和任何受委托的代理都可以使用自己手中的算力进行讨论和投票,在共识前阶段对中本聪共识(Nakamoto Consensus)进行扩展。

BMP使过去28天内挖出BCH区块的矿工们能够以完美的方式让自己的声音被更多的人听到。BMP可以作为比特币现金治理的重要工具,从而减少分叉、内斗和纠纷等事件发生的可能性。

BMP的特性

  • 去中心化、链上、可验证。
  • 硬件钱包身份验证。
  • 实时聊天。
  • 可选多区块链SHA-256 哈希算力整合。
  • 投票(多投/多选项,可纠正误投,区块链过滤,评论)
  • BMP可以精确计算每台矿机的哈希算力(而不仅仅只是矿池)。

BMP是一个LAMP web系统,它可以连接到一个或多个比特币客户端(通过RPC)来读取区块和交易。区块链数据被这个PHP代码处理在三个SQL缓存表中:BlocksMinersActions

Actions被存储在比特币现金(BCH)中,因为它快速、廉价并稳定。 没有哈希速率的操Actions将被忽略。矿机的算力(哈希速率的百分比)会随区块的变化而变化。但算力的Action永不改变。

Action用JavaScript来编写,并通过 Trezor Connect 进行广播。未来会有更多的硬件钱包开放BMP功能。

BMP不存储私钥,本地数据库只包含公共信息。

更多细节可在BMP协议BMP paper EN | ZH | ES中获得。

参与要求

  1. 您的地址在coinbase输出中,位于您正在挖的加密货币的最后‘4032个区块’中,可以是BTC、BCH或BSV。
  2. 推荐使用Trezor硬件钱包。使用一个新的Trezor帐户(有支付交易费用的钱)。

BMP分别为BCH、BTC和BSV工作。

如何手动创建Action

如果您没有Trezor硬件钱包,您可以创建手动交易。

  • 每个矿机操作都是BCH中的标准事务(transaction)。
  • BMP操作使用Memo.cash风格。
  • 无论是BTC、BCH还是BSV,矿工的地址必须在您正在挖矿并希望参与的加密货币的最后4032块的coinbase VOUT中。
  • 矿机的地址必须在TX_PREV VOUT(任何索引)。
  • 矿机的地址必须在VOUT索引=0。
  • OP_RETURN有效负载在VOUT的index=1。
  • OP_RETURN前缀: 0x9d
  • OP_RETURN尊重BMP协议

BMP通过web简化了 OP_RETURN hex(十六进制)。

下面是一些手动操作的例子:

信号和哈希算力委托

  1. power_by_value 默认情况下,BMP使用coinbase value 计算每个输出地址的哈希算力所占的百分比。这使得它与所有的比特币区块兼容。有了 P2Pool,即使最小的矿工现在也可以参与进来。

  2. power_by_opreturn 为了不影响挖矿操作,第二种方法允许在一个或多个地址中使用coinbase OP_RETURN输出哈希算力 coinbase 信号。这忽略了 value,并允许完全的哈希算力委托,而且很简单。

  3. power_by_action 正在发展中。为了获得整体的灵活性,BMP将允许使用非coinbase BMP协议操作将哈希算力的百分比委托给一个或多个地址。同样,它允许您修改或撤销哈希算力的委托,并立即生效。

使用BMP,挖矿人员可以将任意百分比的哈希算力委托给其他人参与。这样,矿工们可以以更灵活和更负责的方式独自、并且可撤销地指定代表。

如何操作

1)如何使用Trezor硬件钱包参与

  1. 访问BMP服务器。例如:https://BMP.virtualpol.com
  2. 确认您的地址(遗留格式)包含在/info/miners中。
  3. 用USB连接Trezor
  4. 单击黄色的登录按钮(右上角)并选择同意。
  5. Trezor 网路基础设施中将弹出一个窗口。请点击接受并根据您的地址选择帐户。如果弹窗没有打开,那么可以尝试禁用广告拦截器或类似的程序。
  6. 然后,BMP将显示您的登录地址(右上角)。
  7. 您已经可以参与了!您可以进行聊天,创建一个投票或进行投票。

2)如何手动创建操作

  • 每个矿机操作都是BCH中的一个标准事务。
  • BMP操作使用Memo.cash的风格。
  • 矿机的地址必须在您正在挖矿和希望参与的加密货币(BTC,BCH或者BSV)最后4032区块之一的coinbase VOUT。
  • 矿机的地址必须在TX_PREV VOUT(任何索引)中。
  • 矿机的地址必须在VOUT index=0中。
  • OP_RETURN有效负载VOUT index=1。
  • x9d OP_RETURN前缀:0x9d
  • OP_RETURN基于BMP协议。BMP 网路促进了OP_RETURN hex
  • 一些操作例子:聊天投票

3)如何用P2Pool协调哈希值

有了P2Pool,即使最小的矿工现在也可以参与进来。

这个去中心化的池通过在coinbase事务输出中包含所有参与的矿工的地址来奖励他们。而这些信息就是BMP所需要的,即使是最小的矿工也能参与进来。

  1. 通常在P2Pool节点上开始进行挖矿。例如:stratum+tcp://p2pool.imaginary.cash:9348
  2. 用户就是您的地址(遗留格式)。
  3. 就这么简单!

当P2Pool生成一个新的区块时,所有BMP服务器将识别并计算与您的地址关联的哈希值,您可以参与其中。它使用power_by_value 哈希值信号方法(hashpower signal method.)。

4)如何使用power_by_opreturn委托哈希值

如果您可以单独创建区块(您是一个矿池或拥有大规模矿机),那么您可以将任意百分比的哈希值委托给一个或多个地址,而不改变值value(区块奖励)。这允许在任何复杂的系统中实现BMP协议,而不干扰挖矿操作。

举个例子,假设我们想按照以下方式分配块的哈希值:

  • 20% 哈希值地址:1AAtD721LQekC6ncHbAp4ScKxSwR7fFeYT
  • 80%的哈希值地址:1AioJWvdeQq8ddzgz4mvywoBjfrqVQsD1s
  1. 在区块模板中包含这个十六进制代码,两个OP_RETURN输中,以及coinbase事务:
    • 0x9d000007d031414174443732314c51656b43366e63486241703453634b78537752376646655954
    • 0x9d00001f403141696f4a5776646551713864647a677a346d7679776f426a667271565173443173
  2. 在新的区块挖出后,检查/info/ miniers并验证地址是否按之前设置的哈希值比例出现。
  • 0x表示下面的代码是十六进制。
  • 9d它是BMP协议的前缀。第一个OP_RETURN的字节。
  • 00power_by_opreturn 哈希值信号模式(用于该区块)的标识符。
  • 0007d0用十进制表示2000,表示哈希值的20.00%。
  • 31414174443732314c51656b43366e63486241703453634b78537752376646655954是地址,采用传统格式,用bin2hex()进行编码。 此功能尚未在主网上进行测试。请写信至gonzo@virtualpol.com或使用Github问题来进一步支持我们的工作。

5)如何部署自己的BMP服务器

  1. 将BMP代码放到www httpd公共目录中。
  2. 在MySQL数据库中执行scheme.sql
  3. +passwords.ini中重新命名文件+passwords.ini.template
  4. 配置RPC和SQL访问。
  5. 等到比特币客户端更新到最新版本。
  6. 每分钟设置一个crontab命令: curl https://bmp.your-domain.com/update
  7. 等待BMP同步(~16小时)。检查进度:/stats

要求: • Web服务器(GNU/Linux, Apache, MySQL, PHP)。 • +1 TB空闲空间和+8 GB RAM。 • 有txindex比特币BCH客户端, • 有txindex比特币BTC客户端,可选。 • 有txindex比特币BSV客户端,可选。


常见问题解答

BMP背后的意图是什么?

  • 在共识达成前阶段扩大中本聪共识。
  • 为了更准确地发现中本共识,不仅可以通过block信号,还可以通过聊天和投票。
  • 促进协调中本共识。
  • 让矿工们实现比特币白皮书的愿景,实现全球采用和更自由世界。

BMP是如何工作的?

BMP是一个协议、一个链上系统和一个web接口。它监听比特币区块,根据coinbase信号计算每个BCH地址的精确比例哈速率。这些就像一个去中心化的现代社交网络(比如memo.cash),允许矿工聊天和投票。

如何排除非BCH SHA256矿工?

BMP活动很容易被区块链过滤或仅连接到BCH区块链。此外,BMP用户的精确比例哈希幂是根据最近的4,032块计算的,也就是前28天。因此,矿工在参与BMP之前必须在游戏中演示皮肤。

BMP预先达成共识的过程是否具有约束力?

今天,BMP将中本共识扩展到共识前阶段。BMP允许矿工以完美的方式协调他们的行动(中本聪共识)。BMP提供了一个以前不存在的通信通道。通过这种方式,它增加了巨大的价值。

未来可以在节点中实现BMP协议,例如在consensus阶段执行预定义参数的设置。

这和矿工发表公开声明有什么不同?

有很多不同之处,包括以下几点

  • 使用BMP,您可以“毫无疑问地”验证与每个操作关联的哈希算力的多少。
  • 所有BMP的action在链上签名都是“永久的”。
  • BMP允许矿工们用现代社交网络的舒适和深度通过哈希算力进行谈话和投票,包括通过实时聊天和投票。
  • BMP允许所有矿工(即使是最小的矿工)参与,不仅仅是矿池。
  • BMP还允许任意百分比的哈希速率委托给任何BCH地址。

这些都是BMP首次引入的重大创新,可以产生重大影响。

BMP试图解决的根本问题是什么?

根本问题主要是一个政治问题:一群人必须事先达成共识,然后共同行动,而不存在一个中央权威。

这是一个政治问题,最初只能通过对话和外交解决。

预先共识存在于共识之前。它发生。只有预先共识存在,真正的共识才能发生。

什么是委托,它如何增加价值?

有一些操作允许将您自己的哈希速率的一定百分比分配给不同的地址,以便在BMP聊天和投票功能中使用。BMP尊重矿工的自愿决定。多亏有了BMP,这才使这些第一次成为可能。

这和一个基金会比起来有何么不同?

BMP可以被视为一个“股东大会”或一个基金会。但这将是一个链上的基础,因此,它是坚不可摧并且长期稳定存在的。

以民族国家许可为例的基础要服从国家法律、法律程序和人类的政治活动。它们可能被法律腐蚀。但是BMP只认可工作量证明。与比特币现金区块链本身一样,BMP对传统中间人(如民族国家)的干预也持抵制态度。

我如何作为一个非矿工信号支持BMP并鼓励矿工使用它?

通过阅读下面的信息来提醒自己。广泛分享这些信息。鼓励矿工参与。

测试环境

  • x86_64 GNU/Linux CentOS 7.8
  • PHP 7.4
  • MariaDB 5.5
  • MySQL 5
  • Firefox 67
  • Chrome 74
  • Bitcoin Unlimited 1.9.0
  • Bitcoin Core 0.20.0
  • Bitcoin SV 1.0.4
  • P2Pool 17.0
  • Trezor Model T(推荐)。
  • Trezor One(部分功能,因为OP_RETURN大小有限)。

已知问题

  • 区块链同步时间。
  • 链上重组更新。
  • 汉语和西班牙语国际化。
  • 更多的硬件钱包支持。
  • 类似IRC的经典聊天攻击。
  • 正式规范。
  • 自动测试。
  • 绝对权力绝对腐败。

更多信息

哈维尔·冈萨雷斯·冈萨雷斯
gonzo@virtualpol.com
BMP Architect