Research Article

A Blockchain-Based Sealed-Bid e-Auction Scheme with Smart Contract and Zero-Knowledge Proof

Algorithm 1

The sealed-bid auction smart contract.
contract SealedBidAuction {
  struct Bid {
   bytes32 sealedBid;
   uint bidDeposit;
  }
  uint public biddingEndTime;
  uint public revealEndTime;
  function bid(bytes32 _sealedBid)
   public
   payable
   onlyBefore(biddingEndTime)
  {...}
  function open(uint[] _values, bytes32[] _secret)
   public
   onlyAfter(biddingEndTime)
   onlyBefore(revealEndTime)
  {...}
  function finish()
   public
   onlyAfter(revealEndTime)
  {...}
}