投资者2019年比特币路线图:Schnorr,Dandelion等

比特币既是货币也是技术。在货币方面,比特币经过精心设计,一旦经过验证,交易就不可变,永远存在于区块链中。但这并不意味着该技术是静态的。由于充满活力的开发者生态系统,比特币的协议年复一年地稳步提升。

比特币的去中心化性质为改进为协议提供动力的基础技术的过程带来了独特的挑战。为避免无政府状态,比特币的核心开发人员采用了特定的代码修订流程。由于没有中央权限可以说明应该和不应该完成哪些更新,因此更改取决于获得开发人员社区支持的提案。一旦将提案实施到代码中,网络上的节点就必须通过升级其客户端软件来接受新的更改。

投资者应该了解重要的更新提案,因为比特币的重大变化可能会影响BTC的价格。有争议的提案甚至可能导致硬分叉,导致较小的集团拆分并形成区块链的新版本(因为SegWit2提案启发了比特币现金的创建)。

比特币改进建议

比特币改进通常以比特币改进提案(BIP)的形式提交给GitHub存储库。BIP是一个设计文档,它提供了新比特币功能或现有功能修订的想法。只有重大变化才能获得自己的BIP。该文件的作者通常会对比特币社区进行民意调查,以确认在提交正式批准程序的BIP之前是否有很好的接受机会。

如果社区在很大程度上支持,那么BIP作者将把文档提交到比特币开发邮件列表进行审核。BIP通过几个阶段:

  • Draft(草案),BIP已提交。
  • Proposed(建议),BIP有一个有效的实施方案,作者有明确的计划将其付诸实施。
  • Final/Active(最终/激活的),BIP提案已准备好上线或已应用。
  • Rejected/Withdrawn (拒绝/撤回),BIP已被开发社区拒绝,或者作者已将其撤回考虑范围。
  • Replaced/Obsolete(替换/已过时),BIP提出的新功能版本已取代它。

以下是即将到来的BIP,它们可能会在2019年对比特币用户和投资者产生重大影响。我们将详细介绍以下各项的细节。

标准化多重交易:部分签名的比特币交易(PSBT)

假设你和两个合作伙伴正在运营投资基金,你的资金以比特币计价。你希望确保至少有两个人需要同意才能进行任何投资并利用你的资金。多亏了多重签名地址,你可以通过加密来保证这一点。在比特币上,你可以创建一个2-of-3的多重签名地址来存放你的资金,你需要两个合作伙伴的私钥来授权任何交易。

多签名交易的当前问题是比特币中没有标准格式。例如,如果你和你的合作伙伴使用不同的比特币钱包,那些钱包可能不会支持彼此的签名格式,这会阻止交易。

Andrew Chow关于部分签署比特币交易(PSBT)的提议可以解决这个问题。该提案创建了一种交易格式,可以跨不同的钱包客户端标准化部分签名的交易。这种标准交易格式就像一块拼图游戏。要创建多重签名交易,你需要来自每个参与者的不同部分,只有现在,使用PSBT,拼图的各个部分才能实际组合在一起。即使并非所有用户都可以访问完整的UXTO(未使用的交易输出)记录,新格式也允许组进行交易处理。

高效的私人交易:Schnorr签名

Schnorr签名是将私钥,公钥和交易签名合并为单个哈希的一种方法。这提高了交易的效率和隐私,特别是对于多重交易(因为交易中是否有多个签名者不再明显)。

目前,比特币使用的ECDSA签名介于71到75个字节之间。Schnorr签名是64字节,这已经是一个改进。但这只是冰山一角。在比特币的未使用交易输出(UTXO)模型之后,大多数比特币交易实际上由几个较小的输入组成。目前,每个输入都需要自己的签名,并且所有签名都需要包含在交易中,占用空间,并导致更高的交易费用。

Schnorr签名将允许一个组合签名代表交易所需的所有签名,这导致块容量估计增加17%并且更快地验证交易。这些增益也适用于多重签名交易,其中当前需要多个签名来访问交易输入。

