了解资产的自我托管

Understanding Self-Custody of Assets | Cardano Explorer (cexplorer.io)

用户使用自助钱包比较困难,因为它至少需要了解密码学的基本原理。 此外,他们必须了解区块链和加密钱包中发生的流程。 在本文中,我们将解释加密密钥和交易的基本原理。

为了更容易理解,我们特意简化了一些流程的解释,并跳过了一些细节。 这篇文章主要针对新手。

拥有资产需要保守秘密
与大多数区块链一样,卡尔达诺允许您独家拥有资产。 这意味着只有您才能控制这些资产,世界上没有其他人可以控制这些资产。

独占所有权意味着只有您才能创建有效的交易,将资产从您的区块链地址转移到接收者的地址。 所以只有你可以花费资产。

此功能取决于您创建和维护加密秘密的能力。

区块链网络中资产的所有权和转移基于公钥密码学(也称为非对称密码学)。 一般来说,密码学提供了使远程参与者之间能够以秘密且可信的方式进行相互通信的工具。 但前提是密码秘密不被泄露。

任何想要拥有资产的人都必须首先创建一个加密秘密。

这个秘密称为种子或密码。 从预定义的单词列表(例如,从 BIP-39)中随机选择一定数量的单词。 例如,它可以是 24 个单词,但您也可能会遇到密码短语中单词数较少的情况。 它可以是 15 个字。

安装后,每个卡尔达诺钱包都会为您生成一个密码。 如果没有加密秘密,自我托管钱包永远无法运行。 您安装的钱包仅适用于您的秘密。

可以使用现有的密码和所谓的恢复钱包。 甚至可以使用具有相同加密秘密的多个钱包。

在特定时刻,必须确保只有您才能看到随机生成的密码。 这是一个加密秘密,使您能够独占资产的所有权。

因此,请确保您使用的是经过验证的钱包,并且是从可信来源下载(或安装)的。

您必须准确记住钱包中显示的密码。 如有必要,您必须能够以相同的顺序将相同的单词列表放在一起。

如果不将其实际写在纸上或使用其他某种方法进行保管(例如将文字刻在金属上),则无法完成此操作。 切勿以数字方式存储密码,即存储在文件中或通过手机拍照。

如果您丢失了计算机上的轻钱包、整个计算机或智能手机或者硬件钱包,您可能需要再次输入密码。 请记住,如果您知道密码,您仍然拥有自己的资产。

您甚至可以故意删除钱包,但您需要知道密码才能恢复它。 资产的所有权并不取决于钱包的存在和创建有效交易的可能性,但最重要的是取决于维护加密秘密,即密码。

现在您拥有物理形式的加密秘密和已安装的钱包。 下一步是从密码中导出数字秘密。 这就是密钥的生成。

加密密钥
多个私钥和公钥是从密码短语中分层导出的。 此过程称为分层确定性(HD)钱包派生。

好消息是您不必担心。 你的钱包会为你做一切。 您只需要知道后台发生了什么以及正在发生什么进程。 钱包的用户界面使您免受与加密相关的复杂性的影响。

在下图中,您可以看到从种子开始的密钥派生结构。

钱包从种子(密码)生成密钥对。 主密钥是分层确定性钱包结构的顶层。

人们常说,不是你的钥匙,不是你的硬币。 什么是钥匙? 可以说,密钥是密码学秘密的一部分,尤其是私钥。

您可以将密钥想象为一串各种乱序字符,大致适合一行。 它是许多数字 1 和 0 的组合。

使用两个相关的键。

首先生成私钥(或签名密钥)。 图中用红色标记了它。 顾名思义,这个密钥必须保密。 交易使用此密钥进行签名。 密钥签名是可以通过第二个公钥验证的某种加密操作。

公钥(或验证密钥)是从该私钥派生的。 图中以绿色标记。 顾名思义,这个密钥是可以公开的。

首先,生成主密钥对。

主密钥可用于派生多个卡尔达诺帐户,每个帐户都有其自己的一组地址和密钥。 帐户也是代表您在卡尔达诺中的股份的密钥对,并允许您将其委托给池。

质押不是本文的主题。 但是,请记住,质押也可以通过密码学进行。 我们将专注于从一个地址到另一个地址发送交易,这需要支付密钥。

