DigixDAO ETC Withdrawal Proposal V1.1 - Mar 22 2017

Abstract

As DigixDAO raised funds before the Ethereum hard fork, it holds an equal balance of 465,134 ETH and ETC. Digix wishes to create a withdrawal system that allows DGD holders (on the ETH chain) to withdraw ETC from DigixDAO, proportional to their token balance.

As DGDs on the ETC chain are not honored by DigixDAO, a process (similar to the “whitehat” withdrawal contract) is proposed, which will be used to allow DGD holders on the main chain to:

  • Vote on whether the proposed solution should be accepted
  • Submit an address to receive their ETC proportion (to prevent replay attacks)
  • Should the vote pass, receive ETC proportional to their DGD holdings

We are releasing this proposal for public discussion and feedback, with development to begin only whilst third party auditors are reviewing the DGX 2.0 core contracts, which remains our main priority.

Background

In March 2015 DigixDAO raised 465,134 Ether (valued at the time, at 5.5m USD) in return for a distribution of 2 million DGD tokens. In response to an unrelated security incident (“TheDAO Hack”), the Ethereum chain underwent a “hard fork” on July 20th 2015 (at block 1,920,000), which unintentionally caused a “chain split”, and spawned the alternative parallel chain “Ethereum Classic”. As a result of this split, all balances existing before the hard fork remained on both chains, and as of March 2016 the DigixDAO crowdfund balance consists of 465,134 in both Ether (ETH) and Classic Ether (ETC).

Due to already-exploited “replay attack” concerns, DigixGlobal announced before the hard fork that DGD tokens will reside on the main chain that is supported by the Ethereum Foundation, and as such, balances of “DGD Classic” became (and still are) valueless.

This meant that the ETC balances are not directly related to DigixDAO governance proposals. However, the same mechanism that allows DigixGlobal to transfer the crowdsale balance into the Digix Governance contracts (once they are published) could allow for the balance of ETC to be transferred into another custom contract (such as a multisig wallet or withdrawal contract), which would then allow the ETC blance to be withdrawn safely.

Without on-chain governance tools available at the time of the hard fork, Digix could not receive a clear mandate from DGD holders on the moving of ETC funds, and both the ETC and ETH funds have remained in the Digix crowdsale contract. Ever since, much community discussion have occurred and there appears to be a general consensus among DGD holders that action should be taken on the additional ETC balance as a priority.

A security mechanism was built in to the original crowdfund contract for unforeseen situations such as a hard fork, which allows DigixGlobal to withdraw the crowdfund in the case of emergency. This mechanism can be used to withdraw the ETC.

Utilising ETC

After discussion internally and within the DGD holder community, there is a number of potential options for utilising the ETC:

  1. “Burning” (or leaving the ETC in the abandoned “Classic Crowdfund” contract forever)
  2. Using the ETC in the same way DigixDAO would ETH by:
  • Trading the ETC into ETH and adding to the DigixDAO ETH pool
  • Trading into DGX, DGD or other Crypto assets and transferring ownership to DigixDAO

3. Refunding ETC to DGD holders

Option one (1) was quickly ruled out as a waste of contributed funds.

Option two (2) presents problematic operational complications and legal obligations to DigixGlobal at this early stage, including:

  • The process of directly selling the ETC on exchanges for ETH (opening up the possibility of frontrunning accusations) and/or
  • Time needed to source an OTC buyer who is willing to publish the transaction record and entering into a contractual agreement at a defined price which could lead to further mispricing accusations
  • Taking a legal custodial role in the trading and re-distribution process
  • Seeking and financing legal advice on the above overall process in Singaporean jurisdiction

If DigixGlobal either directly or indirectly took the role of trading ETC into any other asset, it would present significant financial and legal difficulties reduces the separation between DigixGlobal and DigixDAO, as well as present complications regarding fairness of the trade(s) being made. Ultimately, this would burden operations and potentially put the entire Digix project at risk at this nascent stage.

The Proposal

In light of the above difficulties, an option was needed that absolved DigixGlobal of any direct role in the trading of ETC. Option three (3), to allow DGD holders to reclaim the ETC, is the only remaining approach, and has past precedent (happening similarly with “The DAO withdraw contract” and subsequent “whitehat” withdraw contract).

In the spirit of DigixDAO and to preserve a legal compartmentalisation, DGD holders must be able to “vote”, in order for DigixGlobal to receive a mandate on the actions taken to transfer the ETC funds to various parties. In practice, this means that any voting or withdraw contract should have a “no” vote option, whereby the proposal is vetoed and no immediate action is taken in the case that a majority of voters (based on DGD balance) vote “no” (and a revised proposal is created at a later stage).

As the DigixDAO governance model (including Smart Contracts deployed on the main chain for voting) is not yet available, an alternative is presented that utilises components of:

  • On-chain Voting Contract
  • A “CarbonVote” to reduce complexity of locking DGDs
  • Manual withdrawal processing
  • Withdrawal contract on ETC chain (perpetually available for non-voters)

CarbonVote

Given that the outcome of this vote will not hook-in with the DigixDAO governance model (as ETC cannot be directly controlled by the ETH DigixDAO), a less complex and more convenient mechanism is proposed for tallying votes.

Inspired by http://carbonvote.com/, a “CarbonVote” system is proposed. CarbonVote was used in the past by the Ethereum Foundation to determine the default behaviour of the Geth client during the decision making process of the hard-fork.

It is proposed that a similar CarbonVote system is set up by DigixGlobal to facilitate the decision making process for the ETC withdraw, allowing for DGD holders to simply and atomically send a zero-value transaction to an on-chain voting contract without sending their entire DGD balance. On the “closing block”, an off-chain ‘snapshot’ of votes will be tallied up based on the DGD balance of the voters on that block (thereby preventing double spends), with each DGD being each worth one vote. This tally is verifiable by third parties, and a CSV tally of votes will be published to IPFS.