Pieter Wuille建议将Schnorr签名添加到比特币中将包括上述所有优点,并且还包含两个次要优势:

  • 固定的64字节签名编码格式。
  • 由于提议的签名格式的标准化性质,批量验证的潜力。

更大的匿名:Dandelion

隐私是Satoshi Nakamoto创建比特币的既定目标之一,但该货币是假名而非匿名。这意味着你可以将你的钱包地址视为一种假名:网络上的任何人都可以看到与你的地址相关的所有交易,因此,如果他们可以将你的真实身份与你的地址相关联,你的隐私就会被取消。

现在有很多方法可以实现这种真实世界的识别。当前在比特币网络上,当交易被发送到节点时,它然后被广播到网络上的其他节点。这使得可以进行网络分析并将交易跟踪回原始节点。从那里,将交易追溯到它来自的IP地址相对简单,有效地识别用户。

Dandelion项目希望解决这个问题并使比特币更加私密。Dandelion不是从原始节点向网络的其余部分广播交易,而是从anonymity phase开始。在此阶段,交易跳转到随机对等体,后者将其发送到另一个随机对等体,直到spreadingfluff阶段。每次交易从一个节点跳到另一个节点时,有90%的可能性交易保持匿名并跳转到另一个节点,并且交易进入spreading阶段的可能性为10%,其中它被广播到网络上的节点。

Dandelion使用概率随机化交易在广播到网络其余部分之前所采用的路径,这使得网络无法将交易跟踪回原始节点,从而为网络提供了更高程度的隐私。

Brad Denby,Andrew Miller,Giulia Fanti,Surya Bakshi,Shaileshh Bojja Venkatakrishnan和Pramod Viswanath联合提交了Dandelion提案,并在比特币网络的小版本上构建了原型版本进行测试。到目前为止,该团队报告说它没有发现任何软件冲突。

更高的可伸缩性:Merkelized抽象语法树(MAST)

区块链使用哈希算法来编码和验证交易,每次代币从一个地方移动到另一个地方时生成新的哈希。每个新哈希都包含一个指向前一个哈希的代码,这意味着来自一系列哈希的信息可以存储在一个哈希中,从而大大减少了处理一系列交易所需的处理时间和功率。这种将哈希链接在一起的方法称为Merkle树。

Merkelized抽象语法树(MAST)通过将Merkle树与抽象语法树相结合,将Merkle树更进一步,这是一种通过将代码拆分为单个组件并将其映射到其依赖关系来描述代码的方法。结合Merkle树,这些单独的组件可用于验证各个组件属于整个组件。在比特币上,MAST将通过消除在比特币区块链中包含脚本的未使用部分的需要,并允许更复杂地使用当前受空间限制限制的比特币脚本语言,来帮助减少交易数据的大小。

比特币的区块链大小在过去两年中翻了一番,从大约100GB到200GB,使人们更难以运行整个节点。MAST将有助于降低区块链增长的速度。

比特币开发人员提出了两种不同的方法来将MAST添加到加密货币中。Johnson Lau的提议BIP 114建议通过使用BIP 141的脚本版本来激活MAST.Mark Friedenbach,Kalle Alm和BtcDrak的提案BIP 116和117将合并MAST而不需要脚本版本控制,需要更少的共识更改,可能使其更简单实行。

侧链实施:哈希时间锁定合约

2018年在第二层开发方面取得了重大进展,例如侧链,这是一种将token从一个区块链转移到另一个区块链并再次返回的机制。侧链节点设计用于执行大多数实际交易处理,从而减少主要比特币节点的负载。理论上讲,这将有助于实现可扩展性,可以在不影响主要区块链的情况下实现更多的交易。闪电网络是第二层计划中最著名的,但它并不是唯一一个正在开发中的计划。

哈希时间锁定合约(HTLC)是一种在比特币中创建条件支付的方法,使侧链交易更加可行。它们是闪电网络的核心组成部分。

