Imagine Wiki Contracts

A smart contract is a set of commitments that are defined in digital form, including the agreement on how contract participants shall fulfill these commitments.

A smart wiki is a set of paragraphs that are written in digital form, w/o agreement on how the wiki is forked by wiki participants. Attribution is encouraged by forking, plagiarisation isn't a primary concern,reaching consensus by ideas sharing is primary (I think).

YOUTUBE iphsRWQoFDI Open Law Smart Contacts Authoring

Let's start exploring this space by making a believable contract without engaging all of the object capability machinery. I'm thinking Ward and Clive could forge an agreement by writing it on a wiki page and then signing it using public keys made for the purpose by a hypothetical Signature plugin.

# Signature

Ward creates a page and adds a Signature plugin.

The button will add Ward to the Signature and record cryptographically that the page is as he signed it. If Ward continues editing the Signature will become invalid but he is free to sign the revised version adding to the record.


Clive forks Ward's signed page and presses sign to add his signature. There are now two valid signatures.

Clive could have made changes before signing. His signature would be valid but not others.

Ward forks back Clive's version of the page. If he finds the amendments agreeable he can sign it again.

Clive forks back Ward's newest revision. Both Ward and Clive have a page with valid signatures.


The Signature plugin would create public and private keys for each site that applies signatures. The public keys would be available so that anyone viewing the page can reestablish the validity of each signature.

Non-refutability would require participation in a trust network where a third party could maintain Clive's public key for the event when his site goes down. I suggest we skip this feature and just report what we don't know.

The Signature plugin would interact gracefully with revision history offered by the Journal. The back and forth of a negotiation could be reviewed at any time by any observer.

The Signature plugin could accept any number of signatures so long as a page is passed among signatories in an orderly way. It might be possible to merge multiple signatures but this seems outside normal plugin behavior as we have enjoyed it.

As envisioned here the Signature plugin would be only as trustworthy as wiki's OAuth, TLS and SSH upon which it is built. It would still be valuable for confirming agreement made in public much like a voice vote or wedding vows.

Signature Plugin implements this workflow with no security at all. But it makes a place for it.