這篇文章最初發表於 Medium.
我們很高興推出一種直接在鏈上發行和管理債券的方法。 我們的方法探索將區塊鏈技術融入債券市場,旨在利用其優勢來提高債券發行、交易和管理的效率和可及性。 更具體地說,我們使用智慧合約來自動化和簡化債券協議的各個方面,例如利息支付和債券贖回,減少對中介機構的需求,並透過提供防篡改的所有權和交易記錄來降低交易對手風險。
什麼是債券?
債券是一種債務證券,代表投資者向借款人(通常是政府或公司)提供的貸款。 當個人或實體購買債券時,他們實質上是向發行人借錢,以換取定期支付利息並在債券到期日退還本金。 債券被稱為固定收益工具,因為債券傳統上向債務持有人支付固定利率(票面利率)。 它們是籌集資金的關鍵工具,也是金融市場的基礎。
假設一家公司 ABC Inc. 決定為新的擴建項目籌集資金。 為此,ABC Inc. 發行每張面額為 1,000 美元、固定利率(票面利率)為 5%、期限為 10 年的債券。
如果投資者(我們稱之為投資者A)以1,000 美元購買其中一張債券,他們實際上是向ABC Inc. 借出1,000 美元。作為回報,ABC Inc. 同意以5% 的利率向投資者A支付年利息,相當於每年 50 美元(5 美元的 1,000%)。
在 10 年期間,投資者 A 每年將收到 50 美元的利息。 10 年結束時,ABC Inc. 將向投資者 A 返還 1,000 美元的初始本金。
總結:
- 債券面額:1,000 美元
- 年利率:5%
- 年利息支付:$50
- 到期期限:10年
零息債券
與普通債券不同,零息債券以折扣價發行,並且不定期支付利息。 當債券以面額到期時,投資者即可實現回報。
假設 XYZ 公司發行了面額為 1,000 美元、期限為五年的零息債券。 然而,該債券以折扣價發行,這意味著投資者無需預先支付全部面額。 相反,他們可能會以 800 美元購買債券。
在這種情況下:
- 零息債券面額:1,000 美元
- 購買價格(折扣):800 美元
- 到期期限:5年
執行
零息債券
我們最初的實施以零息債券智能合約為特色,其中單一投資者將資金借給借款人。 這種更簡單的債券結構非常適合用來展示債券智慧合約的基礎知識,可以作為更複雜債券的基礎。 智能合約旨在自動化零息債券的發行、交易和贖回過程。 該合約包括幾個關鍵的公共方法:
- 購買:處理債券的購買,將所有權轉讓給新投資者。
- 成熟:由發行人執行,在債券到期時向投資者支付面額。
- listForSale:允許當前投資者列出待售債券。
- cancelSale:使投資者能夠取消債券的出售。
- 違約:在發生違約的情況下,此方法允許投資者索取合約中鎖定的資產。
該債券具有以下生命週期。
- 發行及銷售: 發行人用債券的面額、到期時間和初始價格來初始化債券。 然後投資者可以購買該債券。
- 貿易: 投資者可以透過掛牌出售並透過購買方式轉讓所有權的方式在二級市場上交易該債券。
- 到期及贖回: 到期後,債券的面額由發行人支付給目前投資者。
- 預設處理: 如果債券違約(發行人未能在到期時付款),違約方法為投資者提供了索償的機制。
在我們的零息債券智慧合約中,發行人必須在部署期間鎖定債券面額的一小部分作為抵押品。 此功能增強了投資者的安全性,在違約情況下提供保障。 如果發行人到期未能付款,投資者可以索取該抵押品。
然而,對於具有既定信譽的發行人來說,這種抵押品要求可以是可選的。 這種靈活性允許值得信賴的發行人選擇不鎖定抵押品,從而使債券發行更加簡化且更具成本效益。
轉換為普通票息債券
我們的智慧合約中從零息債券到定期票息債券的轉變是透過添加 makePayment 方法來實現的。 這種方法使發行人能夠定期向投資者支付利息。
支持多位投資者
雖然仍然可以透過部署多個實例(其總和代表債券的總量)來使用先前的智能合約來支持多個投資者,但也可以在同一實例中追蹤多個投資者。 我們可以儲存一組投資者,而不是只儲存單一投資者的公鑰。
在這種情況下,我們的債券合約的方法需要調整才能管理這個陣列。 例如,在用於投資的方法中,我們將實現如下所示的內容:
法定面額
在實踐中,債券可能以某種類型的法定價值(例如美元或人民幣)計價,而不是迄今為止所示的聰。 我們可以將上述債券合約與代表法定單位的 BSV-20 代幣整合。
合約的高級工作原理基本上保持不變,但付款代表特殊的代幣轉賬,智能合約需要正確處理。 為此,我們可以使用 scrypt-ord SDK。
例如, 投資 公共方法可能看起來像這樣:
結論
完整的程式碼範例可在 GitHub 上存取:
觀看:如何使用 nLockTime 進行商業融資
區塊鏈新手? 查看 CoinGeek 的區塊鏈初學者部分,這是了解更多有關區塊鏈技術的終極資源指南。
資料來源:https://coingeek.com/bonds-on-bitcoin/