Re: DIS: Ideas for Obligation System Development

2019-11-09 Thread Nch via agora-discussion
‐‐‐ Original Message ‐‐‐
On Thursday, November 7, 2019 4:31 PM, Aris Merchant 
 wrote:

> Okay, I've had a bunch of ideas for developments around contracts and the
> like. I've been working on a proposal, but I wanted to solicit public
> comment before going ahead with it.
>
> -   Create an office of Notary, responsible for tracking contracts, pledges,
> and promises (see below). I don't particularly have the resources to do
> this myself, but I'm sure someone would volunteer. Between thee three
> systems, there would IMO be enough to track that an officer is warranted.
>
> -   Reenact the promise system [1]. Yes, I'm aware this could be done with
> contracts. However, no one is likely to do the work without a standard
> architecture, which doesn't technically need to be in the ruleset, and it
> makes sense for the Notary to track them, which does need to be in the
> ruleset.
>
> -   Enact a lightweight system for governing commercial transactions, along
> the lines of the "trade order" thing, but stripped down enough that it can
> fit in a short rule
>
> -   Optionally, redefine all of the above so that everything is just defined
> as a type of contract. This would involve making contracts in general
> slightly more powerful.
>
> [1]
> 
> https://mailman.agoranomic.org/cgi-bin/mailman/private/agora-official/2013-June/010166.html
>
> -Aris
>

I'm very for this. I also think we should keep contracts in and be very 
hesitant to repeal them again. We tend to repeal them when they're not being 
used, then want them, reinvent them, and find new problems with the new 
versions.


Re: DIS: Ideas for Obligation System Development

2019-11-08 Thread Jason Cobb

On 11/7/19 11:20 PM, Aris Merchant wrote:

1. Contract patency. A pact is made the same way a contract is made
now, but has only the powers suggested by G. To become a contract, a
pact is made patent. This can by done with the consent of the parties
by publishing the full list of parties and the text. If the pact is
made in public, the intent of the parties to make it patent is
presumed. A contract (that is, a patent pact) CANNOT have a change to
its party list or text that isn't made in public.


Implementation question: when a contract changes its text, does that 
mean the change simply doesn't take effect until someone bothers to 
publish the updated full text?




2. Covenant introduction. Covenants are a class of entity that have a
set of persons who are privy to the covenant and a subset of that set
who the covenant is binding upon. A covenant cannot become binding
upon a person without their consent. A covenant's properties can
generally be changed either i) with the consent of everyone who is
privy to that covenant; or ii) without objection.


If I'm understanding what you mean by people being "privy" to the 
covenant, then how is consent determined? It seems meaningless (or at 
least weird) to have to publicly consent to changes to a private document.




This could be done
by moving the special case text for pledges to apply to all covenants,
in an excellent example of the DRY benefits of a consolidated
architecture.


I'm thinking back to my attempt at "binding" entities, and I didn't make 
pledges binding because they aren't phrased in the same way that 
contracts/rules generally are. "I will foo if bar" vs "Jason Cobb SHALL 
foo if bar." I don't think it's unimplementable, I just think this would 
require some careful wording or changes to the way that people would 
make pledges.




3. Promise introduction. A promise behaves roughly as it did in 2013.
A promise is a covenant which is privy to its creator and its owner
and becomes binding upon its creator at the time it is cashed.


Oooh, this sounds interesting. I'd been doing some archives diving and 
seen promises, but I hadn't quite gotten/bothered to look up how they 
worked. Thanks for the link!




Potential objections:
A) Covenants are too complicated. Answer: This is... actually a very
fair objection. Generality always means a more complex system. On the
other hand, this unifies a bunch of existing systems that have many
things in common. Nothing else actually depends on introducing
covenants. I like the idea of getting rid of redundancies, and I think
it could be done in a way that isn't too complicated. However, it's
possible others will disagree.


I don't think they're too complicated in principle, but I think it would 
come down to how the wording is written.




Thoughts?

-Aris


Seems like a good idea to me.

--
Jason Cobb



Re: DIS: Ideas for Obligation System Development

