Change Address (voting pools)

From Open Transactions
Revision as of 22:06, 17 April 2014 by Justusranvier (talk | contribs) (Initial page creation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Introduction

In order to fufill the design criteria of voting pools, change outputs generated from withdrawal transactions must be sent to deterministically-generated addresses.

Procedure

Any change generated by a withdrawal transaction is sent to an address in the active change series. Addresses in the change series are differentiated from addresses in the deposit series by presenting the pubkeys in the output scripts in reverse standard order. Example

Assume voting pool has just started with deposit series 1 being hot, and deposit series 20 being active. Change outputs created from withdrawals taken from deposit series 1 will be sent to change series 20. The standard order of the xpubs in series 20 is: y20, z20, w20.

The first three change-generating transactions will use the following output scripts:

OP_2 w20(1) z20(1), y20(1) OP_3 OP_CHECKMULTISIG

OP_2 w20(2) z20(2), y20(2) OP_3 OP_CHECKMULTISIG

OP_2 w20(3) z20(3), y20(3) OP_3 OP_CHECKMULTISIG

Notice again that the servers are presented in reverse standard order, to indicate the script is for a change address, not a deposit address.