創業者請考慮代幣的「設計理念」而不僅僅是「代幣經濟」。

原文:7 Sanity Checks Before Designing a Token(a16z crypto)

作者:Guy Wuollet

編譯: Katie 辜,Odaily 星球日報譯者

封面: Photo by Fachrizal Maulana on Unsplash

代幣是一種強大的新原語,可以用多種方式定義。 代幣設計空間非常豐富,但我們仍處於探索的早期階段。

實際上,許多團隊努力為他們的專案找到「正確的」代幣設計。 但行業本就缺乏經過測試的設計框架,因此後人反覆遭遇和前人同樣的挑戰。 幸運的是,也有(少數)早期的成功的代幣設計的例子。 大多數有效的代幣模型都有針對其目標的獨特元素,但大多數有缺陷的代幣設計都有一些常見的 Bug。 因此,本文將討論為什麼我們應該考慮代幣的研究和設計,而不僅僅是「代幣經濟」,並列出了七項「避坑」小技巧。

#1 明確代幣設計的目標

代幣設計中最大的問題是在明確目標之前如何構建複雜的代幣模型。 第一步應該是確定目標,並確保整個團隊能夠完全理解:它是什麼,它為什麼重要,你真正想要完成什麼?  未能嚴格定義目標通常會導致重新設計和浪費時間。 明確目標還有助於避免「為設計代幣經濟而捏造出一個代幣經濟」的問題,這是某些代幣經濟設計的常見現象。

此外,目標應該圍繞代幣本身進行,但這一點往往被忽視。 明確目標的例子包括:

  • 設計一個代幣模型的遊戲,該模型可實現最佳可擴展性和支援建模。
  • 一個 DeFi 協定希望設計一個代幣模型,在參與者之間合理分配風險。
  • 設計一個擔保金錢的信譽協定不能直接替代信譽(例如,通過將流動性與信譽信號分離)。
  • 設計一個能夠保證檔在低延遲情況下可用的存儲網路。
  • 設計一個能夠提供最大經濟安全性的質押網路。
  • 設計一個能夠引出真正使用者偏好或最大參與度的治理機制。

這樣的例子不勝枚舉。 讓代幣可以支援任何用例和達到任何目標,而不是反其道而行。

那麼如何開始定義一個清晰的目標呢?  明確定義的目標通常來自於「專案使命」。 雖然專案使命往往是高層次和抽象的,但目標應該是具體的,並簡化為最基本的形式。

讓我們以 EIP-1559 為例。 Roughgarden 對 EIP-1559 的一個明確目標表述:“EIP-1559 應該在需求快速增長的時期之外,以 '明顯的最佳出價' 的形式,通過簡單的費用估算來改善用戶體驗。 ”

他接着提出了另一个明确的目标:“我们能否重新设计以太坊的交易费用机制,让设定交易 Gas  价格更像在亚马逊上购物般 ‘丝滑’?最理想的是价格发布机制,这意味着一种为每个用户提供一个接受或放弃 Gas  价格的机制”。

这两个例子的共同点是陈述了一个高层次的目标,提供一个相关的类比来帮助其他人理解你的目标,然后继续勾勒出最能支持这一目标的设计方案。

#2 根据基本原则评估现有工作

在创造新事物时,从已有的东西下手研究是一个好主意。当你评估现有协议和现有文献时,应根据其技术优点对其进行客观评估。

代币模型通常根据代币的价格或相关项目的受欢迎程度进行评估。这些因素可能与代币模型实现其既定目标的能力无关。估值、受欢迎程度或其他评估代币模型的简单方法可能会导致 Builder“多走弯路”。如果你假设其他代币模型正常运行,而实际上它们不能正常运行,那么可能会创建一个 “天生带有缺陷” 的代币模型。

#3 阐明你的假设

明确表达你的假设。当你专注于构建代币时,很容易将基本假设视为理所当然。也很容易错误地表达你真正做出的假设。

以一个新协议为例,该协议假设其硬件瓶颈是计算速度。将该假设作为代币模型的一部分(例如,通过限制参与协议所需的硬件成本)可以帮助将设计与期望的行为保持一致。

但是,如果协议和代币设计者没有明确表达他们的假设,或者他们表达的假设是错误的。那么意识到这种不匹配的参与者就有可能从协议中提取价值。黑客通常是那些比最初构建系统的人更了解系统的人。

阐明你的假设可以让人更容易地理解你的代币设计并确保其正常运行。如果不明确你的假设,你也无法验证你的假设。

#4 验证你的假设

有句话说:“不是你不知道的事情让你陷入困境。而是你确信的事情并非如此。”