2019-11-07 Thread Aris Merchant
On Thu, Nov 7, 2019 at 3:28 PM Jason Cobb  wrote:
>
> On 11/7/19 6:20 PM, Kerim Aydin wrote:
> > I was working on a Contract fix back in Sept that I have some
> > half-finished language for.  It:
> >
> > - Defines public contracts, and requires contracts to be public in
> > order to hold currency or authorize act-on-behalfs or ENABLE anything
> > else at all.  Was undecided on whether the Notary should be brought
> > back to track these.
> >
> > - Creates private contracts (I called them "deals" in the draft).
> > Private contracts don't ENABLE any new abilities, they just say things
> > like "Person X will do A and Person Y will do B".  Their use is that
> > if one party fails to hold up their bargain, it's a crime and the
> > other party can seek penalties.
> >
> > Dunno how exactly this interacts with trades and promises, but if
> > we're re-thinking the system we should*definitely*  fix the
> > public/private issue in contracts too.
> >
> > -G.
>
>
> Oh, I just remembered a potential issue I saw with the current contracts
> a while back. Right now, I don't think it's possible for a contract to
> create a requirement that won't be punished as a Class 2 Crime, since
> the current enforcement is a simple "SHALL".
>
> I don't know if that's really an issue or if it would be complicated to
> fix, but I just wanted to mention it.

ARIS'S MASTER OBLIGATION PLAN
(Each list in this plan uses a different numbering/lettering
convention for clarity of reference; sorry if that offends anyone.)

Plan for solving the problems mentioned in the thread and making the
changes I've proposed (each step is probably a different proposal, to
stop excessively complex and hard to review changes from happening at
once):
1. Contract patency. A pact is made the same way a contract is made
now, but has only the powers suggested by G. To become a contract, a
pact is made patent. This can by done with the consent of the parties
by publishing the full list of parties and the text. If the pact is
made in public, the intent of the parties to make it patent is
presumed. A contract (that is, a patent pact) CANNOT have a change to
its party list or text that isn't made in public.
2. Covenant introduction. Covenants are a class of entity that have a
set of persons who are privy to the covenant and a subset of that set
who the covenant is binding upon. A covenant cannot become binding
upon a person without their consent. A covenant's properties can
generally be changed either i) with the consent of everyone who is
privy to that covenant; or ii) without objection. A pact is a
covenant, privy to and binding upon its parties. A pledge is a
covenant, binding upon its creator and privy to all players. This
would probably be a good time to introduce Jason Cobb's crime level
changes, since they likely apply to all covenants. This could be done
by moving the special case text for pledges to apply to all covenants,
in an excellent example of the DRY benefits of a consolidated
architecture.
3. Promise introduction. A promise behaves roughly as it did in 2013.
A promise is a covenant which is privy to its creator and its owner
and becomes binding upon its creator at the time it is cashed.

Steps I'm not sure when to do, and which could potentially be merged
with any of the above:
a) Introduce the Notary to track whichever then exist of contracts,
pledges, and promises.
b) Revise the general definition of consent. Persons consent to i)
whatever they consent to under the current rules; ii) whatever a
contract (should this be "public covenant" where that's defined as
contract, pledge, or promise?) they are bound by to says they consent
to. Contracts consent to whatever their text says they consent to.
c) Introduce trades, which depend on b if they're going to work on
contracts (because I plan to allow trades by consent).

Potential objections:
A) Covenants are too complicated. Answer: This is... actually a very
fair objection. Generality always means a more complex system. On the
other hand, this unifies a bunch of existing systems that have many
things in common. Nothing else actually depends on introducing
covenants. I like the idea of getting rid of redundancies, and I think
it could be done in a way that isn't too complicated. However, it's
possible others will disagree.
B) Promises can be implemented by contract. Adding them will make the
ruleset too complicated. Answer: Firstly, I want the Notary to track
them, which means they need to be rule defined. Secondly, having them
be defined will make their adoption harder (since it would probably
require every message using them to link to the definition, at least
initially). Thirdly, it's only ~two rules; maybe I can get it down to
one. Fourthly: **They sound so darned fun!8* Like, seriously, there
are obvious implementations for both futures and options on top of
these. I might even write those out in the proposal somewhere. The
added complexity is worth the fun uses when they are used, in my very

