Mining
你能讓想要你的代幣的人可以開採乙太坊智能合約代幣嗎?
如果我製作了一個乙太坊智能合約——稱之為 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;
很可能你會忽略交易,只保留隨機數和頭部。