《中本聪的比特币课程》着眼于以多种方式扩展比特币地址的相关知识

《中本聪的比特币课程》着眼于以多种方式扩展比特币地址的相关知识

如果您能设计出一个系统,能够让它识别出属于某个所有者的比特币签名密钥,而这个密钥以前并不存在于区块链上,那么情况将会怎样呢?这是《中本聪的比特币课程》第四集中的一个用例。这是由sCrypt的创始人刘晓晖和Craig S. Wright博士共同参加的新系列的比特币开发视频。

Wright博士提醒大家,我们所知道的“比特币地址”并非比特币系统原始设计中的一部分——事实上,我们所用来发送和接收比特币的地址几乎可以采用任何我们喜欢的形式,只要用于签名的私钥能够被验证。

“它不是比特币系统的一部分,也不是模板的一部分。”Wright博士说道,“我在2009年建立这些小地址功能时花了太多精力。这并不是您使用比特币系统的唯一方式。”

对于希望进行交易(作为支付或合约条件)的两方而言,地址掩码的这种方法在业务中可能很有用,双方不必一直在线或始终使用同一地址。实际上,知道哪些信息要在链上处理以及哪些信息要在链外处理是比特币课程系列的一个关键主题。

问题是,我们该使用什么方法来识别某些未来密钥的所有者是谁呢?Wright博士举例说明了如何做到这一点。其中一部分可能是一个密钥的哈希值,加上能够经过身份验证的哈希值的salt,或者是与HMAC值相关联的哈希值。

一方可以事先向另一方提供某种信息以便后者解码地址,从而知道(更重要的是,证明)对方正在和你进行交易,而不是冒名顶替者(在进行交易)。

知道确定性地址的“根密钥”是可能的,只要该信息是以另一方可以验证的方式提供的,但是看不到实际的根。他们可能根本看不到任何地址;它可以用只有机器(通过比特币脚本)才能识别的方式进行屏蔽。

Wright博士列举了更多的例子,比如sigX和sigY是二元的选项——一方可以提前声明“我证明X或Y”,甚至是在链外。可能存在这样一种有条件的情况,即“如果事件A发生,那么oracle将执行以下方案之一。”

这在处理很多商务文档的情况下都会很有用。

“Alice可以提供她的发票的哈希值,证明Bob已经收到它了。或者,她通过电子邮件将其订购单发送给Bob,Bob必须打开该订购单才能获得购买号。这样,Bob就不能说他从未收到该订单或看到该单号。”

“您可以更进一步:这个(密钥)是一次性交易。Alice给Bob发送了一个完全唯一的地址。”这个地址以前在区块链上从来没有存在过。

在另一个场景中,您可以为商品或者服务先付一点定金,以后您可以再拿回定金(如果发生了其他事情,您会失去这笔钱)。一方可以在未来一周内签署这笔退款,以使退款退至一个唯一的地址——只需要通过签署哈希(就能完成)。最初地——付款的一方如果有必要的话可以接收该退款,而收款方不知道它是什么,也见不到该地址。

交易最终会以常规的方式被执行与处理,但人们可以事先设定各种规则,并让双方(及其软件)达成一致。

Wright博士还谈到了人们在链外执行此类操作时可能会有的担忧,他详细阐述了为什么在链上执行该合约的每一个单一功能(就像以太坊试图去做的那样)没有必要,只要您可以验证特定的事情已经发生(就可以)。

Wright博士表示:“比特币系统是一种小额支付以及网络货币系统。这适合作为小额支付的账本。”您不需要将比特币系统用于买房买车这样重大的用途,尽管有人觉得这很具有诱惑力。当然,这并不是说您不能这样做——因为它并没有真正发挥比特币系统的独特功能,它只是没那么有用。

请您注意(或请您放心),最新一期的“比特币课堂”以白板会话为特色,所以大家一定要提前做好一些数学方面的准备。但和往常一样,就算本期的数学部分很难理解,仍然有很多例子和场景可以激发您的创造力。

若您想观看《比特币理论》及《中本聪的比特币课程》先前的剧集,请于此处点击查看《比特币理论》的YouTube频道于此处点击查看《中本聪的比特币课程》的YouTube频道

202024日的“创世”协议升级是比特币历史上的一大里程碑,将见证BSV最大程度地回归到中本聪原先设想的协议。请访问“创世”硬分叉页面以了解更多信息。

要直接在您的收件箱接获CoinGeek.com最新消息,CoinGeek会议特别优惠以及其他内部信息,请加入我们的邮件列表

[id^="_form"]
[id^="_form"]
[id$="_submit"]
[id$="_submit"]
[^;]
[^;]
[?&]
[?&]
[^&#]
[^&#]
[(d+)]
[(d+)]
[elem.name]
[elem.name]
[+_a-z0-9-'&=]
[+_a-z0-9-'&=]
[+_a-z0-9-']
[+_a-z0-9-']
[a-z0-9-]
[a-z0-9-]
[a-z]
[a-z]
[el.name]
[el.name]
[id^="_form"]
[id^="_form"]
[id$="_submit"]
[id$="_submit"]
[^;]
[^;]
[?&]
[?&]
[^&#]
[^&#]
[(d+)]
[(d+)]
[elem.name]
[elem.name]
[+_a-z0-9-'&=]
[+_a-z0-9-'&=]
[+_a-z0-9-']
[+_a-z0-9-']
[a-z0-9-]
[a-z0-9-]
[a-z]
[a-z]
[el.name]
[el.name]