使用像Lightning这样的第2层解决方案,Alice可能与Bob有一个开放的支付渠道,而Bob可能与Charlie有一个开放的支付渠道。HTLC基本上允许Alice通过Bob向Charlie汇款,而不必信任Bob或Charlie。

以下是HTLC如何在支付渠道系统中运行的示例:

1
2
3
4
5
6
7
8
1.爱丽丝给鲍勃开了一个付款通道,鲍勃给查理开了一个付款通道。
2.爱丽丝想要从查理那里购买1000个satoshis。
3.查理生成一个随机数并生成其SHA256哈希值。查理把这个哈希给了爱丽丝。
4. Alice使用她的支付渠道向Bob支付了1,000 satoshis,但她添加了Charlie给她的哈希以及额外的条件:为了让Bob要求付款,他必须提供使用的数据。产生那个哈希。
5. Bob使用他的支付渠道向查理支付Charlie 1,000 satoshis,Bob添加了一份与Alice给Bob付款相同的条件。
6.查理拥有用于生成哈希的原始数据(称为预镜像),因此查理可以使用它来完成付款并完全收到鲍勃的付款。通过这样做,查理必然使鲍勃可以使用前镜像。
7. Bob使用前镜像来完成Alice的付款。
资料来源:[比特币维基百科](https://en.bitcoin.it/wiki/Hash_Time_Locked_Contracts)

Sean Bowe和Daira Hopwood关于哈希时间锁定合约的提议包括一个脚本,如果另一方不合作,交易中的任何一方都可以收回资金。它设定了交易的时间限制:如果买方在此限额到期时没有花费资金,卖方可以收回代币。

可靠地升级去中心化网络

我们讨论过的各种改进建议正处于不同的发展阶段,看到明年采用哪些改进建议将会令人兴奋。虽然BIP本身提出了逐步改进而不是彻底改变,但提议的升级有望使比特币更加高效和私密,同时使协议与Lightning等第2层解决方案更加兼容。

======================================================================

分享一些比特币、以太坊、EOS、Fabric等区块链相关的交互式在线编程实战教程:

  • java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
  • php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。
  • c#比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在C#代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是C#工程师不可多得的比特币开发学习课程。
  • java以太坊开发教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
  • python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
  • php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。
  • 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
  • 以太坊开发进阶教程,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
  • ERC721以太坊通证实战,课程以一个数字艺术品创作与分享DApp的实战开发为主线,深入讲解以太坊非同质化通证的概念、标准与开发方案。内容包含ERC-721标准的自主实现,讲解OpenZeppelin合约代码库二次开发,实战项目采用Truffle,IPFS,实现了通证以及去中心化的通证交易所。
  • C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
  • EOS入门教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
  • 深入浅出玩转EOS钱包开发,本课程以手机EOS钱包的完整开发过程为主线,深入学习EOS区块链应用开发,课程内容即涵盖账户、计算资源、智能合约、动作与交易等EOS区块链的核心概念,同时也讲解如何使用eosjs和eosjs-ecc开发包访问EOS区块链,以及如何在React前端应用中集成对EOS区块链的支持。课程内容深入浅出,非常适合前端工程师深入学习EOS区块链应用开发。
  • Hyperledger Fabric 区块链开发详解,本课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、通道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、nodejs链码与应用开发的操作实践,是Nodejs工程师学习Fabric区块链开发的最佳选择。
  • Hyperledger Fabric java 区块链开发详解,课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、通道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、java链码与应用开发的操作实践,是java工程师学习Fabric区块链开发的最佳选择。
  • tendermint区块链开发详解,本课程适合希望使用tendermint进行区块链开发的工程师,课程内容即包括tendermint应用开发模型中的核心概念,例如ABCI接口、默克尔树、多版本状态库等,也包括代币发行等丰富的实操代码,是go语言工程师快速入门区块链开发的最佳选择。

汇智网原创翻译,转载请标明出处。这里是投资者2019年比特币路线图:Schnorr,Dandelion等