Solidity

使用智能合約傳遞加密數據

  • January 26, 2019

基於A滿足B要求**的先決條件,我如何利用(也許自動化)智能合約將一些加密數據A傳送到B。我需要一個預言機來進行這種類型的互動嗎?如果需要,如何成功地推出這種通信?

您可以在區塊鏈中對支付行為進行建模,並讓您的下載伺服器監控合約事件。如果地址 A 購買了數據,地址 A 的所有者可以向您的下載伺服器發送一個簽名的 http 請求(使用地址 A 的私鑰簽名),以證明下載請求來自地址私鑰的所有者一種。有了簽名,您的下載伺服器可以檢查區塊鏈上的購買事件,以驗證 A 是否購買了數據並相應地提供文件。

如果您每 t 小時需要 x 數量,這也將起作用。

例子:

contract DigitalDownload {

   ...

   event DigitalDownloadPurchasedEvent(uint time, address purchaser)

   ...

   function purchaseDigitalDownload() public payable {
       require(msg.value == PRICE);

       emit DigitalDownloadPurchasedEvent(now, msg.sender);
   }
}

buyer --- > BC: purchaseService transaction

buyer --- signed http req ---> Server: download content
...the request is signed with the private key of the msg.sender...
...server makes ecrecover on the signature and recovers the public ethereum address of the request sender...

server ---> BC: check `DigitalDownloadPurchasedEvent` exists for the address recovered from the signature and serve the file if yes.

引用自:https://ethereum.stackexchange.com/questions/66152