去中心化defi金融信貸平臺開發設計邏輯及原始碼分析

v_ch3nguang發表於2023-05-10

去中心化金融信貸平臺是一個去中心化的數字貨幣交易平臺,旨在提供一種可靠的、去中心化的金融信貸服務。這些平臺不受任何中央機構或金融機構的控制,而是由使用者和其他節點進行自主管理。


在去中心化信貸系統中,“數字貨幣商品”的擁有者可以成為擔保人,為借貸使用者提供擔保,借貸使用者的借貸過程不需要中心機構對借貸請求進行響應與確認,從而實現去中心化的信貸系統。


在去中心化信貸系統中,“虛擬貨幣商品”更加便於使用和流通。對於基於區塊鏈的“數字貨幣商品”,當未持有“虛擬貨幣商品”的新使用者需要使用“數字貨幣商品”,且具體需求量不定時,需要分次進行兌換。每次兌換均需要“虛擬貨幣商品”交易所對兌換請求進行響應。而在去中心化信貸系統中,未持有“虛擬貨幣商品”的新使用者可以透過借貸高效快捷地使用“數字貨幣商品”。


去中心化信貸系統的設計思想如下。

1、在擔保人的擔保下,借貸人透過鑄造“虛擬貨幣商品”實現借貸。

2、在借貸週期內,借貸人透過銷燬“虛擬貨幣商品”實現還貸。

3、如果在借貸週期內借貸人未還款,發生貸款逾期,則銷燬擔保人的一部分“虛擬貨幣商品”實現債權轉移。

接下來,給出去中心化信貸系統的總體描述。

在去中心化信貸系統中,擔保使用者透過向系統中一個具有特殊功能的賬戶轉賬來建立擔保資格,擔保使用者為借貸使用者提供擔保,當具有擔保資格的擔保使用者為借貸使用者提供擔保之後,借貸使用者可以發起借貸交易,礦工驗證擔保使用者的擔保資格和借貸交易的有效性,並將有效借貸交易打包上鍊之後,借貸過程完成。之後借貸使用者可以使用貸款進行支付和流通。

在貸款週期內,借貸使用者透過向去中心信貸系統中一個特定的只能轉入無法轉出的賬戶轉入“虛擬貨幣商品”實現還貸。

當出現貸款逾期,即貸款週期內借貸使用者沒有還貸時,礦工將擔保使用者的一部分“虛擬貨幣商品”轉到無法轉出的賬戶實現債權轉移,並得到一筆費用作為發現逾期貸款的獎勵。

以上為去中心化信貸系統的設計思想,值得注意的是,去中心化信貸系統的構造透過擴充套件區塊鏈的共識協議實現,而這種擴充套件方式不依賴於特定的共識演算法,可以在任何底層共識協議上實現。


以下是一個簡單的去中心化金融信貸平臺開發原始碼demo,僅供參考:


// 引入依賴  

const axios = require('axios');  

  

// 建立P2P信貸閘道器  

class P2PGateway {  

  constructor() {  

    this.peers = [];  

    this.lastRequest = null;  

  }  

  

  // 連線到某個節點  

  connect(node) {  

    this.peers.push(node);  

    return new Promise((resolve, reject) => {  

      node.on('message', (data) => {  

        this.processMessage(data);  

      });  

      node.on('disconnect', () => {  

        this.peers.splice(this.peers.indexOf(node), 1);  

      });  

    });  

  }  

  

  // 傳送訊息到所有節點  

  sendMessage(message) {  

    this.lastRequest = message;  

    return new Promise((resolve, reject) => {  

      this.peers.forEach((node) => {  

        if (node.isConnected) {  

          node.send(message).then(() => {  

            resolve();  

          }).catch((error) => {  

            reject(error);  

          });  

        }  

      });  

    });  

  }  

  

  // 處理接收到的訊息  

  processMessage(message) {  

    if (message.type === 'loan') {  

      const loan = {  

        amount: message.amount,  

        from: message.from,  

        to: message.to,  

        timestamp: message.timestamp  

      };  

      this.peers.forEach((node) => {  

        if (node.isConnected) {  

          node.send(loan).then(() => {  

          P2P信貸閘道器用於連線到其他P2P借貸節點,併傳送和接收訊息。P2P借貸協議用於建立新的借貸請求併傳送到所有P2P借貸節點。  

  

在此demo中,P2P借貸協議僅包含一個`createLo


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70028290/viewspace-2951238/,如需轉載,請註明出處,否則將追究法律責任。

相關文章