Accounts

使用帳戶作為數據儲存

  • June 21, 2017

我對乙太坊相當陌生,我想知道以下情況是否可能。我想要/需要在區塊鏈中儲存一些編碼為 JWT 的數據,並通過 ID (公開)訪問它。只有數據的“所有者”可以更改它,其中 ID 始終保持不變。

據我所知,這是可以通過乙太坊 EOA 實現的:

創建:

  • 所有者創建 EC 密鑰對
  • 所有者創建一個EOA,公鑰成為該賬戶的ID
  • Owner 將 JWT 儲存在賬戶中

檢索:

  • 查看者知道 ID(即所有者的公鑰)。如何在這裡無關緊要。
  • Viewer 從鏈中獲取合約並提取封閉的 JWT

更新:

  • 所有者創建交易以更改帳戶中的 JWT
  • 交易是用他的私鑰簽署的

這是檢查出來還是我在這個概念上有錯誤?也許我誤解了乙太坊或一般 EOA 中的細節是如何工作的。

編輯:澄清:

  • EOA = 乙太坊中的外部賬戶
  • JWT = JSON Web Token,為簡單起見是base64編碼的String,僅此而已

歡迎來到乙太坊——你不會後悔的 :)

從概念上講,我們將數據儲存在智能合約中。這個區塊鏈——基本上是一個昂貴、緩慢和低效的數據庫,可用於儲存數據。更準確地說,您將數據儲存在執行在乙太坊區塊鏈上的智能合約中。我不熟悉 EOA 或 JWT,但基本上你可以編寫一個只有你可以更新的簡單儲存智能合約。比如像這樣

contract storeStuff {
 string content
 address owner;

 // this is the constructor and it sets the owner
 // here we do not allow the owner to be updatable and they are thus carved in stone for eternity!
 function storeStuff() {
   owner = msg.sender;
 }

 function updateContent (string newContent) {
   if (msg.sender == owner)
     content = newContent;
 }
}

您可以在瀏覽器中完全混音玩這個,而無需支付乙太幣的交易費用。有很多更複雜的情況更便宜(就 tx 費用而言),更安全(例如更改所有者),不在合約中儲存數據而只是使用事件,你必須學習如何介面,但這是一個很好的開始案子。

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