Deliveries in Multi-Datatrust Markets

In a single datatrust data market, there isn’t much choice about who’s responsible for making a delivery. The single datatrust takes on the responsibility for handling all deliveries of paid data in the system. In a multi-datatrust system, the situation changes quite a bit. If there are 3 datatrusts, (say A, B, C), which of these datatrusts is responsible for taking on the responsibility for making the delivery paid for by a user?

Given no incentive, a rational datatrust operator would likely choose not to make any deliveries to avoid effort. Luckily for us though, there exists a natural incentive for a datatrust to undertake a delivery: receiving the datatrust fee for the given delivery work. It makes sense that only the datatrust that undertakes the delivery should receive this fee. In our example above, if only one of A, B, and C can receive the fee, then a natural competition is created between datatrusts to win the privilege of performing the delivery in return for a fee.

Then the question becomes who should receive the job and concomitant payment. A simple solution might be to use a source of on-chain randomness to select one of the datatrust for the task. A different alternative might be to require datatrusts to bid for the job, with the job going to the lowest bidder. (To make this more robust, a Vickrey auction should perhaps be used instead of a simple lowest price). Either of these alternatives should allow for straightforward selection of the winning bid for the delivery. With atomic data delivery implemented, we would still have a high degree of confidence in the work of the chosen datatrust.