代币模型通常会做出一系列假设。这种方法部分来自拜占庭系统设计,这是区块链的灵感来源。系统做了一个假设,并建立了一个函数,如果假设为真,则可以保证一定的输出。例如,比特币保证了同步网络模型中的活动性,如果网络中 51%  的哈希算力是诚实的,则保证一致性。几个较小的区块链遭到了 51%  的攻击,违反了中本聪共识要求区块链正常运行的诚实假设数量。

代币设计者可以通过多种方式验证他们的假设。严格的统计建模,通常以基于代理的模型的形式,可以帮助测试这些假设。关于用户行为的假设通常也可以通过与用户交谈来验证,更好是通过观察人们实际做了什么(而不是说他们做了什么)来验证。这样成功验证的可能性较高,尤其是通过在沙盒环境中产生经验结果的激励测试网络。正式的验证或密集的审计也将有助于确保代码库按预期的方式运行。

#5  明确 “抽象障碍”

“抽象障碍”(abstraction barrier)是系统或协议的不同层次之间的界面。它用于分离系统的不同组件,允许独立地设计、实现和修改每个组件。清晰的抽象障碍在所有工程领域,尤其是软件设计领域都是有用的,但是对于去中心化开发和大型团队构建个体无法理解的复杂系统来说更是必要的。

在代币设计中,清除抽象障碍的目标是最小化复杂性。减少代币模型的不同组件之间的(内部)依赖关系可以产生更简洁的代码、更少的 Bug  和更好的代币设计。

举个例子,许多区块链都是由大型工程团队构建的。一个团队可能会对一段时间内的硬件成本进行假设,并用它来确定有多少矿工以给定的代币价格为区块链贡献硬件。如果另一个团队依赖代币价格作为参数,但不知道第一个团队对硬件成本的假设,他们很容易做出相互矛盾的假设。

在应用程序层,明确的抽象障碍对于实现可组合性至关重要。随着越来越多的协议相互组合,适应、构建、扩展和重新混合的能力只会变得越来越重要。更大的构成带来更大的可能性,但也带来更大的复杂性。当应用程序想要组合时,它们必须理解它们所使用的组合协议的细节。

不透明的假设和界面偶尔会导致模糊的 Bug,特别是在早期的 DeFi  协议中。模糊的抽象障碍还增加了处理协议不同组件的团队之间所需的通信效率,从而延长了开发时间。模糊的抽象障碍也增加了协议的复杂性,使得很难完全理解其机制。

通过创建明确的抽象障碍,代币设计者可以更容易地预测特定的更改将如何影响代币设计的每个部分。明确的抽象障碍也使扩展代币或协议变得更容易,并创建一个更具包容性和扩展性的 Builder  社区。

#6  减少对外部参数的依赖

外部参数不是系统固有的,但会影响整体性能和成败,例如在代币模型的创建初期的计算资源的成本、交易量或延迟。

但当代币模型仅在参数保持在有限范围内时才起作用时,可能会出现意外行为。例如,一个出售服务并以固定代币奖励的形式提供回扣的协议,如果代币的价格出乎意料地高,则代币奖励的价值可能大于服务的成本。在这种情况下,从协议中购买无限量的服务相当划算,这会充分利用代币奖励和服务。

或者再举一个例子,去中心化网络通常依赖于加密算法或计算难题,这些难题解决难度大,但并非不可能解决。难度通常取决于一个外生变量,比如计算机计算哈希函数或零知识证明的速度有多快。比如有一个协议,它假设计算给定哈希函数的速度有多快,并相应地支付代币奖励。如果有人发明了一种更快地计算哈希函数的新方法,或者只是拥有与他们在系统中的实际工作不成比例的超大资源来解决问题,他们就可以获得意想不到的巨额代币奖励。

#7  重新验证假设

设计一个代币应该像设计一个对抗系统一样。用户的行为将随着代币工作方式的改变而改变。

一個常見的錯誤是在沒有確保任意用戶行為仍能產生可接受的結果的情況下調整代幣模型。 不要認為用戶行為會因代幣模型的變化而保持不變。  通常這種錯誤會在設計過程的後期發生,有人花了很多時間來定義代幣的目標,定義其功能,並進行驗證以確保其按預期運行。 然後,他們確定了一個特例,並改變了代幣設計以適應它,但忘記了重新驗證整個代幣模型。 通過修復一個特例,他們產生了另一個(或其他幾個)意想不到的後果。

記住不要讓辛苦的工作白費,每當專案更改其代幣模型時,都要重新驗證它是否按預期運行。

免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 本文內容僅用於資訊分享,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。