<div dir="auto">Hi Bruce,<div dir="auto"><br></div><div dir="auto"><div dir="ltr" style="font-family:sans-serif">On Wed, May 8, 2019, 9:28 PM Bruce Perens via License-review <<a href="mailto:license-review@lists.opensource.org">license-review@lists.opensource.org</a>> wrote:<br></div><blockquote style="font-family:sans-serif;margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Van,<div><br></div><div>Let's please get more specific regarding blockchain, since that is the target of the customer.</div><div><br></div><div>Anna puts data in a blockchain, and her digital signature. She holds some right to this data.</div><div>Betty then processes the blockchain, adding data and her own digital signature. Because it's a blockchain, Betty's added data is necessarily derivative of Anna's.</div><div><br></div><div>Anna asks Betty for her data. What does Betty have to provide?</div><div><br></div><div>1. Only the data that Anna fed into the system.</div><div>2. The data that Anna fed into the system, and Betty's data which is derivative.</div><div>3. #2, plus the secret key that Betty used to manipulate Anna's data.</div></div></blockquote></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">Short answer: Possibly nothing. If anything, then only (1).</div><div dir="auto"><br></div><div dir="auto">Longer answer: In order for Betty to have a duty vis a vis Anna, Anna needs to be a Recipient of the Work from Betty. Just putting your data out into the wild does not create duties downstream for anyone who happens to get the data. The duty is personal to each Recipient. See CAL 2.3(b). </div><div dir="auto"><br></div><div dir="auto">Let's assume for the sake of the hypo that Betty is providing services to Anna that make Anna a Recipient of the Work from Betty. In which case, Betty will need to make available to Anna the User Data provided by Anna - your #1.</div><div dir="auto"><br></div><div dir="auto">The CAL does not contain a concept of "Derived Data," so I am somewhat unsure how to respond to your #2. Regardless, Anna does not have a Lawful Interest in Betty's derivative data, so the CAL does not create any duty.</div><div dir="auto"><br></div><div dir="auto">Given that there is no duty to provide the "derivative" data of #2, any keys used to manipulate the data are also irrelevant (your #3). </div><div dir="auto"><br></div><div dir="auto">Anticipating possible questions:</div><div dir="auto"><br></div><div dir="auto">Q: What if Anna's data is encrypted by Betty while in Betty's possession? Does Betty need to give up her key then?</div><div dir="auto"><br></div><div dir="auto">A: No. If the encryption is reversible, then Betty must decrypt Anna's data in order to provide it to her unencrypted, but the encryption key used by Betty can stay secret. </div><div dir="auto"><br></div><div dir="auto">If the encryption is irreversible, then the information is likely "not available" to Betty, so the duty doesn't apply. If the application does process Anna's User Data somehow while it is in the encrypted state, then the encrypted User Data must be made available to Anna so that she can process that data in the setting of her choice.</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><blockquote style="font-family:sans-serif;margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br></div><div>Note your definition of "Source Code":</div><div><br></div><div><span style="color:rgb(36,41,46);font-family:'-apple-system','blinkmacsystemfont','segoe ui','helvetica','arial',sans-serif,'apple color emoji','segoe ui emoji','segoe ui symbol';font-size:16px">o) “Source Code” means the form of the work preferred for making modifications, including any comments, design documentation, help materials, installation instructions, <b>cryptographic keys</b>, and any information reasonably necessary to compile the Source Code into Object Code <b>or Process User Data</b> using generated Object Code.</span> <br></div><div><br></div><div>Emphasis mine. Perhaps modulated by a comma, the definition of source code seems to include cryptographic keys used to process user data.</div></div></blockquote></div><div dir="auto"><br></div><div dir="auto">This is mixing two different concepts.  The above concerns User Data, this concerns source code. If Betty has a code signing key necessary to execute the object code, then that code signing key must be provided so that Anna can compile and run the source code in other contexts. This is exactly the same as the requirement to provide keys under the GPLv3's complete corresponding source.</div><div dir="auto"><br></div><div dir="auto">Thanks,</div><div dir="auto">Van</div><div dir="auto"><br></div><div dir="auto"></div></div>