Mining

你能讓想要你的代幣的人可以開採乙太坊智能合約代幣嗎?

  • May 22, 2019

如果我製作了一個乙太坊智能合約——稱之為 simplecoin,我可以將其設置為允許代幣使用者探勘交易嗎?而不是一個會充氣的通用乙太坊礦工?

這可能嗎?

是的,有可能。但是,這取決於您如何定義“挖礦”。

通常挖礦意味著共識協議的行為,例如工作證明或股權證明等。因此它將影響硬幣的創建方式。您需要非常小心以允許執行

coins[msg.sender] += 5;

這意味著創建必須在共識協議的指導下。

這是一個例子。(ERC20)您定義具有以下特徵的新硬幣:

每 100 個區塊,你給代幣持有者 5% 的利益。

func getInterest(){
   if( (coins[msg.sender].lastClainBlk + 100 ) < block.number ){
       coins[msg.sender].balance += coins[msg.sender].balance *RATE;
       coins[msg.sender].lastClainBlk = block.number
   }
}

代幣持有者可以顯式呼叫該函式來索取利息。或者在傳輸過程中隱式完成。

是的,這是可能的。

只需在您的合約中創建一個函式,該函式接受一組交易和一個隨機數:

assert(transactionsValid(transactions));
var new_head = hash(transactions, nonce, blockhead);
assert(new_head < threshold);
coins[msg.sender] += 5;
blockhead = new_head;

很可能你會忽略交易,只保留隨機數和頭部。

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