read.cash Log in
@GeneralProtocols edited

《我的Anyhedge开发之旅:在BCH上构建智能合约为何这么难?》

作者: Jonathan Silverblood 加入AnyHedge群:https://t.me/AnyHedge 你是否想过要在比特币现金上构建智能合约金融产品到底需要什么?我在*2019*年上半年加入了一支小团队来建立一款非托管期货合约产品,以此作为尝试看看*BCH*上有哪些可为之和哪些不可为之。 我会在本文概述自己在*2020*年上线*AnyHedge*之前的故事。 初始篇 *2019*年*3*月,在*Anyhedge*这个想法形成并使用*Spedn*的早期版本成功编译成初始合约时,我尚未加入这支团队。但不久后我就加入其中来构建使用合约所需的工具 。 那时我们没有任何资金赞助,都是花自己的时间进行开发。但一位潜在投资者让我们意识到或许有一天我们能盈利。 早期采用者遇到的问题 盲目建设阶段 要在比特币现金上建立智能合约,不仅需要了解脚本语言,还需要了解交易签名、协议结构和各种限制。 工作不久后,我就发现到处都找不到好的信息来源。我不得不去阅读比特币(BTC)的文档,但这些文档通常是错误的,因为要么已经针对BTC进行了更新,要么因为BCH分叉而变得不再适用。我还必须阅读并尝试了解节点升级规范,以了解比特币现金的不同运作,但这些规范仅列出了变动的部分,并经常提到“与之前相同”。但之前是什么样?却没有给出任何来源。 开发过程中阅读这些低品质的文档既增加了难度又无济于事,因此我给*Bitcoin Unlimited*开发团队写了***BUIP121*** 提案,帮助构建更好的公共文档以方便开发者进行协议交互。 https://bitco.in/forum/threads/buip121-passed-create-formal-bch-specifications.23762/ 虽然还不够完善,但***Bitcoin Unlimited*** 和***Bitcoin Verde*** 所做的改善使新开发人员能够读到比以往更好的文档。 https://www.bitcoinunlimited.info/ https://bitcoinverde.org/ 疯狂建设阶段 在我加入后的最初几个月中,大家都尽了最大的努力来加速开发。但是由于种种原因,工作进展缓慢且断断续续的。在潜在投资者们的帮助下,我得以在***Bitcoin Cash City Conference***大会前到汤斯维尔与团队见面。 https://2019.bitcoincashcity.com/ 至此,开发进展加速了。在短短的几周内,我们从实现了从无功能的合约草案到成功地存入并赎回了链上的第一份*AnyHedge*合约。 在*2019*年*9*月的会议期间,我们向潜在的合作伙伴和投资者进行了首次演示。一家交易所口头答应要接入我们的产品。 但我们的演示还存在很多问题。 那时我们所依赖的工具尚未完成且存在漏洞(如*0.1.x*版本号所示)。多亏有*BCHD*团队开发的 ***Meep*****交易调试程序**,我们把*Anyhedge*从最初的一个想法过渡到能进行概念性验证。 https://github.com/gcash/meep 破裂的桥 不可靠的****REST APIs**** https://read.cash/@JonathanSilverblood/the-road-to-anyhedge-1903028c?signature=1e73d6d0ff23e901032683e80e35b5a92cdb19a7001d2225e478854610278847#unreliable-rest-apis 我们把工具构建在市面上最知名和记录最全的开发者栈上,即BitBox SDK和相关的REST API。这些工具在原型开发阶段为我们提供了很好的服务,但我们在2019年底意识到要在免费的公共基础设施上建立金融商业性项目是不可持续的。 我们研究了多个替代方案,最终决定使用Electrum服务器作为后端。Electrum协议并不完美,但考虑到Electron Cash钱包也使用的这款协议,又具有多个服务器软件,因此大概率不会挂掉。 但是,要找到能与服务器交互的好的工具却困难重重。 要么就是不再维护了,要么就不支持我们所需的功能。 我们建立了 **electrum-cash** 库,能支持electrum协议的所有功能,包括加密,网络套接字和自动版本协商。 https://www.npmjs.com/package/electrum-cash 现在,**flipstarter**、**mainnet**、**fullstack** **和** **cashscript**等生态成员都使用electrum-cash库。我们承诺会提供资金支持我们所依赖的基础设施。而且我们有公共赞助,这笔赞助会随着我们收益的增多而不断扩大。 https://flipstarter.cash/ https://mainnet.cash/ https://fullstack.cash/ https://cashscript.org/ 如果你是第一个玩家,该跟谁合作过去价格预言机? AnyHedge合约提供两个合约方向,以及一个提供价格信息的预言机(Oracle)。 我们从一开始就想使用第三方预言机,但是如果你是第一个玩家且没有其他玩家时,你要怎么做? 我们与 ***Bitpay****,* ***Chainlink****,* ***Coin Dance****,* ***Blockchair*** 和 ***CoinGecko***等能提供价格数据源或提供价格数据服务的公司进行过交谈。遗憾的是,由于与*ETH*所需的基础设施不同;并且*BCH*的智能合约尚未经过市场的验证,还不足以吸引这些公司将资源投入到*BCH*预言机中。 https://bitpay.com/ https://chain.link/ https://coin.dance/ https://blockchair.com/ https://www.coingecko.com/ 我们也尝试与其他开发人员合作来建立标准和文档,以便如果我们不得不自己构建工具的话,至少希望这个工具其他人也可以用,能对他人有价值。但是没有人在建立我们所需的能提供使用案例的预言机的智能合约。 于是我们构建了一个**价格预言机**库和一个***oracle***服务,该服务可公开提供给*BCH*生态系统中的其他构建者。 未来我们将重新讨论此事,并尝试寻找外部合作伙伴来运行价格预言机服务。 https://www.npmjs.com/package/@generalprotocols/price-oracle https://read.cash/@GeneralProtocols/anyhedge-beta-is-live-0b4e9379 资金困难 与潜在投资人们见过面后,我们认为团队大有所为,就一同制定了商业计划、股东协议和其他文件。 几个月后,投资人的期望发生了变化,要求也随之不同,我们为此大吵了一架。 我们为再次面临资金的不确定性倍感痛苦,因为我们不知道还能否再找到其他机会。 至此,我们已经自费工作*9*个月了。我们必须要决定再坚持多久,就宣布项目失败。 新的一年,新的烦恼 基础设施融资计划(**IFP**) 2020年初,江卓尔公布了 **矿工抽税方案**。 该提案最初获得了积极的反馈,因为大多数人只能意识到有钱可以带来的好处,但是几周后,很显然IFP的代价是无法接受的。 https://medium.com/@jiangzhuoer/infrastructure-funding-plan-for-bitcoin-cash-131fdcd2412e 尽管引起了社区的广泛担忧,但Bitcoin ABC在其代码库中添加了IFP版本,并将其设置为在5月份升级之前由矿工激活。 我们团队中没有一个人愿意基于这种新规则下的*BCH*构建产品,因此我们不得不做出选择:要么解散,要么解决最根本的资金问题。 构建**Flipstarter** 眼看着比特币现金生态系统处于危险之中,而我们是基于BCH构建产品的,我们转而动用所有可用资源去解决资金问题。 经过一番观察,我们意识到自愿捐款的一个主要问题就是“搭便车”,或者说“不公平”:出钱支持生态系统的矿工对他人毫无贡献就受益的情况感到不满。 我们连轴工作了1个月,终于发布了Flipstarter:一种非托管担保合约的筹款工具,并用它成功筹集了**50万美元** 用于基础设施建设。 https://read.cash/@flipstarter/flipstarter-500k-is-a-success-now-the-real-work-begins-c05253a3 我们在*Flipstarter*上全职开发了近两个月,在社区共同努力和捐赠下,各种各样的项目已经筹集了超过*5,000*个*BCH*(当时总价值约*120*万美元)。 **BCHN**节点 在我几乎专注于开发Flipstarter时,团队的其他成员帮助建立了 **Bitcoin ABC** 的第一个分叉节点作为应急计划,为反对IFP的矿工提供代替方案。 https://bitcoincashnode.org/ 成长为一家承担负责的公司 我们证明了IFP并非解决资金的唯一可行方法,并开始再次把重心放在AnyHedge上。截止到2020年中旬,我们保持了良好的开发进程,不断做出改进。 白皮书 我们发布了**AnyHedge白皮书**, 概述了合约结构并解释了如何利用交易波动风险实现价值稳定,而无需离开BCH生态。 https://anyhedge.com/downloads/AnyHedge%20Whitepaper.pdf 数值分析 我们与Karol Trzeszczkowski合作,发布了AnyHedge智能合约的数值分析。 合约模拟程序 为了帮助交易员更好地了解合同行为,我们构建并发布了在线合约模拟程序。 获得融资 在进行Flipstarter和BCHN的开发工作期间,我们建立了新的关系,找到了新的投资者。 我们展示了能够按计划交付产品的能力,并获得了第一轮超过100万美元的投资。 我们能不能取消**2020**年? 我们最终又回到了AnyHedge的开发上。 我们的自动结算服务正在逐步完善,正当我们开始专注于交易所集成时,意外再次发生了。 ****Grasberg**** https://read.cash/@JonathanSilverblood/the-road-to-anyhedge-1903028c?signature=1e73d6d0ff23e901032683e80e35b5a92cdb19a7001d2225e478854610278847#grasberg 2020年7月, Bitcoin ABC不顾社区的广泛共识,宣布要采用自己的Grasberg DAA算法,此举震惊了整个社区。 Grasberg DAA会因为“过去漂移修正(past-drift correction)”来彻底改变区块生成。 我们的预言机和合约基础设施都是建立在每10分钟出一个块的共识上。我们不得不召开紧急会议,共商对策。 在意识到我们可能要重新设计预言机和合约结构并要延期几个月才能推向市场后,我们对此提出了抗议,并就此事与合作伙伴发表了联合声明。 我直接找到了Amaury,向他解释修改DAA算法将对我们造成重大的破坏性。 他让我最好去适应新规则,并指出有必要更改出块时间预期(使其可预测),以展示他不更改区块时间的决心。 我们能接触到的所有人都对 *Grasberg*算法不满,也不满意*Bitcoin ABC*强行要改变*DAA*算法的蛮横态度,我们与生态伙伴合作 **推出声明** ,共同支持*aserti3-2d DAA*算法。 https://read.cash/@sha256_88ebd526/bitcoin-cash-bch-november-2020-upgrade-statement-f7c03159 **IFP**卷土重来 Bitcoin ABC最终放弃了采用Grasberg DAA算法,但坚持要实施IFP。 这次的版本又推出了一些新的实体来掌管资金,并明确表示“没有讨论余地”。 在与其他人交谈后,我们意识到这将是压死骆驼的最后一根稻草。Bitcoin ABC势必会在即将到来的硬叉中升级中导致网络分裂。 作为一家在努力交付产品的公司,我们需要用户群来使用我们的产品。如果我们一而再的分裂我们的网络效应,最终将没有客户留给我们,我们必将失败。 值得庆幸的是,我们已经通过*Flipstarter*证明了能代替*IFP*的其他可行方案。尽管我们仍然需要花费大量时间来建立关系并告知大家可能发生的多种结果,但情况不会像第一次那样糟糕了。 总结我的**AnyHedge**之旅 就快到*2020*年底了,我原本估计几个月能完成的工作最终却花费了将近两年的时间。 本不应该那么难的。开发者资源和开发者基础设施的缺乏严重影响了*BCH*的币价。 好消息是我们过去遇到的许多问题已不复存在。智能合约工具日趋成熟,文档越来越完善,基础设施得到了赞助。一旦*AnyHedge*能证明建设非托管型金融产品能带来盈利,将会有新的团队和公司进入这个领域并与我们一起成长。 至于产品本身,我们已经完成了开发。*AnyHedge*很快将完成测试阶段,并与非托管交易所*Detoken*共同上线。 ****General Protocols Blog**** This article forms part of the **General Protocols Blog**, a collection of cross-platform links showcasing our team's community activity, Bitcoin Cash projects, UTXO development, and general crypto musings. https://blog.generalprotocols.com/

https://blog.generalprotocols.com

$3.00

17 comments

Log in to join in Reading is open to everyone. Replying needs an account.