W3C home > Mailing lists > Public > public-interledger@w3.org > May 2016

RE: Composable Conditions

From: Joanne Friedman <joanne.friedman@connektedminds.com>
Date: Thu, 19 May 2016 08:49:15 -0400
To: "'Stefan Thomas'" <stefan@ripple.com>, "'Interledger Community Group'" <public-interledger@w3.org>
Message-ID: <!&!AAAAAAAAAAAYAAAAAAAAAPW2LRzx5tREqEzueIKDGCrCgAAAEAAAAGCWZg6m/jlCvxMDZdVoxlABAAAAAA==@connektedminds.com>
Condition Choreography

 

From: Stefan Thomas [mailto:stefan@ripple.com] 
Sent: Wednesday, May 18, 2016 7:19 PM
To: Interledger Community Group <public-interledger@w3.org>
Subject: Composable Conditions

 

Hi list,

 

During one of the recent community group calls we promised that we would work on a better nomenclature for crypto-conditions.

 

The main criticism we heard was that it seemed like it was called crypto-conditions based on a very narrow use case (triggering events based on signatures) in five-bells-ledger and that using them for multi-sig was going to be a more common use case.

 

However, one person also commented that hashlocks aren't really signatures. (We've called them zero-bit signatures before, but that's like calling a road a "zero-river bridge".)

 

I've discussed the terminology with Evan and here is what we propose:

 

Composable Conditions are a standard for cryptographic one-way functions and ways to compose them.

 

The idea here is that "condition" is actually broader than "signature". A signature verification algorithm is a function which returns a boolean: valid/invalid. A hashlock is also a function which returns a boolean: valid/invalid. In the future we may add a scriptable condition, but it would still return true or false. The general term for a thing that returns true or false is a "condition".

 

Once you think about the idea of a "condition", you can also understand the use cases for this standard. Conditions can be triggers for events, but they can also be used for authentication ("accept any command that meets this condition".)

 

The term "condition" also neatly expresses what we think is not in scope: Our spec specifically does not allow you to perform computation (returning values other than true or false.)

 

Aside from the fact that it abstracts the condition type, the other significant feature of the standard is that it provides condition types which are a composition of other conditions.

 

That's why we propose "Composable Conditions" as the new name. Please let us know your feedback in this thread!

 

- Stefan
Received on Friday, 20 May 2016 16:04:22 UTC

This archive was generated by hypermail 2.3.1 : Friday, 20 May 2016 16:04:23 UTC