Comment on page
履歴ハッシュ値記録
EVMのOpcodeの中でもストレージ格納の際に実行される"SSTORE"はコストが高く
、目的を達成するにはeventを使用すれば充分といえます。
イベントのパラメーター(topic)は以下の通りです。
eventSig
:イベント名。Ethereumの関数シグネチャと同様に、記録したいイベント名をKeccak256 hashして、その先頭4byteを指定する。
createdAt
:記録日時
ipfsHash
:IPFSハッシュ
無関係なログや不正なログを記録できないようにするため、OpenZeppelinのライブラリ(WhitelistAdminRole.sol)を用いてスマートコントラクトのオーナーのみが実行できるようにしています。
以下にソースコードの抜粋を示します。
// eventSig is the first 4 bytes of the Keccak256 hash of event name
// auction_bidding: 0x636fe49e
// auction_receipt: 0x4997644b
// bancor_trading: 0x285a30e1
event Recorded (bytes4 indexed eventSig, uint256 indexed createdAt, bytes32 ipfsHash);
/**
* @dev Write ipfsHash as log
*/
function writeHash(bytes4 _eventSig, bytes32 _ipfsHash) public onlyWhitelistAdmin {
emit Recorded(_eventSig, uint256(now), _ipfsHash);
}
CTはFiNANCiE Lightningを通して、オフチェーン+取引履歴の公開+ハッシュ値のオンチェーン化という組み合わせで提供しています。CTは前項の理由から現時点ではオンチェーンのウォレットに引き出すことはできません。すべてのCTの流通および利用はFiNANCiE(クラウドファンディング2.0)内に閉じて行われています。
Last modified 9mo ago