BTC NFT 铸造指南
王一石(yishi.io)
在这篇文章中,我会以 .stats 域名的铸造为例,带你走一遍完整的 BTC NFT 铸造流程。在延展阅读处,会稍微解释下闪电网络、Taproot 地址和 Ordinals 协议。
需要哪些前期准备
下载 Xverse 钱包,我们后面会用它来存储 NFT,因为它能够正确识别 Ordinals 协议的资产。
下载 Alby 浏览器插件钱包,用来处理闪电网络交易,这款钱包的体验相当不错。
准备好自己的 OKX 账号,我们要用它提取闪电网络的 BTC 到自己的钱包。
接收 BTC NFT 的重要前提是你的钱包支持 Taproot 地址格式,它们通常以 bc1p 开头,这是重要的识别方式。
这是目前我自己用的最顺手的组合,如果你习惯使用其他钱包,如 Bluewallet、Muun 等,同样可行。
截止目前,OneKey 钱包还没有支持 Taproot 地址和闪电网络,但我看到官方已经提过,估计很快会上。
我需要跑 Bitcoin 全节点吗
不需要,现在已有很多免节点的替代铸造工具。
但是,如果你想更深入参与 BTC Ordinals NFT 市场,并且将手续费降到最低,建议你去 Bitcoin Core 下载最新的钱包。
下载好后按下图修改设置,不要修剪节点,不然你会白同步,Ordinal 是要追溯到整个 BTC 区块的第一笔交易的。
同时,最好将 BTC 的区块数据放到至少1TB容量的外置硬盘,不然会很占你的电脑空间,目前整个 BTC 网络的数据大约500GB。
如果你对自己搭节点不感兴趣,只想快点 Mint,那这里跳过就好,也不用下 Bitcoin Core 钱包了。
Sparrow 钱包是必需的吗?
不是,那是一个月前的做法。
Sparrow 是个很棒的钱包,但它无法显示 NFT,并且操作门槛高,不建议入门用户使用,高阶用户随意。
给钱包氪金
把你的 Alby 钱包准备好,怎么使用这里不赘述。
从你的 OKX 提一些 BTC 到 Alby,不要提多,最多几百美金等额的 BTC 足矣,网络选择:BTC-闪电网络。
再从你的 OKX 提一些 BTC 到 Xverse,Xverse 不支持闪电网络,普通提现就可以。
现在你的两个钱包都有 BTC 了,它们大概长这样:
选择铸造工具:
其实,在 BTC 链上铸造 NFT 不叫 Mint,叫 Inscribe,铭刻的意思。不过在 ETH 市场大家已经很熟悉 Mint 了,所以下面我还是会用 Mint 来指代铸造这个过程。
目前最好用的 Mint 工具目前就是上面3个,下面我来以 Gamma 为例,带大家铸造一个 .sats 域名。
.sats 是 BTC 网络上类似 ENS 的项目,没有自己的代币,没有预挖,铸造是免费的。我没有囤积 .stats 域名,只铸造了极少量(不足20个)参与。
根据其文档,铸造是要把下图这个文本刻到 BTC 主网上。
那我要怎么操作才能把它们铸造上去呢,显然不可能通过 BTC 转账留言,对吧?
这时候我们可以选择上面提到的铸造工具,它们其实没有什么特别,只是将 BTC 网络的铸造过程可视化,让用户更容易上手。
选择 Text 文本
把 .stats 文档里写的文本贴过来,name 字段换成你要的域名,如:abc.stats
轻触继续,选择费率,一般我们选 Higher fee 以保证铸造尽快成功。
注意,每次铸造 NFT,Gamma 都要收你5.7刀左右的服务费,还是比较贵的。unisat 会便宜一些,操作上有细微区别。总之,我们先学会用 Gamma 铸造,然后自己再去尝试其他工具。
下面这个步骤最为关键:接收地址必须填 Taproot 格式的(以 bc1p 开头),否则你的 NFT 可能会丢失。此外,邮件最好填一下,Gamma 会将订单信息推给你。
那么, Taproot 地址上哪里找呢?
还记得我们在文章开头下载的 Xverse 钱包吗。按照下图,轻触按钮1访问 NFT 面板,接着,轻触按钮2 接收,选择 Taproot 地址(bc1p开头),把这个地址复制到上面的 Gamma 地址栏 👆
按提示继续,你需要勾选下方的使用协议。
紧接着,Gamma 会生成订单。在这个订单页面,你可以看到有两个要素:
BTC 金额
收币地址
按照页面指示,将正确的金额转到对应的地址,确保无误,然后等待 Gamma 铸造完成。
稍等片刻,通常10-30分钟后(BTC 网络需要出块确认),你就可以在自己的 Xverse 钱包看到 BTC NFT 了。
至此,你已经完成了 BTC 网络上 .sats 域名 NFT 的铸造,比预想中的简单对吗?我们继续。
如何确定域名有没有被注册
你可以使用这个非正式的 API 接口查询,https://api.sats.id/names/abc.sats
将链接末尾的 abc.sats 换成你想要注册的域名,如:123.stats
那么你就能得到如下链接:
https://api.sats.id/names/123.sats
如果返回信息的信息像这样,那就说明这个域名尚未被注册:
否则,就是已经被注册了。
自动查询 .stats 域名
手动查询仍然比较繁琐,你可以通过脚本程序查找可注册的域名,这样效率会更高(比如你想要注册全部可用的 10K 数字域名)。
以下只是代码示意,无法直接运行。
你需要自行编辑,才能使其在自己的电脑上运行。
// 定义接口地址
const apiUrl = "https://api.sats.id/names/";
// 定义循环延迟时间(单位:毫秒)
const delay = 1000;
// 生成随机不重复数字的函数
function getRandomNumbers(count, min, max) {
if (count > max - min + 1) {
throw new Error("不能生成足够的不重复数字");
}
const numbers = new Set();
while (numbers.size < count) {
numbers.add(Math.floor(Math.random() * (max - min + 1)) + min);
}
return [...numbers];
}
// 定义循环函数
function loop(numbers, index) {
const number = numbers[index];
// 构造接口地址
const url = apiUrl + number + ".sats";
// 调用接口
fetch(url)
.then(response => response.text())
.then(data => {
// 判断返回内容是否包含指定字符串
if (data.includes(".sats not found")) {
console.log("找到了:" + url);
}
})
.catch(error => {
console.log("请求出错:" + url);
})
.finally(() => {
// 延迟1秒后执行下一次循环
if (index < numbers.length - 1) {
setTimeout(() => loop(numbers, index + 1), delay);
}
});
}
// 生成随机不重复数字
const numbers = getRandomNumbers(9999, 1, 9999);
// 启动循环
loop(numbers, 0);
除了数字域名,你也可以穷举所有可注册的字母域名。
以下是简单代码,可以直接运行。
它的规则是找到所有3字母的域名,如果你要调整规则,简单修改代码即可。
const letters = [
"n",
"a",
"s",
"d",
"t",
"i",
"c",
"o",
"e",
"m",
"p",
"b",
"x",
"q",
"z",
"f",
"g",
"h",
"j",
"k",
"l",
"r",
"u",
"v",
"w",
"y",
];
const urls = [];
// 生成所有可能的 URL
letters.forEach((l1) => {
letters.forEach((l2) => {
letters.forEach((l3) => {
const url = `https://api.sats.id/names/${l1}${l2}${l3}.sats`;
urls.push(url);
});
});
});
// 随机排序 URL 数组
urls.sort(() => Math.random() - 0.5);
// 发送请求的函数
const fetchUrl = async (url) => {
try {
const response = await fetch(url);
const text = await response.text();
if (text.includes(".sats not found")) {
console.log(`找到了:${url}`);
}
} catch (error) {
// 忽略错误
}
};
// 并发发起请求
const concurrency = 20;
let index = 0;
const interval = setInterval(() => {
for (let i = 0; i < concurrency; i++) {
const url = urls[index];
fetchUrl(url);
index++;
if (index >= urls.length) {
clearInterval(interval);
break;
}
}
}, 1000);
运行这些 JS 脚本很容易,你只要在自己的浏览器任意位置点击 Inspect(检查),并在 Console(控制台)复制/粘贴代码就可以。符合条件的域名会自动提示你。
我们先前下载的 Alby 有什么用
Alby 是闪电网络钱包,只支持闪电网络转账。
上面提到了ordinalsbot 这个工具,它支持使用闪电网络付款,还支持批量铸造。
这样你就不用等待网络长达20-30分钟的确认,更快抢到你想要的 NFT。
在你学会如何使用 Gamma 后,就可以尝试这些更复杂一些的工具来探索 BTC NFT。
关于闪电网络、Taproot 和 Ordinals 协议
⚡️ 闪电网络(Lightning Network)
闪电网络是一种基于比特币技术的二层协议,可以加快交易速度和扩展性。它通过创建多个支付通道,使用户能够实时、高效、低成本地进行点对点交易,从而避免了需要等待矿工验证和打包的过程。这种网络类似于数字钱包,用户可以在其中创建支付通道并存入比特币,在通道内与其他用户进行交易,这些交易不需要写入区块链。当用户关闭支付通道并提取比特币时,最终余额将被写入区块链。
🥕 Taproot 地址
Taproot 是比特币网络的一种新型地址格式,是最新的升级方案之一。它采用了一种新的地址编码方式,可以提供更好的隐私、安全和可扩展性。Taproot 地址可以隐藏多个公钥或脚本,使得交易只展示最终使用的公钥或脚本,保护了用户隐私;它还可以被用于多种不同的交易类型,并且使用 Taproot 地址的交易规模通常比传统的交易规模要小,从而降低了交易费用。另外,Taproot 地址还可以减少脚本的使用,降低区块链大小和交易的复杂性,提高比特币网络的可扩展性。
⭕️ Ordinals 协议
这其实是 Casey Rodarmor 创办的,使用序数理论来标记和跟踪“注册”,即嵌入在区块链中的数据/内容:
序数是定义系列中位置的任何数字(例如,第一,第二,第三)。在比特币的情况下,Ordinal 是一个特定 Satoshi 的未使用交易输出(UTXO),其中包含一个包含内容(例如文本、图像或 MP3)的“注册”。已注册的 Satoshi 被设置为特殊交易,以便用户可以识别和跟踪它们。
事实上,这个解决方案早在2012年就在比特币论坛上提出了。Ordinals NFT 有一个有趣的点,它们不使用比特币的 OP_RETURN 字段。这个命令允许用户在链上提交任意数据。
Taproot 也很关键,它放宽了这些要求,完全取消了数据限制,因此理论上你可以铸造一个占据整个区块数据空间的4MB 大小的 NFT。
我常用的 BTC NFT 工具
https://dune.com/dataalways/ordinals
特别感谢
我在了解 BTC Ordinals 协议的过程中,从 @李欢 和 @xiyu 身上学到很多。你可以关注他们的推特,他们经常分享 BTC 的知识和见解。同时,非常感谢 @zuozhuo 提工的域名查询脚本,十分好用。
祝各位铸造愉快。
补充:sats文本格式
{
"p": "sns",
"op": "reg",
"name": "123.sats"
}
在 Bitcoin Core 中使用 PSBT
自 0.17 版本开始, Bitcoin Core 就有了一套给 “部分签名的比特币交易(Partially Signed Bitcoin Transactions,PSBT,由 BIP 174 定义)” 准备的 RPC 接口。
PSBT 简介
PSBT 是尚未完全签好名的比特币交易的传输格式,它携带有相关的元数据,可帮助人们签名交易。它的设计初衷是简化多个参与者合作生成一笔交易的流程。这样的场景包括硬件钱包、多签名钱包和 CoinJoin 交易。
流程概述
构建一笔完整签名的比特币交易需要经历下列步骤:
* 一位创建者提出需要创建的某一笔交易。他们构造一个 PSBT,包含特定的输入和输出,但不包含其它元数据。
* 对每个输入,都由一位更新者为该 PSBT 加入关于被花费的 UTXO 的信息。他们也在该 PSBT 的每一个输入(可能的时候包括输出)中加入关于脚本和公钥的信息。
* 签名者检查交易及其元数据,来决定是否同意该交易。他们可以利用来自 UTXO 的数额信息,知晓相关的价值和手续费。如果他们同意,就为自己具有相关公钥的输入生成一个部分签名。
* 为每个输入运行一个定稿器,将部分签名和可能的脚本信息转化为一个最终的 scriptSig (脚本签名)以及/或者 scriptWitness (脚本见证数据)。
* 抽取器从各输入已经定稿的 PSBT 中产生一笔有效的比特币交易(变成可在网络中广播的形式)。
*
一般来说,上述的每一个流程(除了创建者和抽取器)都会为处理中的 PSBT 加入越来越多的数据,直至所有输入都被签名。在一个粗疏的工作流中,他们必须按照顺序、一个接一个地参与,直到抽取器将 PSBT 转化为一笔真实的交易。为了允许并行操作,可以增加一个合并者,由 TA 来为同一笔未签名的交易合并来自不同 PSBT 的元数据。
上述所有加粗的名词及其角色都由 BIP174 定义。这些名词在理解背后的流程时是有帮助的,但在实际操作中,软件和硬件实现往往会同时实现多个角色。
Bitcoin Core 中的 PSBT
RPCs
* converttopsbt (创建者可用)是一个效用型 RPC,可以将一笔未签名的原始交易转化成 PSBT 格式。它会忽略存在的签名。
* createpsbt (创建者可用)是一个效用型 RPC,可以读取一组输入和输出,并将他们转化成一个不带其它信息的 PSBT。等价于在 createrawtransaction 之后调用 converttopsbt 。
* walletcreatefundedpsbt (创建者、更新者可用)是一个钱包 RPC,会使用具体的输入和输出创建一个 PSBT。具体来说,对于该钱包已经直到的输入(识别为普通余额或观察余额的),该方法会为 PSBT 加入 UTXO 信息。对于已有 UTXO 信息的输出和输入,会加入钱包知晓的公钥和脚本信息。等价于在运行 fundrawtransaction 和 converttopsbt之后运行 createrawtransaction。
* walletprocesspsbt (更新者、签名者、定稿器可用)是一个钱包 RPC,取一个 PSBT 作为输入,为缺少数据的输入和输出加入 UTXO、公钥和脚本数据,还可以选择签名输入。可以做到的时候,它还会敲定部分签名。
* utxoupdatepsbt (定稿器可用)是一个节点 RPC,取一个 PSBT 作为输入,并从 UTXO 集合中获得可用的信息来更新它(仅对 SegWit 输入可用)。
* finalizepsbt (定稿器、抽取器可用)是一个效用型 RPC,可以敲定任何部分签名;而且,如果所有的输入都已经敲定,该方法会将结果转化为一笔完整签名的、可以使用 sendrawtransaction 在网络中广播的交易。
* combinepsbt (合并者可用)是一个效用型 RPC,实现了合并者,它可以用在整个工作流的任一时间点,合并添加到同一个 PSBT 的不同版本中的信息。具体来说,它可用于合并来自多个更新者和签名者的输出。
* **joinpsbts**(创建者可用)是一个效用型 RPC,可以将多个 PSBT 结合在一起,汇总输入和输出。可以用来构建 CoinJoin 交易。
* decodepsbt 是一个诊断型效用 RPC,可以将一个 PSBT 中的所有信息以人类可读的形式表现出来,还可以计算出最终的手续费(如果 PSBT 中已有的话)。
* analyzepsbt 是一个效用型 RPC,可以检查一个 PSBT 并报告其输入的当前状态、操作流程的下一个步骤(如果可知的话);而且,如果可行的话,它还会计算最终交易的手续费,并估计最终的重量和手续费率。
操作流程
多个 Bitcoin Core 设备参与的多签名
想要快速上手,请看《使用描述符钱包和 PSBT 的 M-of-N 多签名基本示例》(1)。如果你用的是传统钱包,那么请继续了解这里提供的例子。
Alice、Bob 和 Carol 希望创建一个 2-of-3 的多签名地址。他们都使用 Bitcoin Core。我们假设他们的钱包中只包含多签名资金。与此同时他们各有一个个人钱包,这可以通过 Bitcoin Core 的多钱包特性来实现 —— 可能因此在使用 bitcoin-cli (命令行工具)时需要使用 rpcwallet=name 来指明调用哪个钱包。
启动:
* 三人各使用 getnewaddress 来创建一个新地址;我们把这三个地址分别叫做 Aalice、Abob 和 Acarol。
* 三人各自调用 getaddressinfo "X" ,X 就是他们各自的地址,并记录相应的公钥;我们把这几个公钥分别叫做 Kalice、Kbob 和 Kcarol。
* 现在,三人可以各自运行 addmultisigaddress 2 ["Kalice","Kbob","Kcarol"] 以产生多签名脚本并告知钱包模块;这条命令所产生的多签名地址,我们叫做 Amulti。他们可以需要手动指定相同的地址类型,以免因为不同的节点设置而建构出不同版本的地址。
* 他们还各自运行 importaddress "Amulti" "" false ,命令钱包跟踪 Amulti 所收到的支付并作为观察钱包余额。
* 其他人可以通过运行 createmultisig 2 ["Kalice","Kbob","Kcarol"] 、检查结果是否为 Amulti 来验证这个地址。同上,可能有必要指定地址类型,才能获得匹配的地址。不过,这个命令不能用来初始化交易。
* 他们现在可以对外给出 Amulti,作为其他人可以支付的地址。
后来,Amulti 收到 V BTC 之后,Bob 和 Carol 想把资金全部移到 Asend,没有找零。Alice 不需要参与。
* 其中一人 —— 这里假设是 Carol —— 初始化创建流程。她运行 walletcreatefundedpsbt [] {"Asend":V} 0 {"subtractFeeFromOutputs":[0], "includeWatching":true} 。我们把这个命令所返回的 PSBT 叫做 P。P 不包含任何签名。
* Carol 需要自己签名这笔交易。为此,她运行 walletprocesspsb "P" ,然后将结果 P2 (也是一个 PSBT)交给 Bob。
* Bob 使用 decodepsbt "P2" 来检查这个 PSBT,确认这笔交易是否有预期的输入、有一个输出给 Asend、手续费合理。如果他也同意这笔交易,他调用 walletprocesspsbt "P2" 来签名。结果是 P3,包含了 Carol 和 Bob 的签名。
* 现在,任何一人都可以调用 finalizepsbt "P3" ,抽取出完整签名的交易 T。
* 最后,任何人都可以使用 sendrawtransaction "T" 来广播这笔交易。
在需要更多签名者参与的情形中,让所有者并行签名而不是按顺序处理可能会有一些好处。在我们的例子中,就会变成 Carol 分别给每个签名者传递 P 的拷贝;这些签名者各自调用 walletprocesspsbt "P" 来签名,最终得到各自签名的 PSBT 结构体。然后,他们将各自的 PSBT 结构体发回给 Carol(发给其他某一人也可以),由后者来运行 combinepsbt 。最后的两个步骤( finalizepsbt 和 sendrawtransaction )保持不变。
(1)使用描述符钱包和 PSBT 的 M-of-N 多签名基本示例
https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md#basic-multisig-example
在 Bitcoin Core 中使用 PSBT
自 0.17 版本开始, Bitcoin Core 就有了一套给 “部分签名的比特币交易(Partially Signed Bitcoin Transactions,PSBT,由 BIP 174 定义)” 准备的 RPC 接口。
PSBT 简介
PSBT 是尚未完全签好名的比特币交易的传输格式,它携带有相关的元数据,可帮助人们签名交易。它的设计初衷是简化多个参与者合作生成一笔交易的流程。这样的场景包括硬件钱包、多签名钱包和 CoinJoin 交易。
流程概述
构建一笔完整签名的比特币交易需要经历下列步骤:
* 一位创建者提出需要创建的某一笔交易。他们构造一个 PSBT,包含特定的输入和输出,但不包含其它元数据。
* 对每个输入,都由一位更新者为该 PSBT 加入关于被花费的 UTXO 的信息。他们也在该 PSBT 的每一个输入(可能的时候包括输出)中加入关于脚本和公钥的信息。
* 签名者检查交易及其元数据,来决定是否同意该交易。他们可以利用来自 UTXO 的数额信息,知晓相关的价值和手续费。如果他们同意,就为自己具有相关公钥的输入生成一个部分签名。
* 为每个输入运行一个定稿器,将部分签名和可能的脚本信息转化为一个最终的 scriptSig (脚本签名)以及/或者 scriptWitness (脚本见证数据)。
* 抽取器从各输入已经定稿的 PSBT 中产生一笔有效的比特币交易(变成可在网络中广播的形式)。
*
一般来说,上述的每一个流程(除了创建者和抽取器)都会为处理中的 PSBT 加入越来越多的数据,直至所有输入都被签名。在一个粗疏的工作流中,他们必须按照顺序、一个接一个地参与,直到抽取器将 PSBT 转化为一笔真实的交易。为了允许并行操作,可以增加一个合并者,由 TA 来为同一笔未签名的交易合并来自不同 PSBT 的元数据。
上述所有加粗的名词及其角色都由 BIP174 定义。这些名词在理解背后的流程时是有帮助的,但在实际操作中,软件和硬件实现往往会同时实现多个角色。
Bitcoin Core 中的 PSBT
RPCs
* converttopsbt (创建者可用)是一个效用型 RPC,可以将一笔未签名的原始交易转化成 PSBT 格式。它会忽略存在的签名。
* createpsbt (创建者可用)是一个效用型 RPC,可以读取一组输入和输出,并将他们转化成一个不带其它信息的 PSBT。等价于在 createrawtransaction 之后调用 converttopsbt 。
* walletcreatefundedpsbt (创建者、更新者可用)是一个钱包 RPC,会使用具体的输入和输出创建一个 PSBT。具体来说,对于该钱包已经直到的输入(识别为普通余额或观察余额的),该方法会为 PSBT 加入 UTXO 信息。对于已有 UTXO 信息的输出和输入,会加入钱包知晓的公钥和脚本信息。等价于在运行 fundrawtransaction 和 converttopsbt之后运行 createrawtransaction。
* walletprocesspsbt (更新者、签名者、定稿器可用)是一个钱包 RPC,取一个 PSBT 作为输入,为缺少数据的输入和输出加入 UTXO、公钥和脚本数据,还可以选择签名输入。可以做到的时候,它还会敲定部分签名。
* utxoupdatepsbt (定稿器可用)是一个节点 RPC,取一个 PSBT 作为输入,并从 UTXO 集合中获得可用的信息来更新它(仅对 SegWit 输入可用)。
* finalizepsbt (定稿器、抽取器可用)是一个效用型 RPC,可以敲定任何部分签名;而且,如果所有的输入都已经敲定,该方法会将结果转化为一笔完整签名的、可以使用 sendrawtransaction 在网络中广播的交易。
* combinepsbt (合并者可用)是一个效用型 RPC,实现了合并者,它可以用在整个工作流的任一时间点,合并添加到同一个 PSBT 的不同版本中的信息。具体来说,它可用于合并来自多个更新者和签名者的输出。
* **joinpsbts**(创建者可用)是一个效用型 RPC,可以将多个 PSBT 结合在一起,汇总输入和输出。可以用来构建 CoinJoin 交易。
* decodepsbt 是一个诊断型效用 RPC,可以将一个 PSBT 中的所有信息以人类可读的形式表现出来,还可以计算出最终的手续费(如果 PSBT 中已有的话)。
* analyzepsbt 是一个效用型 RPC,可以检查一个 PSBT 并报告其输入的当前状态、操作流程的下一个步骤(如果可知的话);而且,如果可行的话,它还会计算最终交易的手续费,并估计最终的重量和手续费率。
操作流程
多个 Bitcoin Core 设备参与的多签名
想要快速上手,请看《使用描述符钱包和 PSBT 的 M-of-N 多签名基本示例》(1)。如果你用的是传统钱包,那么请继续了解这里提供的例子。
Alice、Bob 和 Carol 希望创建一个 2-of-3 的多签名地址。他们都使用 Bitcoin Core。我们假设他们的钱包中只包含多签名资金。与此同时他们各有一个个人钱包,这可以通过 Bitcoin Core 的多钱包特性来实现 —— 可能因此在使用 bitcoin-cli (命令行工具)时需要使用 rpcwallet=name 来指明调用哪个钱包。
启动:
* 三人各使用 getnewaddress 来创建一个新地址;我们把这三个地址分别叫做 Aalice、Abob 和 Acarol。
* 三人各自调用 getaddressinfo "X" ,X 就是他们各自的地址,并记录相应的公钥;我们把这几个公钥分别叫做 Kalice、Kbob 和 Kcarol。
* 现在,三人可以各自运行 addmultisigaddress 2 ["Kalice","Kbob","Kcarol"] 以产生多签名脚本并告知钱包模块;这条命令所产生的多签名地址,我们叫做 Amulti。他们可以需要手动指定相同的地址类型,以免因为不同的节点设置而建构出不同版本的地址。
* 他们还各自运行 importaddress "Amulti" "" false ,命令钱包跟踪 Amulti 所收到的支付并作为观察钱包余额。
* 其他人可以通过运行 createmultisig 2 ["Kalice","Kbob","Kcarol"] 、检查结果是否为 Amulti 来验证这个地址。同上,可能有必要指定地址类型,才能获得匹配的地址。不过,这个命令不能用来初始化交易。
* 他们现在可以对外给出 Amulti,作为其他人可以支付的地址。
后来,Amulti 收到 V BTC 之后,Bob 和 Carol 想把资金全部移到 Asend,没有找零。Alice 不需要参与。
* 其中一人 —— 这里假设是 Carol —— 初始化创建流程。她运行 walletcreatefundedpsbt [] {"Asend":V} 0 {"subtractFeeFromOutputs":[0], "includeWatching":true} 。我们把这个命令所返回的 PSBT 叫做 P。P 不包含任何签名。
* Carol 需要自己签名这笔交易。为此,她运行 walletprocesspsb "P" ,然后将结果 P2 (也是一个 PSBT)交给 Bob。
* Bob 使用 decodepsbt "P2" 来检查这个 PSBT,确认这笔交易是否有预期的输入、有一个输出给 Asend、手续费合理。如果他也同意这笔交易,他调用 walletprocesspsbt "P2" 来签名。结果是 P3,包含了 Carol 和 Bob 的签名。
* 现在,任何一人都可以调用 finalizepsbt "P3" ,抽取出完整签名的交易 T。
* 最后,任何人都可以使用 sendrawtransaction "T" 来广播这笔交易。
在需要更多签名者参与的情形中,让所有者并行签名而不是按顺序处理可能会有一些好处。在我们的例子中,就会变成 Carol 分别给每个签名者传递 P 的拷贝;这些签名者各自调用 walletprocesspsbt "P" 来签名,最终得到各自签名的 PSBT 结构体。然后,他们将各自的 PSBT 结构体发回给 Carol(发给其他某一人也可以),由后者来运行 combinepsbt 。最后的两个步骤( finalizepsbt 和 sendrawtransaction )保持不变。
(1)使用描述符钱包和 PSBT 的 M-of-N 多签名基本示例
https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md#basic-multisig-example
如何在比特币网络铸造 BRC-20 Token ?
推特用户 @domodata 昨日启动了一场基于 Ordinals 协议的创新实验「BRC-20」,旨在通过 Ordinals 协议在比特币网络上实现像在以太坊网络上发行 ERC-20 Token 的效果。
使用 Ordinals 协议部署 BRC-20 Token 刻录文本包括:「p」:协议类型;「op」:事件类型;「tick」:BRC-20 Token 标识;「max」:最大供应量;「lim」:单个铭文可容纳的最大 BRC-20 Token 数量;「dec」:十进制精度。目前已有 $ordi、$meme 与 $punk 三个 BRC-20 Token 被成功部署。
铸造刻录文本包括:「p」、「op」、「tick」、「amt」:所铸造的 BRC-20 Token 数量,该关键词定义所铸造的单个铭文将等于多少个 BRC-20 Token。转账刻录文本包括:「p」、「op」、「tick」、「amt」:所转账的 BRC-20 Token 数量;「to」:转账目标;「fee」:转账费用。无论是部署、铸造还是转账都遵循先到先得的规则。
BRC-20 和在一张纸钞上写上我自己的名字然后把这张纸钞命名为「我的币」有什么区别?这恰恰是 Ordinals 协议的魅力。有人认为比特币可以是「艺术载体」,有人认为比特币可以是「铸币厂」… 每个人不同的理解会让每个 Satoshi 被刻录上不同的内容,这些内容就是比特币价值多样性的种子。@domodata 称自己为一个「实验者」,也劝大家不要在 Mint 上浪费大量的资金。

