# Taxonomies of Available Data, or: consequences of Information Flow Control for application developers

**URL:** <https://forum.anoma.net/t/taxonomies-of-available-data-or-consequences-of-information-flow-control-for-application-developers/684>\
**Category:** Protocol Design\
**Created:** [July 16, 2024, 5:01pm UTC](https://forum.anoma.net/t/taxonomies-of-available-data-or-consequences-of-information-flow-control-for-application-developers/684 "2024-07-16T17:01:50Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![Michael](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.anoma.net/michael/32/434_2.png) [@Michael](https://forum.anoma.net/u/Michael)\
**Post date:** [July 17, 2024, 12:00pm UTC](https://forum.anoma.net/t/taxonomies-of-available-data-or-consequences-of-information-flow-control-for-application-developers/684/4 "2024-07-17T12:00:37Z")

</div>

> [@degregat](#):
>
> Since commitments are the hash of the resource the correspondence of commitment → resource is clear, and the data can be retrieved, should it be available to the user making the request.

How can we retrieve the resource plaintext associated with a commitment in practice?

In [Constraint linearity in the resource machine - #36 by vveiln](https://forum.anoma.net/t/constraint-linearity-in-the-resource-machine/670/36) @vveiln mentioned the specs:

> **Resource Logic Public Inputs:**
> 
> - nfs \subseteq nfs\_{tx}
> - cms \subseteq cms\_{tx}
> - tag: \mathbb{F}\_{tag} — identifies the resources being checked
> - extra \subseteq tx.extra
> 
> **Resource Logic Private Inputs:**
> 
> - input resources corresponding to the elements of nfs
> - output resource corresponding to the elements of cms
> - custom inputs

Will these input resource plaintexts being part of the private inputs be in

- the key-value map of the node with the cm as the lookup key or
- the key-value map in the tx extra data with the cm as the lookup key or
- a set in the extra data (which would mean that we have to iterate brute-force over them to find the matching one)  
?

> [@degregat](#):
>
> For nullifiers, that is less clear: If the resource and the nullifier key are available to a user, they can compute the nullifier.  
> Are there any cases where users are supposed to have access to nullifiers and resources, but not their keys? (@vveiln)  
> If that is the case, do we want to provide a map that ties nullifiers to resources?

In the v2 specs, we at least have the tag now as a logic function public input, which is either the commitment cm or nullifier nf, depending on if the resource is created or consumed according to @vveiln (see [her post](https://forum.anoma.net/t/constraint-linearity-in-the-resource-machine/670/38))

But, as above and as @degregat writes, it is unclear how one can connect nullifiers with output resource plaintext outside the tag in case we need to (that I didn’t encounter yet) since we also lack the nullifier keys. Maybe a resource logic would want to check that certain properties of other the consumed resources hold, e.g., that none has a quantity \> 10.

---

_[View the full topic](https://forum.anoma.net/t/taxonomies-of-available-data-or-consequences-of-information-flow-control-for-application-developers/684)._