Re: DIS: Ideas for Obligation System Development

2019-11-07 Thread Jason Cobb

On 11/7/19 6:20 PM, Kerim Aydin wrote:

I was working on a Contract fix back in Sept that I have some
half-finished language for.  It:

- Defines public contracts, and requires contracts to be public in
order to hold currency or authorize act-on-behalfs or ENABLE anything
else at all.  Was undecided on whether the Notary should be brought
back to track these.

- Creates private contracts (I called them "deals" in the draft).
Private contracts don't ENABLE any new abilities, they just say things
like "Person X will do A and Person Y will do B".  Their use is that
if one party fails to hold up their bargain, it's a crime and the
other party can seek penalties.

Dunno how exactly this interacts with trades and promises, but if
we're re-thinking the system we should*definitely*  fix the
public/private issue in contracts too.

-G.



Oh, I just remembered a potential issue I saw with the current contracts 
a while back. Right now, I don't think it's possible for a contract to 
create a requirement that won't be punished as a Class 2 Crime, since 
the current enforcement is a simple "SHALL".


I don't know if that's really an issue or if it would be complicated to 
fix, but I just wanted to mention it.


--
Jason Cobb



Re: DIS: Ideas for Obligation System Development

2019-11-07 Thread Kerim Aydin
On Thu, Nov 7, 2019 at 2:32 PM Aris Merchant
 wrote:
> Okay, I've had a bunch of ideas for developments around contracts and the
> like. I've been working on a proposal, but I wanted to solicit public
> comment before going ahead with it.
>
> * Create an office of Notary, responsible for tracking contracts, pledges,
> and promises (see below). I don't particularly have the resources to do
> this myself, but I'm sure someone would volunteer. Between thee three
> systems, there would IMO be enough to track that an officer is warranted.
> * Reenact the promise system [1]. Yes, I'm aware this could be done with
> contracts. However, no one is likely to do the work without a standard
> architecture, which doesn't *technically* need to be in the ruleset, and it
> makes sense for the Notary to track them, which does need to be in the
> ruleset.
> * Enact a lightweight system for governing commercial transactions, along
> the lines of the "trade order" thing, but stripped down enough that it can
> fit in a short rule
> * Optionally, redefine all of the above so that everything is just defined
> as a type of contract. This would involve making contracts in general
> slightly more powerful.

I was working on a Contract fix back in Sept that I have some
half-finished language for.  It:

- Defines public contracts, and requires contracts to be public in
order to hold currency or authorize act-on-behalfs or ENABLE anything
else at all.  Was undecided on whether the Notary should be brought
back to track these.

- Creates private contracts (I called them "deals" in the draft).
Private contracts don't ENABLE any new abilities, they just say things
like "Person X will do A and Person Y will do B".  Their use is that
if one party fails to hold up their bargain, it's a crime and the
other party can seek penalties.

Dunno how exactly this interacts with trades and promises, but if
we're re-thinking the system we should *definitely* fix the
public/private issue in contracts too.

-G.


DIS: Ideas for Obligation System Development

2019-11-07 Thread Aris Merchant
Okay, I've had a bunch of ideas for developments around contracts and the
like. I've been working on a proposal, but I wanted to solicit public
comment before going ahead with it.

* Create an office of Notary, responsible for tracking contracts, pledges,
and promises (see below). I don't particularly have the resources to do
this myself, but I'm sure someone would volunteer. Between thee three
systems, there would IMO be enough to track that an officer is warranted.
* Reenact the promise system [1]. Yes, I'm aware this could be done with
contracts. However, no one is likely to do the work without a standard
architecture, which doesn't *technically* need to be in the ruleset, and it
makes sense for the Notary to track them, which does need to be in the
ruleset.
* Enact a lightweight system for governing commercial transactions, along
the lines of the "trade order" thing, but stripped down enough that it can
fit in a short rule
* Optionally, redefine all of the above so that everything is just defined
as a type of contract. This would involve making contracts in general
slightly more powerful.


[1]
https://mailman.agoranomic.org/cgi-bin/mailman/private/agora-official/2013-June/010166.html


-Aris