区块链地址用于持有资金(UTxO)。 可以在它们上接收 UTxO,然后从它们发送 UTxO。

公钥(来自一对支付密钥)用于生成地址,而私钥用于签署交易,从而证明资金的所有权。

为了便于理解,以下文字将进行简化。 我们不会处理区块链地址的哈希值。

资产所有者是证明者,卡尔达诺网络是验证者。

在通过交易发送资产的过程中,需要使用一对相关的密钥。 资产与从公钥派生的地址相关联。 发送者对交易进行数字签名,提供给定地址的资产所有权证明。 私钥用于签署交易。

您可以将交易的数字签名想象为用笔对文档进行常规签名。 专家将能够明确验证签名并判断您是否签署了该文件。

Cardano(区块链网络)必须通过公钥验证签名。 将验证是否使用了持有资产的地址对应的私钥。

卡尔达诺必须拥有加密秘密的公共部分和可用于验证的数字签名形式的私有部分。

通过签署交易,私钥不会被泄露。 这意味着该地址可能仍然持有交易发送者专有的 UTxO。 在验证过程中,还会验证该地址是否拥有足够数量的资产供所有者支出。

交易包含收款人的地址。 该地址源自接收者的公钥。 接收者持有相应的私钥,因此他可以从该地址发送(花费)资产。

在图中,您可以看到上述简化过程。

Alice 向 Bob 发送 UTxO。 UTxO 位于属于 Alice 的区块链地址上。 Alice 的钱包创建一个交易并将输入 UTxO 放入其中。 指定了额外的事务参数。 例如,从 UTxO 中花费的价值(为了简单起见,整个 UTxO 被发送给 Bob,所以 Alice 没有得到任何回报)。

将从输入 UTxO 创建输出 UTxO,其中指定属于 Bob 的区块链地址(使用 Bob 的公钥)。

对于要转移的资产,Alice 必须通过她的钱包使用私钥签署交易。 数字签名将由卡尔达诺网络进行验证,图中未绘制。

钱包选择要插入交易的 UTxO。 它还选择签名所需的私钥。 大多数时候,用户只需输入支出密码或通过按下硬件钱包中的按钮来确认交易的发送。

仔细检查收件人的地址和要发送的金额非常重要。 交易不可退款。 一旦交易被包含在区块中,就无法撤消。 如果 UTxO 被发送到错误的地址(不存在或其他人的),则该记录将永远存储在区块链中。 错误无法纠正。

资产自我托管
什么是资产自主托管? 资产所有者需要注意什么?

区块链网络本质上是一个保存资产所有权记录的去中心化账本。 使用区块链地址代替所有者名称。

账本中的记录只能通过密码学来更改。 要更改资产的所有者,当前所有者必须通过私钥签署交易来证明其所有权。

自我托管可以被视为花费资产的专有权利。

如果所有者丢失私钥(钱包)和密码(加密秘密的物理形式),分类账中的记录将永远保持写入状态。 资产会存在,但不能花掉。 换句话说,通过丢失加密秘密,所有者也永远失去了所有资产。

如果有人设法窃取或泄露您的加密秘密,他们将与您一样对您的资产拥有相同的控制权。 您对您的资产的专有所有权负责。 如果失败并且有人将资产转移到另一个区块链地址,则无法更改它。

甚至无法证明给定的交易是由您还是窃取您的加密秘密(密码或私钥)的人签署的。

资产由持有给定区块链地址的私钥(或密码)的人控制。 应该只有这个人了。 但是,这不能保证多个人可能知道密码秘密。

网络共识不知道交易上下文和资产所有者。 它仅验证交易,即验证数字签名。 如果交易有效,分类账中的条目将被更改。 资产将从发送者地址转移到接收者地址。 交易将永远存储在区块链(分类账)中。

除了使用私钥之外,没有其他方法可以改变资产的所有者。

这使所有者能够完全控制资产。 然而,他们对加密保密负有全部责任,并且必须了解所涉及的所有风险。

结论
下次我们将解释本文中简化的细节。 我们将讨论使用什么密码学、如何以及为何对区块链地址进行哈希处理、数字签名如何工作、如何确定性地导出密钥对等。本文的目的是阐明与使用 self 相关的基本概念 - 托管钱包。 了解密码学的基础知识以及了解资产转移过程中发生的流程对于用户来说是有益的。