This proposed solution is the best balance of convenience, security and simplicity, whilst removing the risk of the vote process being “hacked” (as DigixGlobal will simply ignore the results should any unforeseen exploits be used in the voting mechanism).

Some additional specifics:

  • Those who participate in the voting process regardless of “yes” or “no” vote, will receive ETC to the provided ETC address should the vote pass as “yes”.
  • To prevent spam, a minimum amount of 1 ETC (4.3 DGD) per account will be considered as a “valid vote” at the “closing block”.
  • Gas fees will be paid by the recipient account on the ETC chain and deducted from the withdrawal payment.
  • In the interests of fairness, the batched “refund” transactions (the transactions made to transfer the reclaimed ETC to voter’s addresses) will be created and published in batches in a random order, the seed of which will be generated on the block hash of the “closing block”

Deliverables

  • Open sourced voting Smart Contract with one method (deployed to ETH chain): 
    vote(bool _approve, address _etcAddress);
  • UI for voting & displaying vote results
  • Instructions for voting with Mist / Parity / MyEtherWallet / LedgerNano
  • Open source script for taking the ‘snapshot’ of the “closing block” and tallying votes
  • Open source script using the block hash of the “close block” for randomised sorting of refund transactions
  • Withdrawal contract on ETC chain for unclaimed funds (to be developed at a later stage if the vote passes)

Unclaimed Funds

After the initial refund process, there is a high likelihood that a portion of DGD holders will have not participated — either because they have forgotten about their DGD balance, are dis-engaged with the ecosystem, have too small a balance to consider it worthwhile engaging in the voting process (although this may change should the price of ETC increase), or simply didn’t have time to participate in the original main-chain refund process. The result is that some proportion of the ETC will inevitably remain unclaimed.

There are 3 options as to what happens to this unclaimed ETC:

  1. The remaining balance is divided up proportionally to the participating voters
  2. The remaining balance is given to DigixGlobal
  3. A post-vote withdrawal contract is published on the ETC chain to allow non-participants to reclaim ETC for perpetuity

Options one (1) would and two (2) use up all the remaining ETC at the end of the voting process, but as some proportion of DGD holders may not participate, it would be seen as unfair and present legal / political issues. Therefore option three (3) is the only reasonable course of action.

Option three (3), whilst less convenient to participate in than the initial vote (and requires publishing transactions on the ETC chain from the same account as the ETH chain), would provide a perpetual pathway for non-participating DGD holders to claim their proportion of the remaining ETC.

This contract would be developed and deployed only if the vote passes, the specifics of which will be confirmed at a later date, but will most likely be in the form an EIP20 “Redeem Token”, which would be added to the balance of the non-participating voters on the ETC chain. This token would be transferable (to allow users to avoid replay attacks), and have the option of being “burned” (to prevent double spends); thereby returning an ETC balance proportional to the tokens that are burned. Costs associated with deploying and setting up the ledger for this contract (gas fees), will be deducted from this withdraw contract’s balance.

Instructions on how to perform this withdrawal safely will be published, but no commitments in terms of developing a dedicated UI will be made by DigixGlobal.

Timelines

There will be several milestones throughout the process of this withdrawal proposal process

  1. A period for community to discuss and critique this proposal
  2. Only after the completion of the DGX 2.0 contract system ( whilst they are being audited by third parties), and depending on the outcome of the discussions, a to-be-determined period for the development of the contracts and UI required for the voting process
  3. The voting window itself (a period of one month is proposed, with one week’s notice before it begins)
  4. Should the voting pass, an additional two weeks for the votes to be tallied, verified and for the withdrawal processing script to be initiated
  5. A short period for the processing of withdrawal transactions (in random order)
  6. A-to-be determined amount of time for the implementation of the non-participant withdrawal contract (on ETC chain).

This particular voting proposal is important and significant for DigixDAO as it is a precursor to governance and voting when DigixDAO governance contracts are deployed. It will allow all DGD holders to publicly ‘beta test’ and gain valuable insights on DGD voting, interest and participation in the near future. In short, we will be able to use this current, low risk proposal to better enhance and improve upon our DigixDAO governance model.

The development of this system could also be utilised in future for similar (or emergency) decision making votes, and importantly does not require the transfer of DGD for participation, yet still accurately reflects the decision making of DGD holders.

Voting via DGD listed Exchanges

We will be reaching out to centralized DGD listed exchanges (Bittrex, Yunbi and Gatecoin) to improve the efficiency of voting on this proposal.

  • Yunbi is on board with facilitating the refund process by taking a snapshot of their balance sheet in line with with the withdrawal contract
    (TBC if they will provide an option for their users vote)
  • Bittrex tbc
  • Gatecoin tbc

As DigixGlobal is independently ran with these exchanges, we can only propose that they provide a simple UI to perform voting on their platform or automatically crediting ETC balances of DGD holders based on a timestamp, so that users who store DGDs on DGD related exchanges do not need to withdraw their tokens to participate in the voting process. We cannot guarantee that they will adopt this approach at this moment and will make further public announcements if and when they do so.

DigixDAO Crowdsale address

By refunding the ETC, DigixGlobal will need to take security measures to protect the ETH currently within the DigixDAO funding address. The private keys for this particular address will have to move out of cold storage and for the very first time be online to refund the ETC (as it shares the same address as the ETH), hence, a security precaution is needed where it is necessary for the ETH funds to be moved into a new DigixDAO funding address. The new DigixDAO funding address will be posted, published, and updated on Etherscan’s current DigixDAO information page.

PDF Version at https://www.digix.io/docs/DigixDAOETCWithdrawProposal.pdf