参考:
1.
https://unisat.io/search?q=ordi&type=brc20&p=1
2.
UniSat Wallet
The first open-source browser extension wallet for Bitcoin NFTs
3.
lnbc880n1pjq4402pp5cwm7dglfjkvrnluggfhjs9zfkn0f4rd0fwdpg5hur47hwswfekjsdqu2askcmr9wssx7e3q2dshgmmndp5scqzpgxqyz5vqsp5wyy7u4nkreyqja8qp0hv90hqvet3v69895ree7cgaz4zgjzu47aq9qyyssqnnn4k47z5u4z6e0h7z77ntvc47grejrfh5h5u0mep6mmzee0z7pkpukhfxxdpvkkeq5ejzgw8ntemucy2jew8k9dz5pf0lscvhrvn5cq24m204
#Bitcoin: hahahahahaha
PSBT 是什么?它如何解决比特币 NFT 的交易问题?
乍一看,PSBT 这个概念颇像 Vitalik 不久前提出的灵魂绑定 Token「SBT」这个概念,但二者却有着很大的差别。
「PSBT 其实是一个非常基础的技术,当然现在比特币有了 NFT 后,这些原本构想的东西又有了的应用场景」,BTCStudy 贡献者阿剑在采访中说道。实际上,PSBT 在比特币发展史中也可以算是由来已久了,是比特币网络中最基础且重要的协议之一。
PSBT 发展史
PSBT 是「部分签名的比特币交易」(Partially Signed Bitcoin Transactions)缩写,它由 BTC 核心开发者 Andrew Chow 设计。Andrew 最初打算开发 PSBT 协议,是因为他发现不同的比特币软硬钱包之间无法实现输入输出的兼容,急需要一套标准来解决这个问题。
在比特币的生态中,每种硬件和软件钱包似乎都有着自己独特的序列化标准范式,这种标准上的不统一使钱包软件之间的序列化无法兼容,成为比特币交易的一大噩梦。而 PSBT 的作用正是将复杂的交易结构与交易的实际签名区分开来,允许使用不同软件之间的交易实现非交互签名。任何人只要收集到足够多的 PSBT,都可以将生成的部分签名交易合并为一个完全签名的交易。
PSBT 于 2017 年 7 月借由 BIP-174 引入比特币网络,并在这个名为「0 PSBT」的原始版本中描述了该协议的详细规范,随后 PSBT 便逐渐得到其他开发者的支持,不断对其进行完善。
2018 年 10 月,比特币钱包 Bitcoin Core v0.17 放出,团队在这一版本增加的新功能中就包括了对 PSBT 的支持。到了 2020 年 3 月,在一场比特币社区的 OG 圆桌会上,比特币核心开发者再次提到了关于 PSBT 的话题。开发者们认为,PSBT 技术对于开发比特币多签钱包尤为重要,并且能让比特币网络支持各类钱包特有功能,增强可扩展性,因此希望更多比特币硬件设备生产商能够增加 PSBT 支持。
在 2021 年 1 月,在新的 BIP-370 中,PSBT 更新第 2 版「2 PSBT」,有趣的是,PSBT 是直接从「版本 0」跳到了「版本 2」,没有「版本 1」。
PSBT 工作原理
当前,比特币 NFT 的一大问题就是交易门槛极高,如果不通过 Ordinals 桥接至以太坊网络,并在 OpenSea 上交易,就只能通过 OTC 的渠道进行买卖。但 OTC 最大的问题就是需要信任,钱打过去,NFT 不一定过来,反之亦然,不少人都是因这个原因,出现了资产损失。另一方面,没有成熟有效的去信任交易渠道,比特币 NFT 也很难创造出以太坊 NFT 那样蓬勃发展的局面。
PSBT 在比特币 NFT 发展中扮演的角色,就是在没有智能合约的情况下,实现交易的去信任化。这一标准的核心是创建一个未完全签名的交易以及与其相关的一些数据,来协助未签名交易的传输,并促进未签名交易的可移植性,让多方更加便捷地签名同一笔交易。(BlockBeats 注,更多关于 PSBT 的内容请阅读《什么是「部分签名的比特币交易(PSBT)」?》)
比如,一个硬件钱包用户想要发起一笔 Coin Join 交易,在没有 PSBT 之前,这个操作流程是非常复杂的,因为比特币软件钱包不兼容硬件钱包发送过来的输入/出序列。而 PSBT 的作用就是让软件钱包先把交易的输入/出以及 UXTO(即资金集)等交易内容建构好,形成一个没有签名的交易,然后将它发送给硬件钱包。硬件钱包收到 PSBT 后对该交易进行签名,这笔交易便正式执行了。
而在多方都需要签名同一笔交易的情况下,则可以创建一个 PSBT 来标识要花费的 UTXO 和接收 UTXO 的输出,再把这个 PSBT 复制到可以签名的程序中,然后通过协调员把多个 PSBT 集成到一个 PSBT 中并发送给每个参与者,各方完全签名后即转换为一笔完整的准备广播的交易。
目前,PSBT 标准已经得到了比特币硬件钱包、软件钱包以及节点软件的广泛采用。尽管这个标准仍存在一些缺陷,但就当下来看,它已经极大地强化了比特币软件和硬件之间的互通性,让委托交易的过程实现完全去信任化。PSBT 大大协助了 CoinJoin 和其他合作型交易的运作,也让多签名变得更加易用,将是比特币 NFT 的应用场景下基础却关键的技术。
PSBT 如何实现去信任的比特币 NFT 交易?
对此,阿剑在与 BlockBeats 的采访中给出了自己的设想:假设现在有一对比特币 NFT 交易者,且 NFT 卖方的公钥是双方可知的信息。在发起一笔 NFT 交易时,买方先在交易中写好自己的 UTXO 输入以及一个承接 NFT 的输出。买方在构建好交易并签名后,将其转为 PSBT 发给卖方,卖方通过中间服务商等方式接收到消息后签名,这笔比特币 NFT 交易就成交了。
上述整个过程对买卖双方而言都是完全去信任的。对于买方来说,出价、接受地址等信息已经提前构建在交易中,一旦发生改动,签名便会失效。对于卖方来说,只有自己完成签名,NFT 才会卖出,而价格则是经过自己审核衡量的。在阿剑看来,这种简单的交易结构还在很大程度上剔除了 OpenSea、Blur 这类 NFT 交易中间服务商的抽成空间,「只要卖方的消息渠道通畅,就完全不需要中介,因为买方签好名的交易直接就是出价」。
到这里你可能会想,PSBT 解决了 P2P 的 NFT 交易,但像 Yuga Labs 这样的项目拍卖如何实现去信任化呢?
首先要说明的是,Ordinals 团队之所以质疑此次 NFT 拍卖,正是因为他们认为在比特币上进行的交易本来就不应该存在索取信任的中间代理方。不过在比特币生态未来的发展过程中,难免会需要中间协调者这个角色,我们需要做的,就是尽可能地在协调者和参与者之间也实现去信任化。
阿剑告诉 BlockBeats,就 Yuga Labs 这个例子说,想要实现拍卖的完全去信任化,光靠 PSBT 一个技术是不够的,还需要搭配一些别的技术手段,比如利用 Sighash 实现的委托签名。「假设现在 Yuga Las 要帮你买一个 NFT,你就可以建立一个委托签名的交易结构,并通过交易本身的 Sighash 在里面设置一些其他的条件。然后把 PSBT 发给 Yuga Labs,让他帮你去提交交易,用这样的方式去实现委托购买。」
上述这个过程就可以看作用户参与 NFT 拍卖的过程,设置的条件即铸造拍得的 NFT。作为代理方,Yuga Labs 无法修改用户提交的交易内容,只能帮用户把资金发到提前定好的目标地址。PSBT 在这个过程当中解决的则是用户如何把委托交易发给代理方的问题。
Bitcoin Optech Newsletter #231:2022 年度回顾特辑
这份特别版的 Optech Newsletter 总结了 2022 年全年比特币值得注意的发展。 这是我们的年终总结系列(2018、2019、2020 以及 2021)的延续。
目录
一月
无状态发票
法律辩护基金
二月
交易手续费赞助
幻影节点支付
三月
闪电网络寻路
零确认通道
四月
静默支付
Taro
量子安全的密钥交换
五月
MuSig2
包中继
比特币内核库项目
六月
闪电网络协议开发者会议
七月
洋葱消息速率限制
Miniscript 描述符
八月
闪电网络交互式充值和双重充值协议
防范通道阻塞攻击
在 DLC 中使用 BLS 签名
九月
费率卡
十月
版本号 3 的交易中继
异步付款
区块解析错误
ZK rollups
加密的 v2 P2P 传输协议
比特币协议开发者会议
十一月
富错误消息
十二月
修改闪电网络协议
特别总结
一月
一月份,LDK 合并了一个 “无状态发票” 的实现,这种技术允许生成无限数量的发票而不必存储任何相关数据,除非这样的发票得到支付。无状态发票的提议是在 2021 年 9 月提出的,LDK 的实现不同于建议手段,虽然它实现了相同的目标,而且不需要闪电网络协议作出任何变更。稍后,闪电网络规范合并了一项更新,允许其它类型的无状态发票可以 —— 至少是部分地 —— 添加到 Eclair、Core Lightning 和 LND 诸客户端中。
同样在一月份,Jack Dorsey、Alex Morcos 和 Martin White 设立了一个比特币法律辩护基金(Bitcoin Legal Defense Fund),这是 “一个非营利的实体,致力于尽可能减少阻遏开发者主动开发比特币和相关项目的法律问题。”
二月
在一月份发生的,关于简化为预签名的交易增加手续费的讨论,在二月份引发了关于 Jeremy Rubin 在 2020 年提出的 “交易手续费赞助” 想法的新一轮讨论。人们提出了对这种实现的多项挑战。尽管当时的讨论没有取得太大的精湛,但一种实现了类似目标 —— 而且不像手续费赞助那样需要软分叉 —— 的技术在十月份出现了。
LKD 对无状态发票的初步支持,使它可以加入一种新的、用于闪电网络节点负载均衡的简单方法,称作 “幻影节点支付”。
Illustration of phantom node payment path
三月
由 René Pickhardt 和 Stefan Richter 在 2021 年首次推出的闪电网络寻路算法在三月得到了一次更新,Pickhardt 指出一项优化使其计算效率提高很多。
一项与之匹配、允许开设 “零确认通道” 的方法也形成了规范,并开始产生实现;LDK 在三月添加对相关的 “通道短标识符(SCID)” 昵称 字段时率先起步,Eclair、Core Lightning 和 LND 相继跟上。
Illustration of zero-conf channels
2022 summary
Replace-By-Fee
今年,我们看到了许多关于 “手续费替换(RBF)” 的讨论,以及一些重要的行动。我们一月份的周报总结了一项来自 Jeremy Rubin 的提议:任意交易都可以在原版交易到达节点后的一段时间内被更高手续费的替代版本替换;超时之后,再应用现有的规则 —— 仅允许遵循 BIP125 的替代版本替换原版。这将允许商家在替换窗口关闭之后接受未确认的交易,就像现在这样。更重要的是,它也许可以让依赖于可替换性来实现安全性的协议不必担心未携带 BIP125 信号的交易,只要一个协议节点或者瞭望塔拥有合理的机会、在知晓一笔交易后即时响应即可。
在一月底, Gloria Zhao 开始了一场关于 RBF 的新讨论,她介绍了当前的 RBF 策略的背景、过去几年间发现的一些问题(例如 “交易钉死攻击”)、RBF 策略如何影响钱包软件的用户界面,以及几种可能的优化措施。在三月上旬,Zhao 追加了两场关于 RBF 的开发者讨论的总结,一场来自线上,一场来自线下。
同样在三月,Larry Ruane 提出了跟 RBF 相关的问题:替换交易的见证数据而不改变交易的其余部分(决定 txid 的部分)。
在七月,Antoine Riard 在 Bitcoin Core 代码库开启了一个 PR,为 Bitcoin Core 添加了一个 mempoolfullrbf 配置选项。这个选项默认保持 Bitcoin Core 以前的行为:仅允许包含 BIP125 信号的未确认交易被替换。而额外配置了这个选项的节点则会接受任意替换交易并转发和挖矿,即使原版交易并不包含 BIP125 信号。Riard 也在 Bitcoin-Dev 邮件组中开启了一个帖子以讨论这一变更。几乎所有的 PR 评论都是正面的,而大部分邮件组讨论都是不相关的话题,所以并不意外地,这个 PR 在开启的大约一个月后合并了。
在十月份,Bitcoin Core 项目开始分发 24.0 版本的候选版本 —— 24.0 将是第一个包含 mempoolfullrbf 配置选项的。Dario Sneidermanis 看到了候选版本的更新声明中关于这个选项的部分,于是在 Bitcoin-Dev 邮件组中发帖指出,太多用户和矿工启用这个选项会让不带信号的替换交易变成可以依靠的。而更可靠的无信号替换交易也会让接受未确认交易作为支付手段的服务商更容易遭受盗窃、迫使这些服务商改变自己的行为。讨论在接下来的一周和又一周连绵不断。一个月后,Sneidermanis 在邮件组中引起了担忧的苗头,Suhas Daftuar 总结 了反对该选项的一些论证,并开启了一个将它从 Bitcoin Core 中移除的 PR。类似的其它 PR 在此前和此后都出现了,但 Daftuar 的 PR 变成了讨论有无可能永久移除这个选项的焦点。
在 Daftuar 的 PR 中出现了许多指出保留 mempoolfullrbf 的反面意见。包括许多钱包开发者都提到,有时候他们会遇到希望发起替换、又没有使用 BIP125 信号的用户。
在十一月末,Daftuar 关闭了这个 PR,而且 Bitcoin Core 项目也放出了带有 mempoolfullrbf 的 24.0。在十二月,开发者 0xB10C 推出了一个网站,用于监控并不包含 BIP125 信号的替换交易;这样的交易如果能得到确认,则表明它可能由一个使用 mempoolfullrbf 配置选项(或带有类似特性的其它软件)开启全面 RBF(full-RBF)的矿工经手。至今年年底,全面 RBF 依然在其它的 Bitcoin Core PR 和邮件组帖子中被讨论。
四月
四月份,Ruben Somsen 提出了 “静默支付” 的想法,它将允许人们给一个公开的标识符(近似于 “地址”)支付,但不必在链上显示出这个标识符。这可以帮助防止地址复用。举个例子,Alice 可以在自己的网页中发布一个公开标识符,而 Bob 可以将这个标识符转化为一个独一无二的、只有 Alice 可以花费的比特币地址。如果 Carol 后来访问 Alice 的网站,并复用 Alice 的标识符,她将推导出另一个地址;这个地址无论是 Bob 还是其它第三方,都无法直接断定是否属于 Alice。后来,开发者 W0ltx 为 Bitcoin Core 创建了静默支付的一个提议实现,并在稍后取得了重大进展。
Lightning Labs 推出了 Taro,这个协议(基于以前的提议)允许用户将非比特币的代币的创建和转移承诺到比特币区块链上。Taro 旨在跟闪电网络一起使用,实现可路由的链下转账。类似于以前的闪电网络跨资产转账提议,仅仅转发支付的中间节点不需要理解 Taro 协议,也不需要知道被转移的资产的细节 —— 他们只需使用跟其它闪电支付同样的协议,转移比特币即可。
四月份还出现了关于量子安全的密钥交换的讨论;未来可能出现快速的量子计算机,但量子安全的密钥交换将允许用户使用可以抵御这样的量子计算攻击的密钥来接收比特币。这份特别版的 Optech Newsletter 总结了 2022 年全年比特币值得注意的发展。 这是我们的年终总结系列(2018、2019、2020 以及 2021)的延续。
五月
用于创建 schnorr 多签 的 MuSig2 协议在 2022 年取得了一些进展。提议的一个 BIP 在 5 月收到了重要的 反馈。后来,在 10 月,Yannick Seurin、Tim Ruffing、Elliott Jin 和 Jonas Nick 发现了一个 漏洞:该协议在某些方式下可被利用。研究人员宣布他们计划在更新版本中修复该漏洞。
包中继 的 BIP 草案由 Gloria Zhao 在 5 月发布。包中继修复了 Bitcoin Core CPFP 手续费追加这一重大问题。这个问题是如果其父交易支付的费率高于节点的动态最低交易池手续费,则各个节点只会接受手续费追加的子交易。这使得 CPFP 对依赖于预签名交易的协议来说不够可靠,例如许多合约协议(包括当前的闪电网络协议)。包中继允许将父交易和子交易看作是一个单位进行评估,从而消除了上述问题——尽管没有消除其他相关问题,例如交易钉死。在 6 月份,有更多关于包中继的讨论。
在 5 月份,我们还见证了比特币内核库项目(libbitcoinkernel)的第一次合并,试图将尽可能多的 Bitcoin Core 共识代码分离到一个单独的库中,即使该代码仍附带有一些非共识代码。从长远来看,这一目标是精简 libbitcoinkernel 到只包含共识代码,让其他项目可以轻松使用该代码或让审计人员分析对 Bitcoin Core 的共识逻辑的变更。几个额外的 libbitcoinkernel PR 也在今年合并。
2022 总结
流行基础设施项目的主要发布
● Eclair 0.7.0 添加了对锚点输出、中继洋葱消息以及在生产环境中使用 PostgreSQL 数据库的支持。
● BTCPay Server 1.4 添加了对 CPFP 手续费追加 的支持、可使用 LN URL 的更多功能以及多个 UI 改进。
● LDK 0.0.105 添加了对幻影节点支付的支持以及支付寻路概率的优化。
● BDK 0.17.0 可更容易地派生地址,甚至是当钱包处于离线状态时。
● Bitcoin Core 23.0 默认为新钱包提供描述符钱包,还允许描述符钱包以轻松支持使用 taproot 接收到 bech32m 地址。它还增加了对使用非默认 TCP/IP 端口的支持,并开始允许使用 CJDNS 网络覆盖。
● Core Lightning 0.11.0 添加了对同一对方节点的多个活跃通道以及支付无状态发票的支持。
● Rust Bitcoin 0.28 添加了对 taproot 的支持并改进了相关 API,例如 PSBTs。
● BTCPay 服务器 1.5.1 添加了一个新的首页仪表板、一个新的转账处理器功能以及可自动批准拉取付款和退款的能力。
● LDK 0.0.108 和 0.0.107 增加了对大通道和零确认通道的支持;此外,还提供了可使移动客户端从服务器同步网络路由信息(即 gossip)的代码。
● BDK 0.19.0 通过描述符、PSBTs 和其他子系统添加了对 taproot 的实验性支持。它还添加了一个新的选币算法。
● LND 0.15.0-beta 添加了对发票元数据的支持。发票元数据可用于无状态发票的其他程序(以及 LND 潜在的未来版本)。该版本还支持对内部钱包接收和花费比特币到 P2TR keyspend 输出以及实验性的 MuSig2。
● Rust Bitcoin 0.29 添加了致密区块中继的数据结构(BIP152)并改进了对 taproot 和 PSBT 的支持。
● Core Lightning 0.12.0 添加了一个新的 bookkeeper 插件、一个 commando 插件以及对静态通道备份的支持,并明确开始允许对方节点能够打开连接到你节点的零确认通道。
● LND 0.15.1-beta 添加了对零确认通道和通道别名的支持,并可以在任何地方使用 taproot 地址。
● LDK 0.0.111 添加了对创建、接收和中继洋葱消息的支持。
● Core Lightning 22.11 开始使用新的版本编号方案并添加了新的插件管理器。
● libsecp256k1 0.2.0 是这个被广泛采用的比特币相关密码学操作库的第一个被打标签的发布版本。
● Bitcoin Core 24.0.1 添加了一个用于配置节点的费用替换(RBF)策略的选项、一个新的用于在单笔交易中很容易花费所有钱包资金的 sendall RPC、一个可用于验证一笔交易将如何影响钱包的 simulaterawtransaction RPC,以及创建仅观察的描述符的能力(其中包含 miniscript 表达式的以提高与其他软件的向前兼容性)。
六月
6 月,闪电网络开发人员开会讨论协议开发的未来。讨论的主题包括基于 taproot 的闪电网络通道、tapscript 和 MuSig2(包括递归 MuSig2)、更新 gossip 协议以公告新通道及已变更通道、洋葱消息,盲化路径、探测(probing)及余额共享、蹦床(trampoline)路由、要约(offers) 和 LNURL 协议。
七月
7 月,Bastien Teinturier 发布了一篇关于限制洋葱消息以防止拒绝服务攻击想法的摘要。他将该想法归功于 Rusty Russell。但是,Olaoluwa Osuntokun 建议可以重新考虑他在 3 月份的提案。该提案通过对数据中继收费来防止滥用洋葱消息。参与讨论的大多数开发人员似乎更愿意在向协议添加额外费用之前先尝试限制速率。
本月 Bitcoin Core 还合并了一个 pull request,添加了对用 miniscript 编写的输出脚本描述符仅观察模式的支持。我们预计未来的 PR 将允许钱包为基于 miniscript 的描述符创建签名。随着其他钱包和签名设备实现 miniscript 支持,在钱包之间转移策略、多个钱包合作花费比特币应该变得更容易,例如多重签名策略或者那些涉及到不同签名者在不同场合下的策略(例如后备签名者)。
八月
8 月,Eclair 合并了一项对交互式充值协议的支持。双重充值协议依赖于该支持。双重充值协议允许两个节点中的任何一个(或共同)为新的闪电网络通道充值。当月晚些时候,另一项合并使 Eclair 开始对双重充值进行实验性支持。双重充值的开放协议有助于确保商家能够访问那些能立即收到客户付款的通道。
Antoine Riard 和 Gleb Naumenko 发布了一份关于通道阻塞攻击及其若干建议解决方案的指南。对于攻击者控制的每个通道,他们可以通过发送永远不会完成的付款使十多个其他通道无法使用——这意味着攻击者不需要支付任何直接成本。该问题自 2015 年以来就已为人所知,但之前提出的解决方案均未获得广泛接受。 在之后的 11 月,Clara Shikhelman 和 Sergei Tikhomirov 将发表他们自己的论文。论文中有对此的分析和建议的解决方案,包括基于小额预付费用和基于信誉自动推荐。随后,Riard 发表了一个使用特定于节点、不可交易令牌的替代解决方案。在之后的 12 月,Joost Jager 将宣布一个“简单但不完美”的实用程序,可以帮助节点减轻一些阻塞问题,而无需对闪电网络协议进行任何更改。
Illustration of the two types of channel jamming attacks
Lloyd Fournier 写了一篇关于 DLC 预言机使用 Boneh-Lynn-Shacham(BLS)签名进行证明的好处。比特币不支持 BLS 签名,需要软分叉才能添加它们,但 Fournier 给出了他合着的一篇论文链接。该论文描述了如何从 BLS 签名中安全地提取信息,将该信息用在与比特币兼容的签名适配器中而不对比特币进行任何变更。这将允许“无状态”预言机,其中合约各方(但不是预言机)可以私下同意他们希望预言机证明哪些信息,例如,通过指定一个程序。而该程序可用他们所知预言机可以运行的任何编程语言来编写。
然后他们可以根据合约分配他们的存款资金,甚至不需要告知预言机他们计划使用它。到了结算合约的时候,每一方都可以自己运行程序。如果他们都同意运行结果,就可以合作结算合约,根本不需要预言机的参与;如果他们不同意,他们中的任何一方都可以将程序发送到预言机(可能需要为其服务支付少量费用)并收到 BLS 对程序源代码的证明以及运行程序的返回值。证明可以转换为允许在链上结算 DLC 的签名。与当前的 DLC 合约一样,预言机无法根据其 BLS 签名知道是哪些链上交易。
2022 总结
Bitcoin Optech
在 Optech 的第五年,我们发布了 51 份周报,并在我们的主题索引中新增了 11 个页面。 Optech 今年总共发表了超过 70,000 字的有关比特币软件研发的文章,大致相当于一本 200 页的书。
九月
Lisa Neigut 在 Lightning-Dev 邮件列表中发表了一个费率卡的提案。该提案允许节点宣传其转发费用的四级费率。更好地宣传转发费用,包括在某些情况下设置负费用的能力,可以帮助确保转发节点有足够的容量将付款中继到最终目的地。开发人员 ZmnSCPxj 在今年早些时候曾发布了他自己基于费用来改进路由的解决方案。这是一种使用费率卡的简单方法,“你可以将价目表建模为相同两个节点间的四个独立通道,每个都有不同的成本。如果成本最低的路径失败了,你只需尝试另一条可能有更多跳数但有效成本较低的路由,或者以更高的成本尝试相同的通道。” René Pickhardt 建议了一个支付流量控制的替代方法。
十月
在十月,Gloria Zhao 提出允许使用版本号 3 的交易运用修改后的交易中继策略组。这些策略基于使用 CPFP 和 RBF 的经验,并增添了打包中继的思想。设计这些策略是为了帮助防止 LN 等两方合约协议中的钉死攻击 —— 确保用户能够及时得到交易确认,以关闭通道,结算付款 (HTLCs) ,并对不当行为进行强制惩罚。Greg Sanders 在本月晚些时候跟进,提出一个关于临时锚点的额外提议,一种已经在大多数 LN 实现中应用的锚点输出的简单形式。
Eclair 增加了在使用蹦床中继时对基础形式的异步付款的支持。异步付款允许在无需信任有资产的第三方的情况下向离线节点(例如手机钱包)支付。异步支付的理想机制依赖 PTLCs,但为其部分实现,仅需要第三方延迟转发资金,直到离线节点恢复上线。蹦床节点可以提供这种延迟,因此这个 PR 利用它们来进行异步支付的实验。
十月同样出现了两个影响多个应用程序的区块解析错误。BTCD 的一个意外触发的错误使它和下游程序 LND 无法处理最新的区块。这会让用户丢失资产,尽管尚未报告此类问题。第二个相关错误此次被故意触发,再次影响了 BTCD 和 LND 以及某些版本的 Rust-Bitcoin 的用户。同样,可能有用户失去资金,尽管我们尚未得到此类事件报告。
John Light 发布了一篇关于 validity rollups 的研究报告 —— 一种侧链,其当前状态被紧凑地存储在主链上。侧链比特币的所有者可以使用存储在主链上的状态来证明他们控制了多少个侧链比特币。通过提交带有有效性证明的主链交易,他们可以从侧链上提取其拥有的比特币,即使侧链的运营商或矿工试图阻止。Light 的研究深入描述了 validity rollups,研究了如何在比特币中支持它及实施中的各种担忧。
BIP324 提案更新了,并得到了三年内的首次邮件列表讨论。BIP324 是关于加密的 v2 P2P 传输协议。对未经确认的交易进行加密传输,有助于隐藏其来源,不被控制许多互联网中继的窃听者(如大型 ISP 和政府)发现。它还可以帮助检测篡改,并可能使日蚀攻击更加困难。
一次比特币协议开发者会议中,Bryan Bishop 主持 了几项议题讨论,包括传输加密、交易费和经济安全性、 FROST 门限签名方案、使用GitHub进行源代码托管和开发讨论的可持续性、BIP 中的可证明规范、包中继和 v3 交易中继、Stratum 第二版采矿协议、以及让代码合并到比特币核心和其他自由软件项目。
2022 年软分叉提议总结
一月伴随着 Jeremy Rubin 举行第一次 IRC 会议,审核和讨论 OP_CHECKTEMPLATEVERIFY(CTV) 软分叉提案。同时,Peter Todd 在 Bitcoin-Dev 邮件列表中发布了对该提案的一些担忧,最值得注意的是,他认为此前的软分叉已经使几乎所有比特币用户受益。
Lloyd Fournier 在 DLC-Dev 和 Bitcoin-Dev 邮件列表中发布了CTV操作码如何从根本上减少创建某些 谨慎日志合约(DLC)所需的签名数量,以及减少一些其他操作的数量。Jonas Nick 指出,使用提议的 SIGHASH_ANYPREVOUT (APO)签名哈希模式也可以进行类似的优化。
Russell O’Connor 提议了 CTV 和 APO 的替代方案——一个软分叉,增加了一个 “OP_TXHASH “操作码和一个 OP_CHECKSIGFROMSTACK(CSFS)操作码。TXHASH 操作码将指定一个花费交易的哪些部分应该被序列化和散列化,其散列摘要将被放在评估堆栈中供以后的操作码使用。CSFS 操作码将指定一个公钥,并要求对堆栈上的特定数据进行相应的签名,例如由 TXHASH 创建的交易摘要。这将允许以一种可能更简单、更灵活、更容易通过其他后续软分叉扩展的方式来模拟 CTV 和 APO。
二月,Rusty Russell 提出 OP_TX,这是 OP_TXHASH 的一个更简单的版本。同时,Jeremy Rubin 发表了激活 CTV 的 Signet的参数和代码。这简化了提议的操作码的公开实验,并使使用该代码的不同软件之间的兼容性测试变得更加容易。同样在 2 月,开发者 ZmnSCPxj 提出了一个新的操作码 OP_EVICT,作为 2021 年提出的操作码 OP_TAPLEAF_UPDATE_VERIFY(TLUV)的替代。与 TLUV 一样,EVICT 专注于两个以上用户共享单个 UTXO 所有权的用例,如 joinpools、channel factories 和某些 covenants。ZmnSCPxj 后来提出一个不同的新操作码,OP_FOLD,作为一个可以建立类似 EVICT的行为的更通用的构造(尽管这需要一些其他脚本语言的改变)。
到了三月,关于 CTV 和较新的操作码提案的讨论导致了关于限制比特币脚本语言的表现力的讨论,主要是为了防止递归契约——在重新花费这些比特币及与其合并的比特币的每笔交易中都需要永远满足这些条件。担心的问题包括失去抗审查能力,启用驱动链,鼓励不必要的计算,并使用户有可能因递归契约而意外地丢币。
三月还见证了另一个对比特币的脚本语言进行软分叉的想法,这次是允许未来的交易选择使用一种完全不同的基于 Lisp 的语言。Anthony Towns 提议了这个想法,并描述了它如何比 Script 以及之前提议的替代品 Simplicity更好。
四月,Jeremy Rubin 在 Bitcoin-Dev 邮件列表发布了发布软件的计划,该软件允许矿工开始示意他们是否打算强制执行针对拟议的 CTV 操作码的 BIP119 规则。这引发了关于 CTV 和类似建议的讨论,如 APO。Rubin 后来宣布,由于他和其他 CTV 支持者评估了他们收到的反馈,他目前不会发布激活 CTV 的编译软件。
五月,Rusty Russell 更新了他的 OP_TX 提案。最初的提议将允许递归契约,这引起了本节前面提到的担忧。取而代之的是,Russell 提出了一个 TX 的初始版本,仅限于允许 CTV 的行为,CTV 是专门为防止递归契约而设计的。这个新版本的 TX 可以在未来逐步更新,以提供更多的功能,使其更加强大,但也允许对这些新功能进行独立分析。五月的附加讨论考察了 OP_CAT 操作码(2010年从比特币中删除),一些开发者偶发建议将来可将其作为添加的候选操作码。
九月,Jeremy Rubin 描述了如何将可信设置程序与提议的 APO 特性相结合,实现类似于驱动链所提议的行为。防止驱动链在比特币上的实施是开发者 ZmnSCPxj 在今年早些时候建议全节点运营商反对实现了递归契约的软分叉的原因之一。
同样在九月,Anthony Towns 宣布一个专门为测试软分叉而设计的比特币实现 signet。基于比特币核心,Towns 的代码将以高质量的规范和实现来执行软分叉提案的规则,使用户更简单地尝试拟议的更改——包括相互比较更改或看到它们的互动方式。Towns 还计划加入对交易中继政策(如包中继)提议的重大改变。
十一月,Salvatore Ingala 在 Bitcoin-Dev 邮件列表中发布了一个提议,提出了一个新的契约类型(需要一个软分叉),允许使用默克尔树来创建智能合约,此合约可以在一笔链上交易到另一笔链上交易中携带状态。这将与其他一些密码货币系统智能合约的应用类似,但与比特币现有的基于 UTXO 的系统兼容。
十一月
十一月见证了 Joost Jager 更新了 2019 年的一份提案,该提案用于改善 LN 中失败支付的错误报告。该错误将指明未能由节点转发付款的通道的身份,这样花费者可以在有限时间内避免使用包含该节点的通道。一些 LN 的实现将更新代码支持此提案,即使他们不会立即开始使用。这些实现包括 Eclair 和 Core Lightning。
十二月
在十二 月,协议开发者 John Law 在 Lightning-Dev 邮件列表中发表了他今年的第三份主要提案。如前两份提案,他提出了 LN 的链外交易的新设计方式,以在不对比特币的共识代码进行任何修改的情况下实现新的功能。总的来说,Law 提出了 LN 临时用户可以一次保持离线状态数月的方式,将特定付款的执行与已结算资产的管理分离,以提高与瞭望塔的兼容性,并优化通道工厂中 LN 通道的使用,这可以大规模降低使用 LN 的链上开销。
我们感谢所有前文中列出姓名的比特币的贡献者,并感谢做出同样重要工作的其他人,他们为比特币的发展创造了难以置信的另一年。Optech 周报将于 1 月 4 日恢复常规周三出版计划。
BTC NFT 铸造指南
王一石(yishi.io)
在这篇文章中,我会以 .stats 域名的铸造为例,带你走一遍完整的 BTC NFT 铸造流程。在延展阅读处,会稍微解释下闪电网络、Taproot 地址和 Ordinals 协议。
需要哪些前期准备
下载 Xverse 钱包,我们后面会用它来存储 NFT,因为它能够正确识别 Ordinals 协议的资产。
下载 Alby 浏览器插件钱包,用来处理闪电网络交易,这款钱包的体验相当不错。
准备好自己的 OKX 账号,我们要用它提取闪电网络的 BTC 到自己的钱包。
接收 BTC NFT 的重要前提是你的钱包支持 Taproot 地址格式,它们通常以 bc1p 开头,这是重要的识别方式。
这是目前我自己用的最顺手的组合,如果你习惯使用其他钱包,如 Bluewallet、Muun 等,同样可行。
截止目前,OneKey 钱包还没有支持 Taproot 地址和闪电网络,但我看到官方已经提过,估计很快会上。
我需要跑 Bitcoin 全节点吗
不需要,现在已有很多免节点的替代铸造工具。
但是,如果你想更深入参与 BTC Ordinals NFT 市场,并且将手续费降到最低,建议你去 Bitcoin Core 下载最新的钱包。
下载好后按下图修改设置,不要修剪节点,不然你会白同步,Ordinal 是要追溯到整个 BTC 区块的第一笔交易的。
同时,最好将 BTC 的区块数据放到至少1TB容量的外置硬盘,不然会很占你的电脑空间,目前整个 BTC 网络的数据大约500GB。
如果你对自己搭节点不感兴趣,只想快点 Mint,那这里跳过就好,也不用下 Bitcoin Core 钱包了。
Sparrow 钱包是必需的吗?
不是,那是一个月前的做法。
Sparrow 是个很棒的钱包,但它无法显示 NFT,并且操作门槛高,不建议入门用户使用,高阶用户随意。
给钱包氪金
把你的 Alby 钱包准备好,怎么使用这里不赘述。
从你的 OKX 提一些 BTC 到 Alby,不要提多,最多几百美金等额的 BTC 足矣,网络选择:BTC-闪电网络。
再从你的 OKX 提一些 BTC 到 Xverse,Xverse 不支持闪电网络,普通提现就可以。
现在你的两个钱包都有 BTC 了,它们大概长这样:
选择铸造工具:
其实,在 BTC 链上铸造 NFT 不叫 Mint,叫 Inscribe,铭刻的意思。不过在 ETH 市场大家已经很熟悉 Mint 了,所以下面我还是会用 Mint 来指代铸造这个过程。
目前最好用的 Mint 工具目前就是上面3个,下面我来以 Gamma 为例,带大家铸造一个 .sats 域名。
.sats 是 BTC 网络上类似 ENS 的项目,没有自己的代币,没有预挖,铸造是免费的。我没有囤积 .stats 域名,只铸造了极少量(不足20个)参与。
根据其文档,铸造是要把下图这个文本刻到 BTC 主网上。
那我要怎么操作才能把它们铸造上去呢,显然不可能通过 BTC 转账留言,对吧?
这时候我们可以选择上面提到的铸造工具,它们其实没有什么特别,只是将 BTC 网络的铸造过程可视化,让用户更容易上手。
选择 Text 文本
把 .stats 文档里写的文本贴过来,name 字段换成你要的域名,如:abc.stats
轻触继续,选择费率,一般我们选 Higher fee 以保证铸造尽快成功。
注意,每次铸造 NFT,Gamma 都要收你5.7刀左右的服务费,还是比较贵的。unisat 会便宜一些,操作上有细微区别。总之,我们先学会用 Gamma 铸造,然后自己再去尝试其他工具。
下面这个步骤最为关键:接收地址必须填 Taproot 格式的(以 bc1p 开头),否则你的 NFT 可能会丢失。此外,邮件最好填一下,Gamma 会将订单信息推给你。
那么, Taproot 地址上哪里找呢?
还记得我们在文章开头下载的 Xverse 钱包吗。按照下图,轻触按钮1访问 NFT 面板,接着,轻触按钮2 接收,选择 Taproot 地址(bc1p开头),把这个地址复制到上面的 Gamma 地址栏 👆
按提示继续,你需要勾选下方的使用协议。
紧接着,Gamma 会生成订单。在这个订单页面,你可以看到有两个要素:
BTC 金额
收币地址
按照页面指示,将正确的金额转到对应的地址,确保无误,然后等待 Gamma 铸造完成。
稍等片刻,通常10-30分钟后(BTC 网络需要出块确认),你就可以在自己的 Xverse 钱包看到 BTC NFT 了。
至此,你已经完成了 BTC 网络上 .sats 域名 NFT 的铸造,比预想中的简单对吗?我们继续。
如何确定域名有没有被注册
你可以使用这个非正式的 API 接口查询,https://api.sats.id/names/abc.sats
将链接末尾的 abc.sats 换成你想要注册的域名,如:123.stats
那么你就能得到如下链接:
https://api.sats.id/names/123.sats
如果返回信息的信息像这样,那就说明这个域名尚未被注册:
否则,就是已经被注册了。
自动查询 .stats 域名
手动查询仍然比较繁琐,你可以通过脚本程序查找可注册的域名,这样效率会更高(比如你想要注册全部可用的 10K 数字域名)。
以下只是代码示意,无法直接运行。
你需要自行编辑,才能使其在自己的电脑上运行。
// 定义接口地址
const apiUrl = "https://api.sats.id/names/";
// 定义循环延迟时间(单位:毫秒)
const delay = 1000;
// 生成随机不重复数字的函数
function getRandomNumbers(count, min, max) {
if (count > max - min + 1) {
throw new Error("不能生成足够的不重复数字");
}
const numbers = new Set();
while (numbers.size < count) {
numbers.add(Math.floor(Math.random() * (max - min + 1)) + min);
}
return [...numbers];
}
// 定义循环函数
function loop(numbers, index) {
const number = numbers[index];
// 构造接口地址
const url = apiUrl + number + ".sats";
// 调用接口
fetch(url)
.then(response => response.text())
.then(data => {
// 判断返回内容是否包含指定字符串
if (data.includes(".sats not found")) {
console.log("找到了:" + url);
}
})
.catch(error => {
console.log("请求出错:" + url);
})
.finally(() => {
// 延迟1秒后执行下一次循环
if (index < numbers.length - 1) {
setTimeout(() => loop(numbers, index + 1), delay);
}
});
}
// 生成随机不重复数字
const numbers = getRandomNumbers(9999, 1, 9999);
// 启动循环
loop(numbers, 0);
除了数字域名,你也可以穷举所有可注册的字母域名。
以下是简单代码,可以直接运行。
它的规则是找到所有3字母的域名,如果你要调整规则,简单修改代码即可。
const letters = [
"n",
"a",
"s",
"d",
"t",
"i",
"c",
"o",
"e",
"m",
"p",
"b",
"x",
"q",
"z",
"f",
"g",
"h",
"j",
"k",
"l",
"r",
"u",
"v",
"w",
"y",
];
const urls = [];
// 生成所有可能的 URL
letters.forEach((l1) => {
letters.forEach((l2) => {
letters.forEach((l3) => {
const url = `https://api.sats.id/names/${l1}${l2}${l3}.sats`;
urls.push(url);
});
});
});
// 随机排序 URL 数组
urls.sort(() => Math.random() - 0.5);
// 发送请求的函数
const fetchUrl = async (url) => {
try {
const response = await fetch(url);
const text = await response.text();
if (text.includes(".sats not found")) {
console.log(`找到了:${url}`);
}
} catch (error) {
// 忽略错误
}
};
// 并发发起请求
const concurrency = 20;
let index = 0;
const interval = setInterval(() => {
for (let i = 0; i < concurrency; i++) {
const url = urls[index];
fetchUrl(url);
index++;
if (index >= urls.length) {
clearInterval(interval);
break;
}
}
}, 1000);
运行这些 JS 脚本很容易,你只要在自己的浏览器任意位置点击 Inspect(检查),并在 Console(控制台)复制/粘贴代码就可以。符合条件的域名会自动提示你。
我们先前下载的 Alby 有什么用
Alby 是闪电网络钱包,只支持闪电网络转账。
上面提到了ordinalsbot 这个工具,它支持使用闪电网络付款,还支持批量铸造。
这样你就不用等待网络长达20-30分钟的确认,更快抢到你想要的 NFT。
在你学会如何使用 Gamma 后,就可以尝试这些更复杂一些的工具来探索 BTC NFT。
关于闪电网络、Taproot 和 Ordinals 协议
⚡️ 闪电网络(Lightning Network)
闪电网络是一种基于比特币技术的二层协议,可以加快交易速度和扩展性。它通过创建多个支付通道,使用户能够实时、高效、低成本地进行点对点交易,从而避免了需要等待矿工验证和打包的过程。这种网络类似于数字钱包,用户可以在其中创建支付通道并存入比特币,在通道内与其他用户进行交易,这些交易不需要写入区块链。当用户关闭支付通道并提取比特币时,最终余额将被写入区块链。
🥕 Taproot 地址
Taproot 是比特币网络的一种新型地址格式,是最新的升级方案之一。它采用了一种新的地址编码方式,可以提供更好的隐私、安全和可扩展性。Taproot 地址可以隐藏多个公钥或脚本,使得交易只展示最终使用的公钥或脚本,保护了用户隐私;它还可以被用于多种不同的交易类型,并且使用 Taproot 地址的交易规模通常比传统的交易规模要小,从而降低了交易费用。另外,Taproot 地址还可以减少脚本的使用,降低区块链大小和交易的复杂性,提高比特币网络的可扩展性。
⭕️ Ordinals 协议
这其实是 Casey Rodarmor 创办的,使用序数理论来标记和跟踪“注册”,即嵌入在区块链中的数据/内容:
序数是定义系列中位置的任何数字(例如,第一,第二,第三)。在比特币的情况下,Ordinal 是一个特定 Satoshi 的未使用交易输出(UTXO),其中包含一个包含内容(例如文本、图像或 MP3)的“注册”。已注册的 Satoshi 被设置为特殊交易,以便用户可以识别和跟踪它们。
事实上,这个解决方案早在2012年就在比特币论坛上提出了。Ordinals NFT 有一个有趣的点,它们不使用比特币的 OP_RETURN 字段。这个命令允许用户在链上提交任意数据。
Taproot 也很关键,它放宽了这些要求,完全取消了数据限制,因此理论上你可以铸造一个占据整个区块数据空间的4MB 大小的 NFT。
我常用的 BTC NFT 工具
https://dune.com/dataalways/ordinals
特别感谢
我在了解 BTC Ordinals 协议的过程中,从 @李欢 和 @xiyu 身上学到很多。你可以关注他们的推特,他们经常分享 BTC 的知识和见解。同时,非常感谢 @zuozhuo 提工的域名查询脚本,十分好用。
祝各位铸造愉快。
《谁是中本聪》
第十节:中本聪获诺⻉尔奖的意义(1)
2.开源的力量
比特币是一个开源项目.没有公司运营.只有发明人没有负责人.没有试 图剥削任何人.也没有融资.没有侵害任何人的利益.在一个讲法制的社会.即使当局恨得牙痒痒.也很难将中本聪扔进监狱.今天就更不可能 了.此处忍不住赞叹中本聪的高明和谨慎.
开源让全世界的开发者都有权对比特币更新作贡献.比特币改进提案 (BIP)由此产生.
BIP是一种设计文档.主要为全网带来新的功能或信息.由于比特币的开 源本质以及其系统中不存在中央机构.比特币社区希望开发者使用BIP作 为交流媒介和互换信息的主要方式.比特币网络第一个BIP0001是由阿米 尔塔基(Amir Taaki)提交的.主要内容都是关于BIP的.包括BIP的定义 以及如何将BIP和比特币核心(Bitcoin Core)的客户端相结合.并由卢克 达什 (Luke Dash)在 BIP 0002 中对其进行了扩展和替代.
开源.形成BIP.形成社区机制.进行自然的演化.这就是社区的力量. 一个人的代码就可征服世界.没有广告费用.没有市场团队.这在公司制 之下是不能想象的.社区的提案机制是比特币最伟大的机制创造之一.比 特币社区是中本聪创造的.他创造了环境.而后来的演化是社区的力量的 创造.从现在社区的运行结果来看.无论技术社区和比特币论坛都很落 伍.赶上时代好还是维持现状好?都有道理.从我的⻆度是希望改进.
3.创造三位一体的自治组织形式
社区的力量来源于中本聪的机制设计.程序开发者.矿工和持币者利益一 致.没有公司的边界.形成社区.社区的共性是以币为纽带.行动是自愿 的.贡献是自愿的.要说如果有团队.是维护比特币的.叫比特币核心 (Core)开发组.市场占有率96%以上.这个团队是一个松散组织.负责 志愿者上传代码的审核..从发展来看.使用币作为社区纽带还有进一步 改进的空间.在依靠众多用户发展的应用场景下.社区机制战胜公司是一 定的.这就是未来.
比特币告诉了我们如何实现躺赢.中本聪躺赢了.但是早期的开发者不一 定能像中本聪那样拿得住比特币.因为自然进化.没有人做市场的组织宣 传.共识达成得慢.躺赢是由于生产效率提高.公司制度解体必然出现的 社会现象.如何实现躺赢是另一个题目.中本聪给我们揭示了未来的走 向.和正确地躺赢方法.他不卖.你不卖.就是中本聪水平.
4.比特币系统的理论基础
比特币在设计时延续了密码朋克的思路和传统.如果硬要有个学派.类似 于奥地利学派.那就是密码朋克派.作为比特币本身用到的基础理论有: 博弈论,概率论,控制论,密码学,数学,货币学,哲学,计算机编程和 数据库技术,P2P网络技术.
密码学中又包括:公钥私钥密码技术,加密签名,哈希函数,交易哈希 链,默克树,时间戳和SHA256加密算法等.
经济学内容十分广泛.包括:博弈论,概率论,控制论和货币学.其他的 学科都说不上创造.只有经济学有很多匪夷所思的创新.
10.6 他打开了潘多拉魔盒
回顾诺⻉尔经济学奖得主的贡献.与他们相比较.中本聪是宗师级的贡 献.是达尔文.爱因斯坦.牛顿级别的贡献.几百年来有无数的货币诞生 和消亡.比特币是几百年来货币领域最伟大的创新.[中本聪汇集了各种 现有的概念.创造出这一强大的技术.使货币系统的概念发生彻底的变 革.他打开了一个潘多拉魔盒.大批精英工作在比特币系统之上.基于这 套准则改变其他体系..........比特币的主要影响是允许世界人⺠重新思考货币应该如何发挥作用.它为人类开启了一扇通向新的货币体系的大⻔. 一次电子复兴."(5)
这一段话非常深刻是<中本聪文集>译文版的结束总结.新的货币体系是 什么?我们必须思考在新的货币体系中比特币应该扮演的⻆色.中本聪加 密经济学的特色就是讲究方案实现.接下来的三节就是我们的实现方案.
中本聪是加密经济学的创立者.开创了人类用机器实现全球通用的货币发 行和机器自动公平分配货币的方法.加密经济学是中本聪的获奖理由.但 是加密经济学不能够概括中本聪的所有思想.中本聪获奖对他本人和比特 币社区都是重大利好.诺奖委员会支持他获奖更能展现其真实的价值.问 题是他本人必须能联系得上.必须出面.对此要解决的问题还很多.要做 到顺理成章才行.本节就是其中的一个节点.我们需要补上一块块共识. 以⻩金作为共识标准来看.比特币还不是全球共识.可能许多人说我不 懂.那就看完我下一节再说.
结论:
中本聪:男.时年33-34岁.神童.美国人.住⻄海岸.是密码朋克.不 缺钱.自由职业者.在已过世的中本聪怀疑对象名单中没有中本聪.他具 有卓越的编程能力和产品设计能力以及对社区的理解力.命好.有一个好 金主兼谋士.中本聪对金融有深刻的认识.受奥地利经济学派影响.哲学 上倾向自然进化.喜欢自由自在的生活.是加密经济学的创立者.
参考文献
1. 1.Web3.0ChainlessFinancialPlatformWhitePaper Hong Kong Yuxing Technology Company (8005)
1. 2.金融业挤占了产业的资源和利润
熊焰 2012年10月30日 14:48
http://finance.sina.com.cn/hy/20121030/144813524078.shtml
有数据表明.今年上半年.中国2500家上市公司的利润总和的一半被16 家上市银行收获.有一个比较.中美的前十家企业的总利润的比较.中国 前10家大企业中有四家银行.它们占有了整个前十家利润的63%.而美国 前十家大型企业中.只有两家是金融机构.它们的利润只占了这十家的 17%.作为一个社会部⻔.银行金融机构是否创造价值.这有争论.咱们 抛开不谈.但是以银行为代表的金融部⻔.过多地占了社会稀缺的资 源.过多的享有了利润.这个应该是一个大家都承认的事实.与去年类似 的论坛上.有个银行家讲到利润多到不好意思谈.也有政府官员大声疾 呼.全中国人⺠都给银行打工.这个局面到了该调整的时候了.
3.福特之百年预言:一种基于能源的货币形式 翻译自[Cointelegraph"的博客 www.isun1.com/za/post/henry-ford-proposed-bitcoin-100-years-ago-sc
4.Bitcoin: A Peer-to-Peer Electronic Cash System
Satoshi Nakamoto
www.bitcoin.org
5.区块链启示录:中本聪文集
(美)菲尔·尚帕涅(Phil Champagne)
译者:陈斌 胡繁
ISBN:9787111609247
《谁是中本聪》
第九节:设立比特币奖和中本聪奖
目录
9.1 比特币奖
9.1.1 奖励社区志愿者
9.1.2 比特币社区改进提案(BCIP) 9.2 中本聪奖鼓励探险者
9.1.比特币奖
9.1.1 奖励社区志愿者
中本聪相信自然进化,他的离开导致了社区管理时代的开始。过去的改进 都是中本聪裁决,其实矛盾很大。有些人达不到目的的会有污言秽语出 口,中本聪生性谦虚礼貌,也没有接受投资,不需要对股东负责,还是过 与世无争的日子舒坦。他这一走并不能解决混乱的问题,皇上死了,江山 还要继续。如何继续?9个月后一个伟大的事件出现了,印度裔英国程序 员阿米尔塔基(Amir Taaki)在2011年9月发布了比特币社区的第一个提 案:比特币改进提案BIP 001。它描述了什么是比特币改进提案。卢克达 希(Luke Dash)是在2011年1月加入比特币社区的老成员,他提出BIP- 002提案,修改了BIP的准则并取代了BIP-001。两者都是社区改进比特币 程序的提案规则。下图是比特币社区提案的大致流程。开创了社区自治的 历程,一直延续至今。这是人类历史的一大步。人类需要信任,不是相信 一个独裁者,而是相信一个自治的机制。
这里有一个问题,早年的开发者可以从挖矿中赚钱,客服可以不赚钱,志 愿地为项目做贡献。但是当挖矿专业化之后,开发者依然是没有激励的, 如果早期没有留下币,相信也没有留在比特币社区的必要了。大的后期 开发者会从矿机圈产生,他们养得起开发人员。这种可能性是存在的。图 景是最终的天平会向算力倾斜。开发者和算力的制衡就会打破,从而破坏 了比特币的价值存储。这是十分令人不安的问题。解决这个问题还是中本 聪的办法,给开发人员的物质和精神激励。
诺⻉尔奖和图灵奖都是奖精英的,世界不缺这种类似的奖。世界缺什么 奖?比特币缺什么奖?比特币缺对志愿者的奖励。比特币的设计之初缺了 一环,没有基金会,也没有从手续费中拿收入来维护比特币系统。将手续 费全部分给矿工是不公平的。公平的原则是按劳取酬。编写代码也是劳动 应该获得奖励,就如同提供算力获奖一样。凭什么写代码的就是志愿者? 写代码的获奖者就如同算力的博弈,社区的评议也是一种博弈。以太坊基 金会从交易费中分得收入,这点很聪明。从竞争的⻆度,比特币也应该 有。整个手续费的比例不超过以太坊就好。
比特币对早期的激励非常大,也许中本聪希望早期的参与者一直能维护下 去。2009年参与的程序员很少,而后参加的人包括相对早期参加的,如 第二任首席维护员加文安德烈森等,对于社区早期讨论并不太清楚,他们 只是程序高手,不是中本聪,不是哈尔芬尼,不可能有中本聪等创始群体 经过早期的信仰熏陶,对比特币的认识不足,哪里能⻓期拿住比特币?一 高涨就卖了。普通人没有了币没有了利益也就没有积极参与的动力。后来参与者的劳动如果不能积极评价,只靠自愿就不会有⻓期参与的动力,弱 化了中本聪三位一体的设计初衷。
比特币奖就是对志愿者的肯定和精神鼓励。志愿者贡献的不一定只有代 码,社区有活跃者,对积极参与者的正向激励是补上比特币早期的缺陷的 办法。当竞争对手是有组织的,散兵游勇如何是对手?比特币宣扬的观 点,权力无中心,共识不是⺠主,都是对的。但是有片面性。不能否定⺠ 主的作用,要发挥社区的作用。如果社区是利益机制,需要⺠主机制解决 利益问题。
有这样一件事。当奥本聪(Craig)要求在删除Bitcoin.org上中本聪比特币 白皮书时,比特币首席维护员弗拉基米尔范德兰曾经迅速回应Craig,并 且删除BitcoinCore.org上的比特币白皮书链接,因此受到广泛的批评。他表示要退出在比特币核心开发组担任的职务,以便进一步去中心化。其实 这是一个社区决策问题,他本人随意地删除确实有权限过大的问题。他们 是程序员,对法律问题的判断有知识障碍。如果社区更积极一些,这样的 事情不会发生。
9.1.2 比特币社区改进提案
解决这类问题同样要有类似比特币改进提案(BIP)的标准化提案方法, 使得拥有比特币的人都有提案权,如果一大就要审核,审核涉及很多专 业,远不是编程序那么单纯。所以必须有费用。
谁有权审核,采纳什么意⻅,应该由社区规定。不妨叫做比特币社区改进 提案(The Bitcoin Community Improvement Proposal,BCIP)。比特币 是三位一体的结构,在利益贡献上持币者的贡献最大,但是发言权最小。 在程序方向上决策非常需要专业知识,普通人无法判断,用投票方式是不 对的。但是涉及社区成员利益,相信⺠主决策更科学。如果有⺠主决策和 讨论机制,相信就不会出现弗拉基米尔范德兰误删白皮书的情况。在生态 社区治理上比特币是落后的,不如以太坊等后来的项目。对于生态社区以 太坊是有激励的,因此以太坊生态比比特币好。我们没有⻅到比特币对生 态社区的激励。落后是逐渐发生的。同等环境下⻩金脱颖而出。竞争环境 不同,比特币对⻩金就是降维打击,其实⻩金是无法承受的。⻩金的地位 目前看还行,未来就不好说了。同样比特币也面临竞争问题。现在还行, 未来就不好说了。如果要组织基金会,应该由社区投票批准,有开发人员 代表,矿机代表和持币者代表组成,主要解决利益分配的问题。这个利益 分配的古老原则是干活的和出钱的各占一半,从比特币来看,开发人员占 26%,矿机占25%,持币者占49%似乎比较合理。
这个方法是否可行?如果交易费部分给了基金会,比特币核心开发组会会 担心矿工不下载新版,最好的办法是再有一个利好矿工的改进,将此不利 矿工的功能捆绑出去。应该毫无问题。
我的设想很简单,将比特币的小数点向右移动5位到6位,哪个矿工敢不下 载?而比特币将瞬间暴涨,因为比特币的共识队伍迅速扩大。比特币项目 技术已经十分稳定,因此持币者的意⻅变得最要,因为他们代表共识绝 大部分,上市公司还知道听取小股东的意⻅,可惜的是区块链的所有项目 都没有意识到这一点,更不要说怎么玩了。这是未来区块链的用户社区激励要解决的问题。用户社区不同于生态社区,我在无链系统白皮书第三章 社区治理和间接激励回答了用户社区激励的问题(1)。
9.2中本聪奖鼓励探险者
有了交易费收入,就有了设奖可能。最该奖的人就是像中本聪这样,做了 有利全社会进步的创新,担心受迫害而匿名。这种迫害要有人发声,要有 人抗争,要有社会影响力。比如文件加密软件PGP公司的创始人菲尔⻬默 尔曼(Phil Zimmermann)当年的抗争,差点坐牢。又如电子⻩金(E- Gold)的老板判刑了,对不对?起诉的原因是洗钱,难道法币不洗钱?
电子⻩金项目的境况大致是:
“1996年,电子⻩金e-gold作为数字货币进入公众视。除了适应大众对 便捷性和隐私保护的需求,还因为金本位崩溃后,有些国家政府滥用货币 发行权引发了恶性通胀,金本位支持者的声音再次叩响,道格拉斯·杰克 逊(Douglas Jackson)就是其中一位坚定的金本位拥护者。1996年,道 格拉斯·杰克逊创立了公司e-gold。”
“通过1:1锚定⻩金的价格并进行100%⻩金储备,将金本位时代的交易模式 电子化。用户可以将e-gold与法币兑换,也可以在不同客户间进行e-gold 的直接划转,具备支付功能。”
“e-gold不需要通过信用卡、银行账户等烦琐的手续流程,就能够快捷、方 便、跨地域进行交易,在其成立后很快便得到了迅速成⻓。2009年,e- gold在165个国家拥有500万以上个账户,拥有超过3.5公吨的⻩金储备, 雅⻁、亚⻢逊等巨头公司都开通了e-gold支付交易方式,由此可⻅其当年 的影响力。”
“在2000年-2009年这十年间,数字⻩金货币迎来了它们的“高光时刻”, 数字⻩金货币如雨后春笋般涌现。E-Bullion、E-dinar于2000年创立、 GoldMoney、1MDC于2001年创立、Pecunix、Crown Gold、Liberty Reserve于2002年创立。可惜好景不⻓,2009年,e-gold系统的匿名性为 东欧黑客洗钱提供了犯罪基础,再加上后来平台持续遭遇黑客攻击,最终 因政府施加的压力导致破产。而其他数字⻩金货币也步了e-gold的后 尘。”(2)
道格拉斯·杰克逊在结束六个月的在家监禁后接受了美国连线杂志的采 访,以下采访摘录:
“这是他自去年承认与洗钱有关的罪行和经营无牌汇款服务以来的第一次 深入采访。他的故事是无数带着巨大梦想互联网新秀和企业家的故事之 一,只是被清醒的现实所扼杀。但是,他的兴衰也为我们提供了一个独特 的视⻆,让我们看到了网络前沿的光辉岁月,以及仍然覆盖着大部分不受 管制和不受保护的网络蛮荒景象,在那里,欺诈者与先驱者一起寻找财 富,占据一块地盘并赢得胜利。”(3)
法官判定道格拉斯没有明显的犯罪意图。其实锚定⻩金是一个值得研究的 问题。作为数字⻩金本位,这是必须面对的问题。区块链稳定币是在数字 货币场景锚定了法币,两者有多少差别?恶法压制了多少创新?中本聪显 然受了启发得到了教训,比特币系统一国政府是关不了的(现在的中心化 服务也能做到一国政府关不了)。但是抓人还是可以,所以中本聪选择匿 名。记得有这么一句话:“让一个老奶奶偷窃,是社会有罪”这就是著名的 拉古迪亚拷问。同样,让中本聪匿名是社会有罪!设立中本聪奖,就是为 了创新而受迫害的人发声。这个奖和比特币奖不同,要有历史考验,提名 资格和程序仿照诺⻉尔奖即可。创新的范围很广,我们还是回到密码朋克 的宗旨:“主张广泛使用强密码学和隐私增强技术作为社会和政治变革的 途径”。(4)后面我们将会描述中本聪的加密经济学,也就是在加密经济 学这个范围内比较好。有历史考验会减少争议,比如PGP公司的创始人菲 尔⻬默尔曼(Phil Zimmermann)对推动加密的普及具有历史贡献,应该 有获奖资格。而道格拉斯·杰克逊(Douglas Jackson)是不是应该获奖, 我就吃不准。有争议就有社区讨论,引起社会的广泛关注也达到目的。
比特币奖在比特币持有者中有崇高的荣誉超越金钱本身,是小人物奖,任 何人都有得奖的机会,并且是公开透明的社区程序。比特币已经有大饼 节,过节就要有过节的样子,希望能像奥斯卡晚会一样有影响力。如果有 几亿观众的晚会,也是世界一流的利益。社区已经运行了13年有好多志愿 者都是伟大的贡献者。这个名单很⻓很⻓。
中本聪奖的目的十分明确,由于挑战法律,引导未来,要十分小心才好。 这也是密码朋克变革世界的初衷。这里也有⻓⻓的名单,尽管他们在商业 上失败了,但是他们是探路者,人类需要诺⻉尔奖,奖励启迪人类的伟大 思想家,也要奖励死在探险路上的英雄。
中本聪就是一个探路者,探路除了胆大还要武功高强,其高强的武功足以 问鼎诺⻉尔奖。下一节,我们对中本聪的理论贡献做一个描述。找到获诺 ⻉尔奖的理由。
结论:
中本聪:男,时年33-34岁,神童,美国人,住⻄海岸,是密码朋克。不 缺钱。自由职业者。在过世的中本聪怀疑对象中没有中本聪。他具有卓越 的编程能力和产品设计能力以及对社区的理解力。命好,有一个好金主兼 谋士。中本聪对金融有深刻的认识。受奥地利经济学派影响。哲学上倾向 自然进化,喜欢自由自在的生活。
参考文献
1.Web3.0 Chainless Financial Platform White Paper
Hong Kong Yuxing Technology Company (8005)
2.数字货币30年
靳毅 http://finance.sina.com.cn/zl/china/2019-10-28/zl-iicezuev5382611.shtml
3.Bullion and Bandits: The Improbable Rise and Fall of E-Gold
Kim Zetter JUN 9, 2009 12:00 AM
https://www.wired.com/2009/06/e-gold/
4.Cypherpunk
《谁是中本聪》
第十节:中本聪获诺⻉尔奖的意义(1)
目录
10.1 中本聪开创了加密经济学
10.1.1 获奖的基本要求
10.1.2 加密经济学的基本内容
10.2 用密码学等技术解决金融问题
10.2.1 法币超发难题
10.2.2 用加密技术手段避免法币作恶实现比特币本位
10.3 用经济手段解决自动发币的难题
10.4 加密经济学在比特币系统上所取得的成果
10.5 加密经济经济学不能完全概括的比特币系统特色
10.6 他打开了潘多拉魔盒
10.1 中本聪开创了加密经济学
中本聪获得诺⻉尔奖要符合三项基本条件.
10.1.1 获奖的基本要求
1. 中本聪公布真实身份才具备获奖资格.
巴格万乔德里(Bhagwan Chowdhry)教授 提议可把奖金兑换成比特币打 入中本聪比特币地址的想法.诺⻉尔基金会不同意.也就是说中本聪必须现身.
1. 符合诺奖的口味和偏好.
诺⻉尔奖偏理论.所有的获奖者都有专著.白皮书作为专著似乎弱了一 点.不是创新不够.是描述不足.如何描述好?显然不是问题.这是对比 特币社区有好处的事.社区整体智慧表现出的描述能力足以超越诺⻉尔奖获奖者.
1. 必须在理论上有开创性的贡献.在实践上产生重大影响. 理论贡献和实践影响力上.中本聪具备获得诺⻉尔奖的资格.这也是诺⻉尔的精神:奖励为人类做出重大贡献者!
中本聪可获哪种诺⻉尔奖?加州大学洛杉矶分校的金融学教授巴格万乔德 里 (Bhagwan Chowdhry) 在赫芬顿邮报(Huffinton Post)上撰文表 示.已经提名中本聪为 2016 年诺⻉尔奖经济学奖的候选人.麻省理工学 院知名人工智能学者莱克斯-弗瑞德曼(Lex Fridman)2021年建议.化名 [中本聪"的比特币创造者应该获得诺⻉尔经济学奖.教授们认为中本聪适 合诺⻉尔经济学奖.这个问题应该没有异议.
应该如何描述中本聪在经济理论上的贡献?这里抛砖引玉.用中本聪经济 学来描述中本聪的经济理论成就涉及面太多.概括起来很难.作为经济学的特色之一.可以用中本聪加密经济学或密码经济学来描述.
10.1.2 加密经济学的基本内容 加密经济学在比特币中占有一定分量.但不是全部.比特币不是加密经济学的派生.是比特币系统派生了加密经济学.
加密经济学是经济学的一个全新分支.加密经济学是一⻔利用密码学等现 代技术的手段去解决经济问题;用激励博弈等经济手段解决技术问题的学 问.由于加密的存在.大大减少了交易之间的信用.为此中本聪描述了机 器信任.由于太过创新.开创者担心遭遇与当年布鲁诺,伽利略相似的祸 端.而选择了匿名.
它的新奇之处在于.信任是通过机器来完成的. 1. 通过机器程序规则和验证来实现信任过程. 2. 产生博弈.共识胜者取得记账权并获得奖励. 3. 形成信任结果的链式记录.
4. 所有参与信任过程的机器保存信任结果.
5. 任何人都有资格参与.所有人都有资格查看链式记录.
机器信任取代对第三方的信任.俗称是去中心化的信任.换句话说是对传 统金融中介的不信任.人们对于比特币系统的信任就是机器信任.是对于 其底层的技术程序以及算力的信任.包含对底层程序团队和参与计算的算 力团队的信任.相信作恶节点收益小于诚实收益.有了人的参与就有了⻛ 险因子.就有了不同团队和共识方式的差别.就需要有评价标准.总结中 本聪机器信任标准可概括为6条:
1.信任的人越少越好.
2.信任环节越少越好.
3.信任的环节越安全越好.
4.信任经历过的时间越⻓越好.即信用要时间积累.
5.不控制用户数据.
6.账本公开透明不可篡改.
如解释.需要很多文字.读者可以看看WEB3.0无链金融平台白皮书(1). 总之:通过加密经济学机器信任.建立起不作恶或不能作恶的货币发行机制和系统.
10.2 用密码学等技术解决金融问题 下面的解释对应加密经济学定义第一句话:加密经济学是利用密码学等现
代技术的手段去解决经济问题.这里的金融问题是指货币发行.特指比特 币发行.
比特币利用加密技术手段.采用分布式共识的方法.公平地进行资产型货 币的发行.这一切都不要人为的信用背书.注意:比特币不是空气币是资 产币.即使在比特币没有价格的[空气"阶段.开采比特币也是有成本的. 成本是价值转换所必需.说比特币是空气币是完全错误的认知.有这个想 法的人没有搞清楚资产价值和使用价值评价标准的区别.对此我们后面会 详细介绍.
10.2.1 法币超发难题
比特币的发行方法是货币历史上的一个重大创新.比特币的出现.开始终 结在电子时代无资产发行空气币的恶性.法币虽不完全是空气.也是基于 很少的资产.主要靠信用发行.不同国家货币的[空气"程度不同.央行通 过法币机制调控经济.以便维持经济发展.实践证明央行无法用数学的手 段合理调控货币供给.所有的货币理论都无法保证调控效果.围绕信用币 发行产生的各种理论统统无效.几乎成为一切经济危机的源头.中本聪在 创世区块中的一句话[英国财政大臣正在准备第二次救助的边缘".说得很 明白.法币不救助就会崩溃.比特币就是为了解决信用币无信用引起经济 危机的问题.
基于法币的全球货币大规模超发.政府,银行,金融机构具有法定的独占 优势.越来越多的人将法币置换成股票,房地产,⻩金和比特币等避险资 产.投资者,房地产商,与资本离得近的人.在一次次泡沫中占尽优势分 ⻝货币红利.这种资产持有不产生税收.在美国是股票.在中国是房产. 造成法币流通的不平衡.改变这种不平衡的最简单的方法就是超发货币. 超发引起贬值.变相掠夺仅靠劳动获取财富的工薪族.扩大贫富差距.制 造经济危机.引起政府无节制的新超发.以便延缓社会危机的爆发.也造 就了金融企业这个怪胎.成了吞吃社会财富的寄生虫.一个明显的例子 是.根据熊焱2012年的文章:[中国2500家上市公司的利润总和的一半被 16家上市银行收获."(2)这是一个很老的数据.现在的情况更为严重. 金融泡沫化.引发金融动荡.动荡就是机会.投机容易获取财富的观点削 弱了⻓期持有资产和通过劳动获取稳定回报的观点.引起年轻人专职和兼 职进行金融炒作.降低了该人所从事主业的生产效率.减少有效劳动人口 和通货膨胀.进一步引起金融和实体经济的失衡.失衡就要调整.金融市场大幅震荡.加剧了投机获利的机会.所产生的投机利润进一步推高物 价.又产生货币贬值的预期.促使人们迅速地将手上的钱花出去.个人消 费能力是有限的.又会进一步投机.最终影响社会的信仰基石.
区块链有趣的实验.向人们展示了各种空气币的发行状况以及明显的危 害.这种种危害在法币身上都有.法币如果没有资产背书就是空气币.而 空气币是万恶之源.这一点通过人类社会实验室⸺区块链得到充分证 实.亨利福特说过:[如果人⺠一下子顿悟我们现有的银行和货币系统. 那么明天也许就会有一场革命."(3)现有的法币系统只是历史⻓河的一 种临时措施.一定会被替代.
现代货币发行理论是货币发行和经济增⻓相对应.适度的超发有利于经济 增⻓.这个度很难把握.只有靠泡沫破裂产生价值回归.但是价值回归往 往负向超调.迫使控制者再次打方向.又引起新的超调.经济危机周而复 始.适度增发到底是破坏力大还是增⻓力大?作为短期策略可以考虑.作 为⻓期策略一定是错的.对于因素简单的系统.控制容易; 对于因素多的 系统是不确定的.不可控的.所以适度超发的[度".就是不可实现的胡说 八道.不确定系统遵循自然成⻓规律.每一次改变都对未来产生影响.影 响的后果短期是投机效应.⻓期就被融入到自然成⻓中.
12.2.2 用加密技术手段避免法币作恶.实现比特币本位 本文的第12节将详细的介绍如何实现比特币本位.这里是概括性观点.用以说明用技术手段解决经济问题.
比特币的出现.使得现代人类的生产和创造与货币发行.形成自然对应的 可能.也就是回归数字⻩金本位的时代的可能.人人可以发币.无资产不 能发币.应该是未来的共识.
比特币利用软件协议公平的生产和记录不可篡改的货币.挑战政府发币不 受控的问题.让人们看到实现[数字⻩金"本位的可能性.这是经济学的根 本问题.经济学家从米塞斯哈耶克开始只是看到问题.但是没有解决方 案.而中本聪提出了解决方案.可惜诺⻉尔经济学奖没有奖励方案的传统.
比特币利用加密等技术手段创造出比⻩金特性更好的[数字⻩金".比特币 是超主权货币.货币稳定性不会受主权的差异性的影响.后面我们讲述如何实现[数字⻩金"本位.即比特币本位.为解决法币不能解决的经济难题 提供了可能性.
10.3 用经济手段解决自动发币的难题
下面的解释对应定义第二句话:用激励博弈等经济的手段解决技术问题.
比特币用经济的手段即激励和博弈的办法解决技术难题.比如解决了拜占 庭将军问题.该问题提出者是莱斯利兰波特(Leslie Lamport).分布式 系统的先驱和奠基人之一.2013年的图灵奖获得者.而当时对这个问题. 体现最高水平的解决方案是PBFT(实用拜占庭容错Practical Byzantine Fault Tolerance).作者之一是芭芭拉·利斯科夫(Barbara Liskov). 2008年的图灵奖获得者.而PBFT只能在很小的网络中运行.中本聪用了 一个非常简单的办法比肩和超越图灵奖得主们的算法.其实这是最⻓链问 题.如何保证作恶链不超过诚实链.有数学专家证明过中本聪的方法在数 学上不完备.中本聪成功纯属运气.其实中本聪说:[只要诚实节点集体 控制着比任何一组合谋攻击节点更多的CPU算力.系统就是安全的. (4)当作恶的收益小于诚实的收益.人们选择不作恶.数学家没有算出 数学后面的人性.经济学是研究人性的.也是研究选择性的.数学公式中 没有人性.一旦数学公式中出现了人性参数.意味参数不定公式没有意义.
中本聪的13年挖矿证明.考虑激励规则的系统是可以自动运行的.而且更有效率.维持比特币系统核心程序的开发人员不过十多个人.中本聪的比 特币系统除了他本人之外.没有一分钱外部投资.自己当了两年客服.一 个复杂的技术系统一直自动运转.自动系统不稀奇.但是分布式的按规则 自动运行的系统从未有过.这些问题的解决就是经济手段.最终形成的比 特币系统是对所有参与人都公平的系统:公平激励.形成技术不能解决的 自发次序;在机器规则下的自发参与,自动运行,自主治理,自我实现. 这是一个纳什均衡.非合作方博弈是一种纳什均衡方法.但是比特币不是 策略选择型纳什均衡.是概率型纳什均衡.就此一点写出论文就是诺⻉尔 奖的水平.
10.4 加密经济学在比特币系统上所取得的成果 加密经济学解决了什么问题
1.隐私存钱的创新
将密码学公钥私钥技术应用于私人账户的建立.使得人们可以匿名拥有账 户.抗审查.谁也不能随意操纵和冻结你的账户.对应比特币地址账户. 拥有唯一私钥的人.可以控制和动用存放在地址中的资产.在加密货币中 比特币采用UTXO未花账户模式.不采用UTXO账户模式的区块链项目. 都达不到比特币的隐私保护程度.缺点是私钥丢了资产就损失了.这个缺 点是加密货币必改的一大痛点.隐私保护成为Web3的起源.什么是Web3 同样可参考文献(1).
2.财富创造和交换的创新.
比特币的每笔交易既透明又匿名.总账透明.全球用户可自由查看.具体 地址账户是匿名的.一般人无法确定比特币地址账户的归属.比特币让自 己的地址账户里的财产处于不可侵犯,不可冻结和不可追踪的状态.自己 的财富自己掌握.无需银行保管.无需信任第三方.是点对点的交易.并 且没有双重支付.清算和结算一体.是比特币总账设计的创新.
3.需求预期决定比特币价格的创新
比特币的创造过程是竞争性的.需要时间,能源和其他有形成本的投入. 减半周期和线性铸币.产生了明确的缩量预期.同时还有总量限制.⻩金 的开采量是不可预知的.⻩金价格的上升必然导致开采量的加大.从而产 生价格的回落.这是成本和需求共同决定价格的模式.由于比特币是线性 铸币.价格上升不能导致开采量的加大.只能导致算力加大.算力加大导 致稀缺性的进一步上升.算力加大推高挖矿成本.算力成本构成了价格的 护城河.护城河特征驱动护城河需求.形成上升的螺旋.比特币是需求决 定而不是成本决定.这是和⻩金极大的不同.是比特币对标⻩金后的创 新.细想还有什么资产是唯一由需求预期推动的.还有什么资产没有价格 天花板?⻩金,法币,证券都不是.空气币是.但是它不是资产.市场之 上还有一种东⻄具有这个特性.是需求推动并且没有价格顶.和比特币的 特性非常接近.就差了[预期"这个词.那就是经济增⻓.经济增⻓是需求 推动.经济增⻓没有顶.两者多么般配.我脑子不好用.此外再也没有想 出来还有什么具有这种特性?
这里的疑问是为什么是4年减半.为什么是减半而不是其他的缩量办法.
有人说4年减半和美国的大选4年对应.政府运行复杂得多.涉及方方面 面.比特币很简单.就是电脑的换代周期.根据摩尔定律18个月芯片容量 翻倍.两年的更新换代足够了.如果是两年周期并减少铸币量.可能币价 上涨更快.当然中本聪对硬件不太熟.没有想到SAIC矿机的出现.
. 4.通货膨胀的可预测的创新
比特币到2140年成⻓周期结束便不再通胀.成为货币标准秤.成为商品的 标价.比特币的P2P分布式特性与去中心化的设计结构.至少在理论上排 除了任何机构操控比特币供给总量的可能性.在成为商品标价之前.比特 币还要把小数点向右移动几次.
创立货币标准秤对人类的贡献有多大?一定符合诺⻉尔的精神:奖励为人 类做出重大贡献者!
10.5 加密经济学不能概括的比特币系统特色 比特币远比加密经济学内容丰富.部分内容也很有特色.
1.共识是自由不是⺠主比特币不存在多数人暴政⸺即⺠主投票.因为它的设计中不包含任何强 迫.多数人不能强迫少数人.少数人也不能强迫多数人.意⻅不合就造一 个分叉币.无法通过投票要求比特币按照多数意愿去发展.协商一致达成 共识是解决问题的办法.这与货币的本质十分贴切.货币的自然演化是共 识的形成过程.一旦形成不应轻易人为破坏.强人如没有⺠主机制制衡很 容易形成独裁.中本聪通过消失.践行了共识机制.没有领袖.没有央 行.靠自然的演化.这是比特币的一大特色.社区和共识机制应该有新的 关系.应该有制衡关系才对.纯自然演化似乎和自然销售一样.在没有竞 争对手.或竞争对手很弱的情况下都可行.目前没有对手出现.并不意味 未来没有对手.关于⺠主和自由的讨论.是属于技术还是属于经济?似乎 不是加密经济学所能概括的。
什么是比特币节点?它会做什么?
作者:Ted Stevenot
大多数人都知道,比特币没有执法者(ruler),但确实有规则(rules)。这些规则得到维护,对每个持有比特币的人都很重要。但是,没有权威,比特币的这些规则是如何得到执行的呢?答案是,由遍布全世界的许多比特币用户所运行的成千上万个节点所组成的网络来维护。
什么是比特币节点?
比特币节点是一类计算机软件,可以连接到比特币的点对点网络中。节点会根据网络规则来验证、接收和发送新的比特币交易(transaction)。要理解比特币节点会做什么以及它是如何工作的,我们要从理解比特币的两个最根本的部分(账本 和 规则集)开始:
比特币的账本是一个分布式的数据库 —— 你可以把它理解为一张用于会计账本的电子表格。这个账本包含了每一笔比特币自其创生以来的流转记录,以及现在谁持有比特币、持有多少(即哪个地址持有多少比特币)。这个共享的公开账本就是所谓的 “比特币区块链”。
比特币的规则集,是由比特币用户的共识建立、由比特币节点的代码实现的规则集合,它们定义了比特币的具体特性和网络的运行流程。这个规则集决定了如何验证交易和区块,如何检查签名,被花费的比特币是否存在,在前一个区块上正确构建一个新区块需要多少工作量证明,等等。
一般来说,个人电脑和便宜的专用电脑(比如树莓派)就可以运行比特币节点。在更低功耗的硬件(比如智能手机)和远程硬件(比如云服务器)上运行也可以,但一般不推荐这样做。
最流行的比特币节点软件是 Bitcoin Core,你可以免费下载。
比特币软件会做什么?
一笔比特币交易被签名授权后,它就会被广播给网络中的所有节点。收到这笔交易的节点会立即根据规则集来验证它是不是一笔有效的交易,以此决定要不要把它转发给自己知道的其它节点。
节点会追问下面几个问题:
发送者(也即钱包地址)真的拥有 TA 想花费的币吗?
被话费的的币之前有没有被花过(有没有重复花费)?
交易是否有正确的签名授权?
交易构造是否符合比特币当前的规则集?
每一个节点都根据规则集,对每一笔待打包的交易运行独立的验证。这个过程是:
可验证的:任何人都能自己运行一个节点。每个节点都必须验证每一笔交易。
冗余的:网络中的每一个节点都重复相同的工作,从而保证每一笔交易都符合规则集。
安全的:节点比较和验证比特币区块的唯一密码学指纹,从而保护比特币区块链的数据、以往交易的历史,以及钱包地址的余额。
区块在节点间传播和验证的冗余,提高了欺骗任何一个节点和一群节点(让他们接受无效信息)的难度,降低了下列风险:
日蚀攻击(Eclipse attacks):攻击者围绕目标节点建立一个欺骗性的网络环境,来操控该节点,使之采取行动(或者不采取行动)。通过支持连接到许多独立的对等节点,比特币网络限制了一个节点被传入连接欺骗的可能性。
分布式拒绝服务式攻击(Distributed denial of service,DDOS):攻击者用大量的无用流量来冲击某个网络或服务器,以阻止它运行或使之拒绝真实的用户连接。比特币网络的节点广泛分布,而且节点是不依赖于信任、独立验证的,所以想通过 DDOS 来压垮比特币网络是不切实际的。
节点、矿工和待确认交易
理解节点的角色还需要你基本了解比特币挖矿,因为两者是相辅相成的。待确认交易(pending transactions)就是还没有添加在区块链上的交易,需要传播给矿工,由矿工从中挑选出一些,加入到包含待确认交易的区块模板中。
- 比特币交易的传播、验证和确认 -
然后,赢得工作量证明竞赛的矿工会将自己挖出的新区块传播到网络中。即使到这时候,验证的流程也会继续:节点会检查矿工挖出的区块,进一步确认其有效性。矿工在组装交易到区块时,必须验证遵守规则集。要是他们不遵守,节点就会在验证的时候拒绝这样挖出的区块,而挖出该区块的矿工就无法得到该区块的区块奖励(增发的比特币),也无法得到该区块所包含的交易的矿工手续费。
平均每 10 分钟,会有一个新的区块被某个矿工添加到比特币账本中。当新区块被添加到账本中时,它会跟前面的区块产生关联。整体上,这些前后串连的区块就成了所谓的 “区块链”。每当有区块添加到区块链上,整个区块链的体积就增加一些。下一节我们会讲到,比特币区块链的体积增长会增加比特币节点的负担。
全节点:归档节点 vs 剪枝节点
全节点指的是包含完整的区块链规则集、可以独立验证比特币的软件。有两种类型的全节点:归档节点 和 剪枝节点。
归档节点有时也叫 “监听节点”,它是保存了全部历史区块(包含了自中本聪在创世块中挖出第一笔比特币以来的所有比特币的流转事件)的全节点。这些信息会在归档节点本地保存,并在其它节点索要时分享给他们。
归档节点面临的挑战之一是,随着区块链本身的体积增长,下载和存储完整副本的难度或者说成本也会上升,而区块链的体积会随着区块被挖出而持续增加。为帮助控制文件的体积并让节点更亲民,全节点可以搭配比特币账本的 “剪枝” 副本来运行。
剪枝节点就是抛弃某个时间点以前的区块链,并使用较为节省空间的压缩区块来代替这个时间点以前的详细交易历史。
- 来源:比特币白皮书 -
修剪节点并不会限制其独立验证的能力 —— 因为区块之间是有数据关联的,剪枝节点利用这一点就可以保持验证的能力。即使剪枝节点在压缩数据以外没有保留别的数据,它们也被认为是免信任的,因为它们可以从头验证所有区块数据。
剪枝节点中的压缩区块,实际上是这些区块的数据的 “哈希值”(摘要)。因为它们的体积更小,压缩区块减少了运行剪枝节点所需的存储空间。在验证过程中,这些区块摘要也是可以依靠的,因为如果输入的数据与真正的区块不符,其哈希值也会不同,立即就能被检测出来。
剪枝节点的一个缺点在于,它没法向其它全节点分享完整的区块链,也无法在本地检索历史数据(举个例子,这在运行闪电节点时是有必要的)。在有需要时,剪枝节点必须向归档节点请求数据,因为后者才保存了完全的交易历史。
全节点与 “轻钱包” 有何区别?
“轻钱包”,也叫 “瘦客户端”、“轻客户端” 或者 “轻节点”(虽然它并不真的是节点),它没有比特币账本的拷贝,也无法像全节点那样验证交易。
轻钱包依赖于第三方运行的完整的比特币节点来获得区块链数据。这意味着,轻钱包的用户必须信任自己所连接到的节点(以及这个节点背后的实体)。
绝大部分的轻钱包都使用简易支付验证(SPV) —— 一种最先在比特币白皮书中介绍的技术 —— 来最小化验证交易时所需的信任。在验证交易时,SPV 验证区块的摘要(同时也是执行比特币规则集的子集)。但是,SPV 节点并没有消除所有信任因素。如中本聪在白皮书中所说的,“当且仅当诚实节点控制着网络时,SPV 是可以依靠的”。一旦有所疑虑,请运行自己的节点。
轻钱包很常见,也被大多数比特币用户所用。你在使用 BlueWallet、Trezor Suite 乃至 Ledger Live 而不运行自己的节点时,你就是在使用轻钱包。轻钱包将区块链存储和编制索引的负担交给了第三方,这使得轻钱包很容易安装,只需要最小的存储空间和带宽就可以使用,而且同步起来非常快。
轻钱包还面临着隐私上的牺牲,因为一些个人信息,比如 IP 地址、钱包地址和交易历史,都必须分享给第三方。也有一些例外正在开发中,比如为闪电网络设计的 Neutrino 轻钱包,可以实现高度的隐私性。
比特币与矿工有何区别?
比特币节点不等同于比特币矿工。节点只是比特币的信使和规则维护者,而矿工是抄写员。矿工会运行计算密集型的工作量证明算法(而节点不会)。矿工依赖于节点来知晓新的交易,也依赖于节点来传播和验证自己挖出的区块。
因为节点并不参与工作量证明挖矿的过程,他们也并不需要付出比特币矿工那么多的能源和算力。工作量证明是难以计算但易于验证的。虽然节点在验证和转发关于新区块和待确认交易上扮演着关键的角色,他们无力在比特币区块链上增加新交易。
为什么你应该自己运行比特币节点?
在了解这么多关于节点的知识之后,你可能会好奇,我们个人需不需要运行节点呢?其实,运行节点有许多好处,但也有一些成本。你要自己衡量其优点和缺点,自己决定是否要运行节点。
个人利益:隐私性和独立验证
运行自己的节点可以帮助你提高隐私性。有了节点,你就可以重播和验证自己的比特币交易,还可以搜索区块链上的信息,不必假手于他人。而且,你可以直接验证和确认自己的钱包收到的任何比特币交易。
当你要使用第三方的服务来完成这些操作时,你的 IP 地址会暴露,也许攻击者可以定位你的地理位置、将你的个人信息与你的交易历史关联起来、找出关于你的更多信息以及跟你交易的人。运行你自己的节点,这样暴露的风险就小了很多。
运行节点也会提高你对计算机、比特币和比特币区块链的了解。这些知识和经验可以帮助你提高从比特币中得到的效用,并让你可以帮助其他人。
运行节点可以支持比特币网络
运行你自己的节点可以帮助转发和验证交易和区块,这也是帮助比特币网络保持更新、良好运行。如果你运行了全节点,你可以分享 “初次区块同步(initial block download)” 所需的信息;新节点要借助初次区块同步来下载区块链以及验证网络的当前状态。这就是在帮助比特币网络。
此外,因为运行节点会存储区块链并执行比特币的规则集,你就帮助了比特币网络的去中心化。
这也会帮助你保护你在比特币上的投资,因为你参与到了比特币规则集的共识过程。运行了节点,你就参与到了决定哪个升级(比如 Taproot 和 covenants)可以部署到网络的过程中。你的节点持续执行比特币的规则集,也可以帮助维护比特币的独特属性,比如比特币的 2100 万 BTC 供给量上限。
运行节点的(小)成本
在大多数情况下,运行节点的总开销都是很小的,但可以分为如下几类:
硬件:你在旧笔记本和便宜的计算机(比如树莓派,还不到 150 美元)上就可以运行比特币软件。但是,请记住,低功耗的硬件的初次同步时间可能会比较长,而且不足以应付性能需求更高的任务(比如运行 Electrum 服务器)。如果你在自己的家用电脑上运行比特币节点,你需要让机器全天候开机,有时候会有点麻烦,因为 Bitcoin Core 软件可能很影响你的电脑的运行。许多比特币用户都喜欢在一台专门的机器(比如树莓派)上运行节点。
存储:如果你计划在自己的全节点中存储整条区块链,你需要至少 500 GB 的硬盘;不过,如果你运行剪枝节点,存储负担就会小很多。更推荐你使用固态硬盘(SSD)来避免同步问题。
功耗:虽然不需要负担像比特币矿机那样的功耗,但运行节点也要花一些电力 —— 你的节点最好能24/7 常态运行(译者注:树莓派的功耗在 15 W)。
互联网带宽:按默认设置运行比特币节点可能会消耗许多带宽 —— 最高可达每个月几百 GB。不过,你可以在比特币节点应用中调整带宽设置,来约束带宽开销。
(完)
更多有用的资源,来自 Unchained Capital
虽然 Unchained Capital 的客户端使用 SPV 轻钱包模式,你在使用 Caravan(我们的开源金库恢复工具)时也可以直接连接到你自己的节点。要获得关于 Caravan 的最新使用提示,请关注我们的 YouTube 频道。
你也可以登录我们的在线讨论会,了解如何如何使用 Unchained IRA 来控制你的私钥同时获得税收优惠、如何使用 Unchained 多签名金库来自主保管比特币同时消除单点故障。
比特币的过去、现在和未来(五):比特币的现状(2)
4 月 12 日,另一件大事发生了:We are Hodlonauts(我们都是 Hodlonauts)。Hodlonaut 因为闪电火炬而变得非常著名,他在推特上的粉丝数量超过了 1 万,然后,他开始使用自己的影响力警告人们 Craig Wright(克雷格·怀特)的可疑,因此,他收到了克雷格·怀特的威胁信。他是匿名的,但 Calvin Ayre(卡尔文·艾尔)(克雷格·怀特背后的金主)在产出的出版物 CoinKeeg 中悬赏 5000 美金(以 BSV 支付)揭开 Hodlonaut 的真实身份(BSV 是一种分叉自 Bitcoin Cash 的垃圾币,译者注 )。有人获知 Hodlonaut 可能住在奥斯陆,于是就给 Hodlonaut 的雇主打电话,假装成挪威警察,要调查这个推特账户。这位雇主真的相信了他是一名警察,因此公开了 Hodlonaut 的全名和地址;然后,克雷格的起诉书就送到了 Hodlonaut 的家里,起诉理由是诽谤。
这件事引发了一场壮观的运动:每个人都在自己的个人简介页添加了 Hodlonaut 的图片,并把卡通人物的头都放进 Hodlonaut 的头盔里面。
- 推特上充斥着给 Hodlonaut 的声援 -
克雷格·怀特诉 Hodlonaut 案在 2022 年 10 月结案,Hodlonaut 胜诉。
视频:https://youtu.be/KniTdm-qKpY
2022 年 12 月 23 日,Hodlonaut 在推特上披露克雷格已经请求上诉(并且已被接受):
“我刚刚知道挪威法庭接受了克雷格的上诉。我将不得不重头再来一遍。我当然不会认输。”
—— hodlonaut 13%er 🌮⚡🔑 🐝 (@hodlonaut)
2019 年 5 月 1 日,Nicolas Dorier(尼古拉斯·多里亚)提出了 BIP 78 – A Simple Payjoin Proposal(简单的双向支付提议) ;Payjoin 是一种类型的 Coinjoin(多人为同一笔交易添加输入),只不过在执行 Coinjoin 的同时你也完成了一笔支付。具体来说,Payjoin 交易有两个输入,一个来自支付方,一个来自接收方。也就是说,资金不是由支付方直接发给接收方的,而是(相当于)双方都把资金给了某个 “中间” 地址,然后双方再各自把资金从 “中间地址”(混合过的资金)中取出。这样一来,外部的观察者就不知道谁是发送者,谁是接收者了,因为他们的资金混合过了。
几天以后,2019 年 5 月 8 日,第一个可能成真(因此让人担忧)的为了保护私人利益而回滚比特币的提议出现了。具体来说,币安交易所被黑了,其 CEO 赵长鹏宣布他会给矿工付钱,让发生盗窃的链变成孤儿链;他希望拿回这些资金,并说服矿工挖掘另一条链。这没有给比特币链制造无效的状态,产生重组也没有违反规则;但仅仅是为了挽回币安的安全性问题所造成的损失就发动重组,也是非常有争议的。最后,重组并没有发生。
- “资金是安全的!” -
再说回链上隐私。8 月 2 日,CoinJoin 实现之间的战争开始了。CoinJoin 就是多方为同一笔交易提供输入;一开始,中本聪在他的白皮书里说,当一笔交易有多个输入时,很明显这些输入都属于同一个人,这是链上隐私的局限性 —— 有些线索必然暴露;但实际上,几年以后,格里高利·麦克斯韦尔在 bitcointalk 论坛上写了一篇帖子,指出交易的输入并不必然来自同一个人。你需要做的只是实现一个足够好的钱包(让多个人为同一笔交易提供输入)。格里高利,theymos(德默斯)和其他人提供了 15 BTC 作为奖金,悬赏开发这样的钱包,但这个原型迟迟没有出现,直到 nopara 推出了 zerolink,它采用了 David Chaum(大卫·乔姆)最初的 e-cash 的理念,并放在 CoinJoin 的语境中,从而让协调员失明;就像在 e-cash 中,协调员靠着盲签名,在不知道自己签名了什么东西的情况下防止了重复花费,CoinJoin 的协调员也失明了。CoinJoin 在 Wasabi 钱包、Whirpool 钱包和 Samorai 钱包中都实现了。
8 月 2 日,Dojo 推出,这是一种 Bitcoin Core 的从属应用,跟 Bitcoin Core 一起运行,用来跟 Samourai 钱包 沟通。Dojo 是必要的,因为在此之前,在使用 Samourai 和 Whirpool 之时,CoinJoin 期间的服务器是通过大卫·乔姆密码学致盲的,但 Samorai 是一种手机钱包,而且所有的公钥都需要进入和退出 Coinjoin。这种批评因为 Dojo 的推出而部分得到缓解,因为,如果少数用户使用了 Dojo,而许多用户 “正常” 使用 Samourai,结果就是,如果一个使用 Dojo 的人跟许多使用 Samourai 的人进入了一笔 CoinJoin 交易,那么你的公钥是哪个将一目了然,因为只有你的哪一个是不可追踪的,别人的都是可以追踪的。
这件事具有历史意义,因为随着 Dojo 的推出,Luke Dashjr(卢克·达实)和格里高利·麦克斯韦尔的批评开始了,他们警告这个实现不好,建议不要使用。其他许多开发者加入了进来,随之而来的是一场没有边际的、无关技术的 文化/道德 战争。
2019 年 12 月 3 日,Bitfinex 成为第一个集成闪电网络的交易所。
2019 年 12 月 12 日,第一种 “第二代” 闪电钱包 Phoenix 发布,这种实验性的钱包的理念是这样的:“当每个人都在使用比特币、小额资金无法在链上结算(也就是普通支付将使用 Layer2 或其它形式的链下技术)时,你使用一个复杂的、要分别管理链上和链下两种余额的钱包,有什么意义?”
因此,分别展示两种余额(链上的、所有闪电通道中的)也没有意义。但也不是要展示每一条通道的余额,只是抽象地表示出来。就像在浏览网页时,我们不会想要看到每一个 TCP 连接,如果真的需要,我们会手动打开浏览器的高级选项,但在日常使用中,浏览器作了一次抽象,来隐藏这些复杂性。
这种简洁性意味着许多的妥协和取舍:
从隐私的角度看,如果你在使用 Phoenix 时不使用洋葱网络,那么别人可以看到你的 IP 地址,并观察你的所有公开通道;
当某人通过链上交易(潜水艇互换)给我支付时,代价可能很高;
它可以出借流动性给你,但价格非常高。
2019 年 12 月 27 日,Facebook 公司推出的密码货币实验 Libra 以失败、关门告终。各种各样的记者找上最著名的比特币人,要求他们评论此事:他们直接以早期的 PayPal 和 Linden Dollar 的例子回应。
2020 年 1 月 6 日,一个将在 2022 年变成一场大戏的提议出现了:Jeremy Rubin 的 BIP 119 - CHECKTEMPLATEVERIFY,但在当时,它乏人问津。这是一种 限制条款(covenant):在当前的比特币上,如果我可以花一笔钱,我就可以把它发到任何地方去。我创建一个满足花费条件的脚本,它会放在输入里面,然后这个输出就被花费掉了;此时我创建一个输入,使用完全不同的花费条件 —— 我先满足 A 条件,然后才能创造 B 条件。花费条件 B 无法做到:只有你创建的输出(条件 C)满足某一些条件时,你才能满足我这个花费条件。你是做不到让一笔资金只有在交易的输出满足预定义的条件时才能花费的。(而限制条款就是开启这种特性的技术。)
2020 年 1 月 19 日,Pieter Wuille(皮耶特·乌勒)、Jonas Nick(乔纳斯·尼克)和 Anthony Towns(安东尼·唐斯)提出了 BIP 341 – Taproot: SegWit version 1 spending rules 。两个月后,3 月 16 日,新型冠状病毒 COVID-19 大流行爆发,封锁和隔离也开始了,经济活动面临普遍衰退,连比特币也大跌了。
5 月 11 日,在半个地球处在封锁管制之中的时候,比特币增发速度的第三次减半到来。6 月 9 号,又出现了一场闹剧,是关于 “blacklist(黑名单)” 的。比特币软件可以按照 IP 屏蔽滥发消息的、不值得信任的或者经常搞破坏的对等节点。实际上,这就是我们说的 “黑名单”,但在美国文化中,从 2020 年开始,就有一种攻击软件项目的风气,说 “blacklist”、“whitelist(白名单)”、“Master(常被用作软件开发的主分支的命名)” 这样的词语会让人联想到奴隶制,因此应该使用别的词语。2020 年 6 月 9 日,一个路人用户(没有别的贡献)在 Bitcoin Core 代码库里发起了一项 Pull Request,要把 blacklist 这个种族主义用词替换成 blocklist。除了是一个有点搞笑的事件,它也是一个技术问题,因为在比特币软件中,这个词的含义是非常模糊的。这个 PR 被 Marco Falke(马尔科·法尔克)不经讨论立即投入了生产环境中,因为他希望避免 “混乱”,而且显然如果他拒绝这个 PR,就会吸引那些指控他是种族主义者的人。所以,他出于自己的意愿,就把这个 PR 合并到了生产环境中。Bitcoin Core 在生产环境中合并了一个荒谬的请求,这激怒了许多开发者,他们指出 Bitcoin Core 不是过家家,不是人们搞政治宣传的地方,它是一个至关重要的软件,你不能不经过社区的同意就把一个请求合并到生产环境中。状况升级到 John Newbery(约翰·纽伯瑞)不仅开始为这个举动辩护(“为了包容性”),甚至拉黑了一位曾经给 BTCPay Server 代码库提交代码的贡献者。这个影响是非常负面的,而且引发了一个持续至今的问题。开发者的角色改变了,而且一直在变化:在区块体积大战中,开发者是 “守土英雄”;但如今我们可以看到,同样一些人,难以对抗开始影响社会的民粹主义(populusmo) 。新一波的开发者屈服于这种清教徒式的傲慢,而且被赶出项目的恐惧变得越来越强烈,尽管这样的事情明明跟管理代码和创建软件的能力没什么关系。这跟 90 年代和 20 世纪初期的文化形成了鲜明的反差,那是一个 “别烦我(no bullshit)” 的年代,穿着奇装异服、放肆无礼和玩世不恭才是常态。
Richard Stallman(理查德·斯托曼)被逐出了他自己创建的基金会 —— Free Software Foundation(自由软件基金会,FSF),因为他的一些言论和行为被认为不合适、对软件自由事业有害。具体来说,斯托曼被指控发表性别歧视言论以及提议对遭到性侵的受害者采取不当行为。FSF 决定开除他的主席职位,以保护组织的体面、确保他推动软件自由事业的努力不会因为不当言行而被破坏。
- “自由是指言论自由,不是指免费啤酒。” -
2020 年 9 月 3 日,由芝加哥期货开启的金融化浪潮仍在持续。11 月 30 日,比特币的法币汇率突破前高;对美元的汇率突破了 19850,因此我们正式进入了牛市。
(未完)
比特币的过去、现在和未来(六):现在与未来
本文为《比特币的过去、现在和未来》译本的最后一篇。前篇见此处。
现在与未来
Taproot 锁定以及二氧化碳寓言
终于讲到现在了。出于便利,我们就从 2021 年开始。
2021 年初,Elon Musk(伊隆·马斯克)这个小可爱就宣布从 2 月 8 号开始,特斯拉公司将储备一些比特币;这是在封锁结束之后的宏观局势中,对美元和其它法币表达的不信任。到 3 月 24 日,特斯拉公司直接接受了比特币作为支付手段。
马斯克依赖于 BTCPay Server,与之建立了良好的或伙伴关系,这也引发了比特币价格的一波上涨。所有这些炒作和权力都在人们意料之外,是基于马斯克这样的名人的态度转变的。名人效应非常让人意外,人们的热情也直冲云霄,全部都是价格上涨的有利条件。
2 月 12 日,一位用户在推特上创建了一个 “#LaserRayUntil100K” 活动,字面意思就是,在比特币的价格到达 10 万美元之前,一直使用带有镭射眼的头像;然后每个人都在推特上使用带有镭射眼的照片。
- Micheal Saylor(迈克尔·塞勒)的镭射眼 -
3 月 6 日,taproot 的激活历程开始了;此前虽然已经有了 BIP 341,但并没有出现任何实际的激活提议。讨论很多,但都不是关于 taproot 本身的,因为不论技术上还是政治上都没有争议(不像隔离见证)。Taproot 对所有人都是好事。真正的辩论时关于如何在生产环境中激活的;人们讨论了两种方向:
BIP 8 – Version bits with lock-in by height(按高度锁定的信号位激活机制):“我们给矿工一些时间,让他们在准备好之后告诉我们;但即使他们没有准备好,我们依然会执行这次软分叉”;
BIP 9 – Version bits with timeout and delay(带有超时和推迟机制的信号位激活):“我们给矿工一些时间,他们在准备好之后就可以告诉我们;如果他们没有准备好,那这次软分叉就算失败”。
分歧带来了一个问题:想要保守一些,BIP 9 方法肯定是更好的,但另一方面,一些向来非常保守的开发者(例如 Luke Dashjr)又坚持,这种 “保守” 方法让矿工可以掀起政治活动,让软分叉的预备机制变成一种政治投票机制。
最终,一种令人难以置信的提议出现了,并且它因为 Bitcoin Core 的开发活动而拥有了巨大的推动力,但实际上所有人都不高兴。这就是叫做 Speedy Trial(速战速决) 的提议,它允许先使用 BIP 9 这样的机制,但不会给矿工一年的时间,最多只会给一个月。也就是说它给出了在尝试、失败之后也许还能再发起 BIP 8 的余地。
“速战速决” 提议出现之后,所有 BIP 8 阵营的人都不满意,因为不论如何它还是给了矿工权力;但保守的 BIP 9 阵营又认为这种激活方式太危险,因为时间窗口非常短。
Bitcoin Core 维护者们的普遍感觉是,就没有什么具体的措施,虽然 taproot 已经被讨论了很久了,但没有人出来做任何事情。然后 “速战速决” 就被部署到了生产环境中,而且还有一个用户可以操作的标签,可以把 “速战速决” 变成 BIP 8,在窗口期结束后就直接激活。
从技术的角度看,每个人都会对 taproot 的到来感到高兴;但从方法的角度看,很多人都感到失望,因为这看起来就跟垃圾币上的情况一样:开发者觉得某个东西足够好了,其他人就必须接受。
6 月 12 日,Taproot 正式进入了生产环境。
2021 年 5 月 5 日,一家上市的矿业公司 Bitcoin Marathon 挖出了一个区块,并在其 coinbase 交易中写道 “这是一条 OFAC 合规的区块链”(OFAC 是一个金融特别工作组,工作内容是在全球市场中消灭被认为 “有害和肮脏” 的交易以及任何妨碍政治制度的东西)。我们不知道一条区块链变成 “OFAC 合规的” 是什么意思,但一边倒的抗议马上就爆发了,比特币人开始制作 CoinJoin 交易、让居住在伊朗的朋友将资金转发到 Marathon 的 coinbase 地址里。基本上,Marathon 被混洗过的货币和来自 “不合规地址” 中的 “自由货币” 给淹没了。
5 月 19 日,对那些把一切都押在马斯克身上、把他当成比特币吉祥物的人来说,灾难降临了;特斯拉公司宣称:
“我们做错了。我们发现比特币会产生二氧化碳,并导致全球变暖,因此我们不再接受比特币了。”
—— 特斯拉
显然,这种说法没有任何道理,他们还提出了每一笔比特币交易的能源消耗量:这个指标没有任何道理,因为比特币交易不消耗能量,最多你只能以区块为单位,估计挖矿所消耗的能量,但进一步推导到每一笔交易的能量消耗就没有任何意义。不然你要干什么?因为特斯拉的电车要耗电,就让特斯拉关门吗?
特斯拉的声明是完全错的,但奇怪的是,特斯拉公司并没有卖出自己储备的比特币,只是不再接受比特币支付而已。关于这样做的动机,人们有几种猜想。最流行的一种(没有证据,只是联想)是,一些人提到,自特斯拉在 2 月 8 日宣布接受比特币支付依赖,许多人都用比特币购买了特斯拉,但在美国,如果你出售比特币来换取法币,你需要支付资本利得税,除非你拿去买东西,那就不需要支付资本利得税。所以,许多人通过拿比特币购买特斯拉(免税),再把特斯拉卖成美元,就躲避了资本利得税。
上面的环保注意什么可能进一步掩盖了这种没有证据的猜想。同样的,矿工并不必然会产生二氧化碳,因为挖矿是用电的 …… 然后有人可能会说:“那电力是燃烧化石燃料产生的呀,因此也会释放二氧化碳到大气中。”。那行啊,特斯拉的电池是不产生二氧化碳(目的是为了停止使用内燃机),你的电池不是也要用电吗,电不是也要从什么地方来吗?特斯拉要扮演环保主义者、说比特币不环保,怎么着都让人汗颜。
禁令、战争和限制条款
2021 年 5 月 21 日,另一份禁令在中国下达 —— 从 2014 年以来,中国一直在毫不动摇地封锁比特币。所有矿工都不得不停止在中国大陆挖矿。有趣的事实是,中国境内的哈希率有 30% 是地下的,这是以往的禁令失败的绝佳证据。另一个有趣的事实是,价格并没有因为禁令而改变(再次为马斯克感到尴尬)。
2021 年 5 月 31 日,Marathon 的 CEO Fred Thiel(弗莱德·泰尔)在一段视频中露脸,宣布他们会拥抱比特币社区的原则,根据协议确认一切有效的比特币交易。不会有黑名单,而且他们会支持 taproot。
6 月 5 日,在迈阿密的比特币大会上,Jack Mallers(杰克·迈勒斯)(非常激动地,哭着)宣布萨尔瓦多将接受比特币作为法定货币:
视频:https://youtu.be/_59hrgTiRJU
几天以后,这项法律在萨尔瓦多接受投票,而且发生了一些微妙的事情:萨尔瓦多的总统 Nayib Bukele(纳伊布·布克勒)开设了 一个 twitter space(语音聊天室),跟比特币人平等交谈,而且制作了标准的推特表情包。显然,布克勒这是在自己家里,因为他在聊到一半的时候道歉说自己要去投票了。这项法律得到了大量赞成票,因此通过了:
“所有萨尔瓦多的公民都有义务,在接受支付时接受比特币,只要客户希望以比特币支付”。这在许多人心中产生了矛盾,一方面,比特币能被用于支付当然是好事,但另一方面,如果某个商家不愿意接受比特币,就会遭到警方的强迫,那在伦理上就不是好事了。
如果商家面临技术上的困难因此无法接受比特币,则可免除这种义务;
国家将会为所有商家提供基础设施,让他们可以实时交换比特币和美元,而且不必支付手续费。
这是一种可以容忍的法定货币,因为它不是由国家强加的。9 月 7 号,萨尔瓦多实行比特币法。
- 纳伊布·布克勒的漫画 -
2021 年 11 月,Adopting Bitcoin 大会在萨尔瓦多举行,在此期间,taproot —— 已经在 6 月锁定 —— 激活了。
现在是 2022 年。
2 月 24 日,俄罗斯军队入侵了乌克兰;许多年轻人决定逃离乌克兰;虽然乌克兰被入侵了、不是侵略者,但它毕竟是个民族国家,具备民族国家的所有特点,因此国家立即动员起来,阻止年轻人离开祖国。
许多人认为自己有一些事情比向素未谋面的人开枪更重要,所以依然决定逃离。一个乌克兰人在银行账户和 ATM 被冻结、无法携带现金离开祖国的情况下,拿着比特币成功逃离;他的故事在互联网上传开了。
不仅有人逃离乌克兰,也有人逃离俄罗斯,因为俄罗斯也有一样的全民动员。随着这些故事的传播,比特币回到了聚光灯下,此外,乌克兰政府还发起了一项密码货币募捐(比特币和垃圾币来者不拒)来支援军队,这项募捐活动也非常成功。
4 月 19 日,又发生了一场戏剧。Jeremy Rubin(杰里米·鲁宾)(不是一个特别受欢迎的开发者,曾跟 Mike Hearn 一起提出在比特币中增加黑名单)在两年前提出了著名的 限制条款 技术(可以限制花费交易的输出的花费条件)的一个非常全面的版本:BIP 119 – CHECKTEMPLATEVERIFY。杰里米突然发表了一篇博客文章(用 Gavin Andresen 的口气)宣布,关于 BIP119 的讨论已经太多了,但没有人表明立场。
他转而提议也为这个 BIP 来一次 “速战速决”。在 taproot 升级之后,一些人依然对 “速战速决” 耿耿于怀,因为他们认为,即使是 taproot 这样技术上没有争议的提议,使用这种升级方法也会带来负面效果,会激励每个人都使用速战速决来提议任何东西。
还有一些人因为杰里米曾经提议过黑名单而害怕限制条款,而有些人单纯时不喜欢杰里米,因为他使用了嘉文一样的不可一世的语气,用一篇文章就把所有人打死。当有一些人表示,限制条款是个好东西,但谁会认为它比 CISA(跨输入的签名聚合)、APO(eltoo 背后的技术)更重要?
这似乎变成了一场在推特和各种邮件组中上演的、伴有各种尖锐反应的闹剧。最后,在 5 月 2 日的时候,杰里米发表一篇文章,并在消息中宣布,他会等待社区的共识解决这个问题,等到他等不下去的时候,他会改变想法,为以太坊工作(嗯,你去吧)。
6 月 28 日的时候,另一波反比特币神教浪潮到来,这一次是由 Nic Carter(尼克·卡特)发起的。尼克有一个著名的身份是 Castle Islang Ventures 的联合创始人之一,这家风险资本专注于投资区块链项目。意思是,这家风投公司也投资垃圾币和模棱两可的共识,比如尼克投资了做链上活动分析的,和在以太坊上实现自动化 KYC 的。
不久之后,尼克就会参与一档倾向以太坊的播客,夸奖以太坊的诸多优点和历数比特币人的不是。接下来就出现了四十几篇文章的群舞,主题一模一样,都是比特神教的死亡。这些文章中,最主要的概念就是(用各种各样的方式)把比特神教跟 plan B 提出的 “存量流量比” 价格预测模型联系起来(这个模型预测了 15 万美元的高点;许多神教教徒都同意这个预测)。实际上,许多人都嘲笑基于这种模型的价格预测,因为显然,市场价格是永远不可预测的。不然的话,不就等于天降油炒饭了吗。
在这个长篇故事中,最后一件事情不是关于比特币的,而是一种垃圾币 Tornado Cash,其 创始人/开发者 Alexey Pertsev(阿列克西·佩德采夫)被当局逮捕了。这个事件非常热门,因为首先,最大问题的垃圾币是以太坊,以太坊已经完全被审查了,其 51% 的出块者都表示服从 OFAC 的监管。但最令人震惊的是一位开源软件的开发者被逮捕了,他不像 Ross Ubrich(罗斯·乌布里希)是一个中心化的网站的主管、一位商人;也不像 Assange(阿桑奇)是一个组织的头头,他完全就是个开发者,人们以为他是受到保护的。但事实并不如此,而且,不幸的是,冲突往往都会加剧。
新的技术和固化
CISA(跨输入的签名聚合):我们已经说过,Schnorr 签名优于 ECDSA 的地方在于其可聚合性,即,如果 Alice 和 Bob 用自己的私钥签名了同一条消息,那么这两个签名的和将正好等于 Alice 和 Bob 的公钥之和的签名。这个方式已经存在于 taproot 中,我们可以制作出一个公钥,需要 Alice 和 Bob 两方的签名才能生成该公钥的签名。这种聚合是在单个输入的内部发生的,需要花费一笔这样的资金时,Alice 和 Bob 的签名就要聚合,然后只发布最终聚合而成的签名。
但是,如果也能聚合不同输入的签名,是不是更好呢?
一笔交易的多个签名都是签名的整个交易,为什么我们非得一个一个输入这样验证签名?我们可以将所有输入中的所有公钥的签名汇总成一个签名。这样做的好处很明显:节约时间链上的空间;让基本的 CoinJoin 交易在提高隐私性的同时费用更低(如无 CISA,CoinJoin 的手续费将比普通交易更贵,因为你在链上写入了更多东西,而且必须跟更多人协调;有了 CISA,假设 Alice 要支付一个输入和一个输出的手续费,她要独自支付一个签名的手续费;但 Alice 和 Bob 一起也只需要支付一个签名的手续费,这样签名的手续费就会在两人之间平坦)。
真正的大问题在于,隔离见证是通过给签名数据的手续费打折来实现区块扩大的,所以 CISA 带来的手续费缩减已经很少了(签名数据的手续费本身就只有同体积的交易元数据的 1/4)。CISA 和隔离见证折扣不是好朋友。
解决这个问题的办法之一是取消隔离见证的折扣,并引入 CISA,这样使用 CISA 的 6 个参与者就能获得跟隔离见证一样幅度的手续费减免(至少要有 4 个参与者,因为有一些开销是省不下来的);而且,从架构的角度看,CISA 也比隔离见证折扣要干净清爽很多(隔离见证的折扣实在丑陋)。
但也有开发者反对 CISA 的想法,不过,这是因为他们已经对比特币基本技术的固化做好了准备:
“或迟或早,我们将不得不止步。CISA 确实是个好想法,但我们要走到哪里去呢?CISA 实现之后我们又会找出另一个好想法,但固化对于基础协议来说是必要的。稳定性比优雅更重要。就像 TCP/IP 协议自 1981 年至今的变化一样,只有顶层的协议改变了。”
—— John Carvalho(约翰·卡瓦略)
Simplicity(已经在 Liquid 侧链上部署):这是一种非常高级的比特币通用编程语言,在此基础上你几乎可以做任何你想做的事,包括重构几乎每一种你能想到的软分叉,然后将这种软分叉变成脚本定义的一部分(而不是变成共识规则)。节点在运行一段 Simplicity 脚本之前就可以知道需要投入多少计算资源以及它将耗费多少时间,所以它跟 Script 是显然不同的,因为它非常通用。Simplicity 是 Blockstream 公司创造的,而 Adam Back(亚当·贝克)声称:
“Simplicity 是一种可以带来固化的软分叉,因为一旦它作为软分叉部署了,你就不再需要任何软分叉,所有需要的东西都可以用 Simplicity 复制出来。”
—— 亚当·贝克
APO(ANYPREVOUT):一开始 APO 是由 eltoo 论文提出的,叫做 SIGHASH_NOINPUT,而且有些地方很像限制条款。基本上,它的作用就是让签名可以用来花费输出,但不指定要花费哪个输出,你只需签名并确定可被花费的 UTXO 的脚本需要满足的一些条件即可。这种技术很有趣,它可以支持一种叫做 eltoo 的闪电通道建构方案,比目前在用的方案更优雅,因为不仅备份数据更加简单,而且可以同时跟 N 个人共享通道。APO 是完整的,而且有详细描述了(CISA 还没有)。它缺少的只是推动它的支持者,因为 Christian Decker(克里斯蒂安·德克尔)不想被看成不惜一切代价也要推动一次软分叉的人。
结论
我就在此处停笔了。
后面可能会有适当的更新,但此时我想先谢谢你,谢谢你跟我一起走了这么远的路,这意味你拥有的不只是一点点的耐心。
想给我留言的话,请不要客气,直接在 telegram 找我;或者你也可以在推特上找我!
(完)
《比特币特辑》比特币终极考验:帝国反击战,政府能阻止或摧毁比特币么?(1)
翻译:不懂经也叔
最近之所以集中更新跟比特币有关的文章,不是推荐买币。主要原因有两个,一是比特币是数字科技的集中体现,二是它前所未有地揭露了货币的本质,挑战了现有的货币体系。
这两点,在这个日益动荡的时代,对我们每个人的未来都会产生巨大的影响。而抱着残留的一点理想主义情怀,我特别期待看到比特币和法币体系展开正面交锋的那一天,希望不会太远。
今次翻译的两篇文章,主要解释一个问题,就是政府能否摧毁比特币。加上之前发的两篇,分别是《区块链人》及《比特币能取代法币么》,可以合称为“比特币三部曲”。看完这三篇,对比特币及金钱的未来,应该会有一个远超常人的认知。
一、比特币的大考:帝国反击战来了
革命型心智模式的缺陷之一,是倾向于过度自信。对新思想的绝对信念,与早期几场胜利的结合,就会产生一种荒唐的自大。这导致那些自称的革命者,低估抵达最终胜利所面对的挑战。
为什么这么说呢?
因为那些早期的成功,往往发生在几乎没有人关注的时候。一旦认识到威胁,帝国通常会有针对性地进行反击,革命之路就不再那么平坦了,结果也难以确定。
这样的例子,历史上比比皆是。从20世纪的政治——纳粹和亢谬主义,在不同的时期,都以为他们已经把世界统治权收入囊中;到投资——20世纪90年代的互联网公司,相信他们将永远繁荣下去,直到在自己的狂妄之下崩溃;还有2006年的炒房者,认为他们可以建立房地产帝国。
这让我们想到了比特币。它早期的成功是惊人的…
比特币的粉丝们坚信,他们追求的事业是伟大而正确的,技术是领先而优越的,这将使比特币在几年内成为世界储备货币。
再见了法币和腐败的央行,欢迎来到由区块链主导的、无摩擦、无通胀的世界。
前景确实诱人。但是,如果假设从此一帆风顺,就忽略了一个事实,那就是当今的金融贵族们,不会交出“上帝赋予”他们的、凭空创造货币的权力,乖乖地退出历史舞台。而当帝国最终反击的时候,它是拥有重型武器的。
近期,多国政府纷纷抛出将来关闭或者推出加密货币的论点,测试各界的反应。
1月份,欧洲央行主席克里斯蒂娜·拉加德说,“投机性”的比特币需要全球监管,她在接受路透社的采访时表示,“高度投机性的资产”导致了“一系列应该受到谴责的活动”,包括洗钱,而任何漏洞都需要被堵住。
“必须要有监管,必须在全球范围内达成一致并实施”。她还希望在五年内,推出数字欧元。
2月,美国财政部长珍妮特-耶伦也发表了看法。她说,
“我认为比特币不会被广泛用作交易机制……在可使用的范围内,我担心它经常被用于非法融资。这是一种极度低效的交易方式,处理这些交易所消耗的能量是惊人的……它是一种高度投机性的资产,人们应该意识到它可能会剧烈波动,我确实担心投资者可能遭受的潜在损失。”
而印度刚刚宣布了一项对加密货币的潜在禁令,这是一个明显的概念验证性政策测试,如果成功,可能会被主要的央行复制。
印度一位高级官员表示,交易甚至持有比特币等数字资产将被视为犯罪。这项措施将给予加密货币持有者六个月的时间,清空他们的账户;之后,将对持有、发行、挖矿、交易和转移加密资产的行为进行处罚。
各个政府机构都在考虑制造另一种数字货币的想法,希望它能向那些没有机会使用的人开放全球支付系统。这一切的目的不过是:
1) 将凭空创造货币的权力,牢牢掌握在政府手中;
2)征用区块链、数字货币技术,并将其转化为政府控制储蓄者、消费者和投资者的工具。例如,即将推出的数字人民币。
这些现象并非偶然,而是一个协调的铺垫。针对加密货币的行动,只是各国引入数字法币、并最终形成由IMF或其他货币财团操纵的数字全球货币的前奏。
如果问比特币的粉丝,怎么看待这种风险;他们中很多人可能会嘲笑,这只是可悲的政府在逆历史潮流而动,比特币不可阻挡。但在非革命者看来,这恐怕过于乐观了。
不过,革命,尤其是科技领域的革命,确实通常都会取得成功。电力取代了鲸油,数码相机取代了胶片,在线零售商取代了书店等等。区块链可能会对银行做同样的事情,包括中央银行和商业银行。
但政府不是相机制造商或捕鲸者。这场革命发生在一个更大的舞台上,参与者更加凶险。所以,最终鹿死谁手,难以预言。任何人如果否认这一点,就只是拿着金融或者哲学书籍,纸上谈兵。
二、终极之战:政府能够阻止或摧毁比特币么?
自从12年前诞生以来,比特币就一直处于不败之地。其价格从5美元到50美元,再从500美元到5000美元,再到现在超过5万美元,扶摇直上;全球用户数量已经突破1亿。
系统的网络安全、开发者数量、衍生应用都达到了历史最高水平。包括特斯拉和Square在内的数十家公司,已经开始将比特币纳入到他们的企业金库中。
这种全球性的巨大成功,并不代表比特币的发展一帆风顺,没有遭到任何阻碍。事实上,这个数字货币是在各种攻击中幸存下来的,其中某些攻击严重威胁到了它的存续。
这些攻击集中在两个主要的载体:对软件和硬件基础设施的网络攻击,以及对比特币用户的法律攻击。在探讨它们及分析它们失败的原因之前,让我们先从头开始,溯源比特币的发展。
2009年1月,一个名叫中本聪的神秘码农推出了比特币,一个开源的金融网络。它的野心很大:用一个没有统治者的、去中心化的、点对点系统取代中央银行。
比特币是一种可编程的、可替换的代币,它能像电子现金一样消费,也能像数字黄金一样储蓄。它通过一种固定的发币计划,在全球范围内分发给用户,这些用户会争先恐后地保障网络的安全,和计划的延续,作为回报,他们会得到新鲜出炉的比特币。
一开始,大多数人都是持怀疑态度的,而且关注的人也不多。毕竟,以前也曾经有过创造“电子货币”的尝试,但是都失败了。
没有人构想过,如何创建一个去中心化的、不可破坏的铸币厂,也没有人能够想象到,一个政府无法阻止的货币系统会是什么样。
而这正是比特币的使命。
一个小社区围绕着比特币成长起来。在中本聪和Hal Finney的带领下,这群人在第一年内讨论、修补和改进了软件,利用他们的电脑,每10分钟可以挖出150个毫无价值的比特币。最后,有人认为这些虚拟代币的价值足以让人接受,可以在现实世界里交换商品。
2010年5月22日,一位名叫Laszlo Hanyecz的开发者,用1万枚比特币买了两个Papa John’s披萨,汇率为每比特币0.1美分。谁也想不到,Laszlo为他的披萨订单会付出如此大的代价:如今已经超过5亿美元。
从早期的电脑挖矿以来,比特币已经成为一种全球现象。没有人知道中本聪是谁。如果说比特币是一家公司,它将成为世界十大最有价值的公司之一。它的粉丝群已经从赛博朋克社区留言板上的几个假名,发展到推特首席执行官杰克-多西、特斯拉首席执行官埃隆-马斯克、哈佛大学教授尼尔-弗格森、富达首席执行官艾比-约翰逊、女演员林赛-罗汉、歌手Soulja Boy、滑板运动员托尼-霍克和投资者保罗-图德-琼斯等人。它有自己的货币字符,₿。本月举行的一次行业会议,聚焦于如何将比特币纳入到企业的投资之中,吸引了6000多家公司参加。麻省理工学院的一个研究中心,为比特币的长期安全做出了贡献。
比特币的市场,几乎遍布地球上的每一个国家和主要城市,从加拉加斯到马尼拉再到莫斯科,到处都有当地的交易者渴望购买比特币。在尼日利亚、阿根廷、伊朗、古巴等国,数以百万计的人,都在使用比特币逃避他们当地的货币体系,然后转入信用更加良好的货币存储自己的财富,而不是留着玻利瓦尔、里亚尔、比索等。他们用私钥控制自己的比特币,将私钥存储在手机、U盘、纸上,甚至记在脑子里,然后可以在几分钟内,将货币发送给地球上任何地方的家人或朋友,而不需要任何当局的许可。
主流媒体通常将比特币描绘成一支发疯的垃圾股票,或者一种新型的数字郁金香狂热。但事实上,比特币是一个政治项目,它有可能从根本上破坏达沃斯主导的金融体系,从珍妮特-耶伦(Janet Yellen)到克里斯蒂娜-拉加德(Christine Lagarde)都对比特币的崛起表示担忧,要求对其进行监管。
在很大程度上,政府通过发行和控制货币来保持其权力。比特币这种新的模式,可以在没有政府的情况下,进行货币的铸造和交易担保。
因此,一个最大的问题是:为什么政府或巨型企业没有阻止它?如果他们在不久的将来试图攻击比特币,会是什么结果?
网上有大量关于比特币可能被攻击的猜测和讨论,但很少有人停下来思考,为什么比特币还没有被毁灭。
答案是,有政治和经济上的激励因素,让越来越多的人推动这个系统的发展,加强它的安全性;同时也有巨大的政治、经济和技术上的抑制因素,在阻止攻击。
显而易见,比特币已经不是因为规模还不大,所以没有引起各国政府的注意(从而招致攻击)。之前的在线数字货币尝试,比如e-Gold和Liberty Reserve,还没到100亿美元的市值,就被美国政府关停了。
现在,比特币的市值已经超过了1万亿美元。比特币每多生存一天,都会变得更加强大,对于很多攻击者来说,发动进攻的窗口正在迅速关闭。
比特币如此顽强的一个原因是,它是全球分布的。绝大多数的挖矿行为,都发生在美国以外的中国和中亚地区;但绝大多数的比特币持有者和购买者似乎是美国和欧盟实体;而软件的核心开发者和节点运行者(托管比特币的服务器)则分散在世界各地。比特币现象中最重要的人,它的发明者中本聪,已经与此无关,甚至可能已经去世了。
编码、挖矿、基础设施和市场都是独立的,分布在相互竞争的司法管辖区和地缘政治对手中,通常由匿名或假名的行为者完成,这些人来自五湖四海,有不同的理念和目标,但是动机统一:让比特币繁荣昌盛。
什么是 “序数 NFT”?(1)
作者:在比特币区块链上铸造非同质代币
来源:https://hashrateindex.com/blog/ordinal-nfts-inscriptions-digital-artifacts-oh-my/
意外还是惊喜?
最近出现了一种在比特币区块链上铸造非同质代币(NFT)的新方法,它可以将 NFT 的实质内容完全放到比特币区块链上。
只有这套标准的创造者 Casey Rodarmor 不乐意管这些东西叫 NFT。他认为这个词已经被污名化了,所以他将这些东西称为 “电子艺术品”。不管你叫它 “电子艺术品” 还是 “序数 NFT”,它们使用了 “序数理论” 来标记和跟踪这些 “铭文(inscriptions)”,也就是嵌入到区块链的 数据/内容。
所谓 “序数”,就是描述了一个序列内部的特定位置的数字(例如,“第一个”、“第二个”)。而在这里,“序数” 是指特定某一个聪(satoshi,比特币的最小单位)的 UTXO(未花费的交易输出)。这个聪 “包含” 了一段铭文,也就是 NFT 的内容,可以是文本、图片、HTML 文件,甚至是 MP3(音乐文件);而序数将这个附加了铭文的聪标记成了一笔特殊的交易,所以用户可以定位和跟踪它们。令人惊讶的是,这样的为聪排序的系统,早在 2012 年就已经有人提出来了。
自 1 月份推出以来,超过 1000 个电子艺术品已经在比特币区块链上永存。这些铭文包括推特截图、新兴的 NFT 系列、Keet.io 软件的广告,甚至一个 8 像素的视频游戏(像是传统的射击游戏 Doom 的克隆版,你可以在 ordinal 区块浏览器里玩到)。
除了这些琐碎但不乏乐趣的图片、视频游戏等等,序数 NFT 还可以用作敏感信息的抗篡改、抗审查存储。
- 传统的射击游戏 Doom 现在已经永存在比特币区块链上了 -
不像此前出现的基于比特币区块链的 NFT,序数 NFT 并不使用比特币的 OP_RETURN 输出(该操作码也允许用户在链上存放任意数据)。相反,它使用的是比特币区块的交易 witness(见证数据)字段,以及 tapscript (因为 2021 年的 Taproot 升级而出现的脚本编程功能)。
序数 NFT 是原生于比特币的,所以它不需要一条新的区块链,也不需要一种新的代币。而且它还把 NFT 的全部内容都存储在链上,不像其它的 NFT 标准那样仅仅把一条链接放到链上。
这种创新已经解锁了区块空间的新应用场景(至少,是降低了进入新场景的门槛)。自然地,这使得一些矿工希望序数 NFT 能进一步推动对区块空间的需求,并产生更大的手续费收益,但并不是所有人都对这项创新感到高兴 —— 比特神教阵营的一些人认为,这往好了说就是一些微不足道的小玩意,而从坏的一面看就是对比特币的攻击。
Counterparty、Rare Pepes 和比特币 NFT 的回归
在我们深入了解序数 NFT 之前,我们先花点时间了解一下以往在比特币上铸造 NFT 的尝试。
不管怎么说,NFT 确实起源于比特币。在以太坊和 Solana 链上的素朋克和耷拉着眼睛的猴子变成名人的玩具之前,比特币上就已经有交易卡片和 “青蛙佩佩(Pepe the Frog)” 了(译者注:青蛙佩佩就是那个眼睛很大、经常作悲伤表情的形象。)
NFT 最早出现于 2015 年,是在 Couterparty 上出现的;这是一种区块链网络,使用比特币的 OP_RETURN 输出来制作非同质资产。OP_RETURN 于 2014 年 3 月引入之后,11 月,Robby Dermody、Adam Krellenstein 和 Ouziel Slama 就推出了 Counterparty。2015 年,这个平台的第一套 NFT 出现,是一种类似于 “万智牌(Magic-the-Gathering)” 的卡牌交换游戏,叫做 “Spells of Genesis”。
堵车,Counterparty 的真正爆发,是在青蛙佩佩交换卡系列的 1774 个 NFT 推出之后。收藏家们使用 Counterparty 钱包保管这些 NFT,而 Counterparty 使用 OP_RETURN 输出,将这些 NFT 的索引锚定到比特币区块链。OP_RETURN 输出可附带的数据大小限制在 80 字节,只够 Counterparty 把 NFT 的描述、名称和数量放进去(但对序数 NFT 来说,数据体积的唯一限制就是比特币区块的体积限制,这个我们会在后面详说)(译者注:如果不要求连续地存储,OP_RETURN 这样挂载数据也可以认为仅受到区块大小的限制,但这个上限会比序数 NFT 的做法要低。)
OP_RETURN 交易的交易量在 2018 年末达到峰值,在 2019 年春天跌到谷底,然后在 2020 年随着 OMNI(Tether 最初发行 USDT 的平台)和 Counterparty 的退出而逐渐消失。2019 ~ 2020 同样也是 USDT 迁移到以太坊、以太坊上的早期 NFT 项目兴起的时间。
上图给还在萌芽期的序数 NFT 提出了一个响亮的问题:序数 NFT 会步他们的后尘吗?还是能够产生更大的影响呢?
什么是序数 NFT(电子艺术品、铭文)?
书接上回,我们来看看序数 NFT 的几个基本模块:
交易的见证数据字段:就是存放 NFT 的数据和内容的地方。
铭文:就是 NFT 的主体 —— 放到比特币区块链上的实际内容,NFT 代表的是对这些内容的所有权。铭文会刻在交易的输入的见证数据字段,而 NFT 就被赋予这笔交易的第一个输出的第一个聪。你也会看到人们把铭文称为 “电子艺术品/序数 NFT” —— 这三个词已经可以同义混用了。
信封:铭文会存放在(见证数据内的) Rodarmor 称为 “信封” 的区域,这个区域是由 OP_IF 和 OP_FALSE 操作码构成的。就像 OP_RETURN 一样,这些操作码是用来给比特币区块链发送指令的。在 “信封” 这种用法中,OP_IF 存放被铭刻的数据,而 OP_FALSE 则确保这些数据永远不会被实际执行 和推入堆栈(所以,虽然一些神教教徒在制造恐慌,但实际上,全节点并不需要处理和验证铭文,只需要处理和验证 UTXO 集,NFT 自在其中)。
序数:用数字排序的数学理论,在这里的用途是将单个单个的聪辨识为 “电子艺术品”(也就是 “序数 NFT”)。序数将一笔交易的第一个输出的第一个聪定义为 NFT;一旦标记之后,这个聪就可以像别的 NFT 那样转手和交易。
不像 Counterparty NFT(在链上的部分只有 80 字节),序数 NFT 没有体积限制,仅受交易见证数据字段的 4MB 体积限制。所以,如果你的文件足够大,理论上你可以铸造一个序数 NFT,只用其铭文就将整个比特币区块塞满。
Taproot 升级带来的 tapscript,以及隔离见证升级带来的交易见证数据字段,让这一切可以组合起来。
在 2017 年隔离见证升级之后,比特币交易的签名就可以从 “脚本签名(ScriptSig)” 字段移到见证数据字段,而且这个字段中的数据不会被包含在区块的交易默克尔树中,而且是专门放在一个单独的区域中(这就是它的名字 “隔离见证(Segregated Witness)” 的由来)。
隔离见证实质上扩大了区块体积上限,因为包含在见证数据字段中的数据,都不会占用比特币原本为区块安排的 1MB 空间。也正因此,隔离见证升级引入了一种新的度量区块体积的方法,叫做 “区块重量”,放在见证数据字段中的数据,会比放在原本的区块空间内的数据 “更轻”。所以在隔离见证交易的见证数据字段内存放数据,会比在区块内存放数据(译者注:比如 OP_RETURN 输出)更便宜。这就是所谓的 “见证数据折扣”,也是让序数 NFT 得以产生的关键。
另一个关键是 Taproot 升级。虽然引入了见证数据折扣,但隔离见证依然为单笔交易可以在见证数据字段放置的数据量安排了限制。Taproot 升级放宽了这些要求,完全移除了限制,所以理论上你可以用全部的区块空间(译者注:准确来说是见证数据空间)铭刻一个内容高达 4 MB 的 NFT。(我们 Luxor 真的付诸实践了,挖出了一个带有 3.9 MB 的电子艺术品的区块,这也是有史以来最大的区块)。
- 有史以来最大的区块;铭刻的 NFT 有 3.94 MB,区块总大小 3.96 MB -
“附加铭文的交易是 taproot 输出的花费交易,会将相应的 tapscript 暴露出来,因此铭文的内容和文件类型也会暴露出来”,序数 NFT 的创始人 Casey Rodarmor 在一次手机访谈中说,“铭文会 ‘附着’ 在这样的交易的第一个输出的第一个聪上 …… 然后序数协议允许你使用普通的比特币交易转移这些聪。”
如比特币开发者 Peter Todd 指出的,序数 NFT 甚至在 2017 年 8 月隔离见证激活升级之前就可以实现。但 Taproot 让它们变得更加便宜,而且允许一次性上传更大体积的文件。一些评论员说 Rodarmor 是意外发现这项创新的,就像是偶然犯了个错。
“我不会称这是一场意外 —— 我觉得人们会为此感到惊喜”,Raodarmor 说。
比特币用户需要一种特殊的钱包和区块浏览器(Ord Wallet)来索引和跟踪序数 NFT,但可以使用任意的比特币地址来发送和接收这些 NFT。因为电子艺术品需要 taproot 才能铸造,所以 Ord Wallet 会默认启用 Taproot 地址。
还需要提醒的是:被附加了铭文的聪,从链上来看跟其它聪依然是没有分别的,意思是它就跟其它聪一样是可以花费的,而且花费方式也没有区别。现在,一个聪只能铭刻一次,但 Rodarmor 正在开发一种升级,让用户可以重新铭刻之前已经铭刻过的聪(叫做 “抄写”)。
序数 NFT 对比特币矿工来说意味着什么?
尽管序数 NFT 的创始人尝试以称呼它们为 “电子艺术品” 来避免争议,但序数 NFT 在比特币人中已是热门话题。
基本上有两种阵营。支持的一方认为比特币的区块空间是一个自由市场;只要你能支付手续费,你就可以使用区块空间,不论交易有多大、包含什么内容。反对的一方则声称 NFT 都是骗局,会占用区块空间,这些垃圾交易会挤出更有意义的经济交易(例如普通转账);而且,这种 “占用” 会提高下载和运行比特币全节点的带宽需求。
什么是 “序数 NFT”?(2)
序数 NFT 也因为比特币的安全预算问题(不管你怎么称呼它)而进入了更大的辩论中。支持者主张,这种新的应用将推动对区块空间的需求,对比特币的未来是有好处的,因为比特币的区块奖励最终会下降到零。自然,关于区块空间和手续费的辩论也引起了矿工的兴趣,手续费收入曾经占到他们总收入的 30%,但现在,好的时候 也只占 3%。
现在只有超过 1000 个序数 NFT 在流通,所以它们还不能达到让交易手续费率呈抛物线增长。也就是说,比特币交易的手续费和区块体积确实都在 1 月的最后两天显著增长,但增长的一部分原因可能是比特币的哈希率从历史最高点下降了 3%,也就是出块的时间变长了,因此导致交易入块时间变长以及手续费变高。但没有序数 NFT 的铭文热潮的话,我们很有可能不会看到交易手续费和区块体积的增大。
- 没有出现天文数字,但序数 NFT 确实对区块体积和交易手续费产生了影响。来源:Hashrate Index -
序数 NFT 很有可能不会提高交易手续费。当然,它们是可能导致手续费提高的,但不是你想的那样。毕竟,因为得到了隔离见证的折扣,理论上一个装满电子艺术品的区块,可能比装满普通比特币交易的区块携带更少的手续费。
但如果足够多的用户开始铸造序数 NFT,他们就会跟普通交易激烈竞争区块空间,而广播普通交易的用户就需要提高手续费,才能让自己的交易被打包。这样一来,矿工可能会优先打包尽可能多的普通交易,因为它们为每自己的数据支付的手续费更高,所以打包的普通交易越多,手续费收入越高。
所以,即使序数 NFT 会产生手续费上涨压力,矿工也有可能会优先打包更多的普通交易,以产生更高的手续费。
稀缺性
真正会给矿工带来好处的可能不是交易手续费,而是挖出电子艺术品 —— 具体来说,就是稀缺的聪。
在一篇论述序数理论的博客文章中,Casey Rodarmot 列出了一份不同聪的稀有程度的图表。这个分类方法主要围绕比特币工作量证明的自我调节事件,也即难度调整事件和增发速度减半事件。例如,增发速度减半后的第一个区块中的第一个聪,会被分类为 “Epic” 聪;假设有这样的需求,这样的聪就可以在收藏家那里卖出更好的价钱。
图表如下:
- 稀有的聪,可以个矿工带来额外的、暴富的收入来源 -
一旦这样的收藏品市场出现,矿工将可以凭借向收藏家卖出这样的聪而赚大钱。当然,这种稀缺性完全基于这样的市场会出现的假设。但是,从猴子、到石头,甚至小鸡,都在 NFT 交易的狂欢中找到了自己的收藏家,设想一些比特币人会加入这个浪潮、追逐新的减半周期的第一个聪、新的难度周期的第一个聪,也不是什么奇怪的事。
序数 NFT:反常吗?
Casey Rodarmor 的创新才刚刚出现了大概一个月,就已经成为了比特币圈子今年最有争议的话题。
反对的力量非常强,Bitcoin Core 的贡献者 Luke Dashjr 已经为节点运营者编写了一个粗糙的过滤器(译者注:可用于让节点不再接收这种交易到自己的交易池中,也不再转发),虽然这个工具的功效和影响都还存在疑问。不管怎么说,OP_FALSE 意味着铭文数据不需要被验证,而且剪枝节点也完全不会保存交易的见证数据。
也有人站在另一边,许多人 —— 包括比特神教教徒和普通的密码货币爱好者 —— 都对这种新的 NFT 铸造方式感到兴奋。除了图片和收藏品,序数 NFT 还可以用来发布敏感的文件,可以从永久的、抗审查的存储和复制中受益。借用 Galaxy Digital 的 Brandon Bailey 的话来说,比特币用户可以通过铭刻序数 NFT 来策划一个 “不可篡改的图书馆”。
对矿工来说,这项创新可以导致日后的交易手续费增加,并为矿工开启额外的收入流(挖出稀有的聪),甚至产生 “矿工可抽取价值(MEV)”。
不论如何,序数 NFT 不会消失。有疑问的只是它们会造成多大的影响,以及铭文能不能够创造像以太坊和其他区块链一样的的 NFT 热潮。
(完)
