Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
master
Switch branches/tags
Go to file
* Initial commit

* add from machine repo

* add from contracts repo

* WIP

* organization and roadmap

* move files

* WIP

* fix markdown

* small fixes

* use action more

* add CfOperation definition

* install, update, uninstall

* Clean up files a bit

* some fixes to message format

* rename architecture folder to contracts

* reorganize apps section and write some content

* explicitly define criteria

* signature

* clean up and verify install message format

* split off protocols

* don't use hex for non-byte constants

* clean up UPDATE.md

* install txn

* add parameters

* fix

* uninstall transaction

* remove Cleanup sections, normalize tone for README, some fixes in install

* delete stuff

* delete stuff

* move stuff

* delete stuff

* formatting

* WIP Updates to the specs../../

* Update limitations

* Rename ConditionalTransfer

* Add NonceRegistry

* Folder reorg

* Add research folder

* Fold research into main folder readme

* Add missing https

* change word

* Restructure again

* Restructure again

* v1 -> v0

* Update README.md

typos, grammar & a few edits for clarity

* s/v1/v0/g

* document uninstall fix

* Update README.md

* Update protocols.md

* Update protocols.md

* Update protocols.md

* Update protocols.md

* Update contracts.md

* Update protocols.md

* Update README.md

* fix typos

* Use svg badge vs flat

* Fix hyperlink

* explained peer1.address < peer2.address

* use <X>Ack consistently

* uninstall fixes (either missed previously or from bad rebases)

* english fixes

* handshakes

* fix typos

* commitments

* setup commitment, some english fixes

* Update README.md

* Rename v0/protocols.md to 00-protocol.md

* Rename v0/contracts.md to 01-contracts.md

* Move folder

* Update README.md

* Move file

* rename to Design Goals

* note-ize a sentence

* reorg

* fold Multisig Creation into Protocols

* reorg

* fix bug

* add SetRootNonce{Ack}

* Formatting

* Update README.md

broken link for 00-protocol.md

* Rephrasing for precision and readability

* fixing typod link

* Dramatic improvements and introduction of Mermaid

* Try alt .svg file specification

* Try using .png instead

* Add instructions

* Slight cleanup

* english fixes

* english fixes

* rename Parameters, fix descriptions

* protocol description fixes

* improvements to multisig descriptions

* english fix

* rename depNonceKey -> uninstallKey to match contracts (#23)

* rename depNonceKey -> uninstallKey to match contracts

* modify diagrams

* ignore node_modules

* fix missed rename

* minor correction (#24)

* minor correction (#25)

* rename to freeBalanceCfAddress in setup commitment (#29)

* delete unused images (#27)

* split protocols and move them to end (#30)

* Remove Multisend from Setup commitment diagram (#31)

* Update setup-commitment diagram to drop Multisend

* Test commit

* Fix getTurnTaker typo (#32)

*  Make the background color transparent for diagrams (#33)

* Make the background color transparent for diagrams

* Apply build updates

* Update to reflect introduction of AppRegistry (#35)

* App Registry

* more changes

* update diagrams

* fix seq (#36)

* miscellaneous fixes (#37)

* set protocol field to strings

* make InstallParams match

* format table

* more fixes

* more fixes

* Remove sighashes from CfAppInterface (#40)

* add install-virtual-app (#38)

* remove registry (#41)

* Update mermaid files

* Update build files

* fix: spelling error arbtirary -> arbitrary (#42)

Thanks to shootingstar for catching this

* remove multisig{1,2} from InstallVirtualAppParams (#44)

* rename address -> xpub, and cleanup (#45)

* delete peerbalance (unused) (#46)

* Uninstall virtual app (#43)

* [WIP] uninstall virtual app

* fixes

* Update 10-uninstall-virtual-app-protocol.md

Co-Authored-By: IIIIllllIIIIllllIIIIllllIIIIllllIIIIll <xuanji@gmail.com>

* rebuild

* add a summary

* write out commitments and signatures

* add message list

* withdraw protocol specs (#47)

* withdraw protocol

* WIP

* exchange

* exchange

* add fields

* Jeff/intro and typos (#48)

* minor edits

* clarified some phrasing around state-machine-based apps

* added work in progress note at beginning

* fix order of signatures in m4 to match machine definition (#49)

* fix order of signatures in m4 to match machine definition

* fix in message

* Minor typo fix (#51)

* Minor typo fix

* Update 02-state-machines.md

Co-Authored-By: AlexXiong97 <alex.xiong.tech@gmail.com>

* Update 00-introduction.md

* move to readthedocs (#52)

* Fix titles and readme (#53)

* Add specs references for monorepo
1 contributor

Users who have contributed to this file

Glossary and Terminology Guide

For an introduction to the concepts and terminology behind state channels, please see the original paper.

State Deposit

Any kind of blockchain state controlled directly by a state channel. This could be an ETH balance, ownership of an ERC20 token, control over an ENS name registration, or any other kind of state.

State Deposit Holder

The on-chain multisignature wallet smart contract that is the "owner" of a given state deposit

Counterfactual Instantiation

The process by which parties in a state channel agree to be bound by the terms of some off-chain contract

Counterfactual Address

An identifier of a counterfactually instantiated contract, which can be deterministically computed from the code and the channel in which the contract is instantiated

Commitment

A signed transaction (piece of data) that allows the owner to perform a certain action

Action

A type of commitment; an action specifies a subset of transactions from the set of all possible transactions conditional transfer: the action of transferring part of the state deposit to a given address if a certain condition is true.

NOTE: Section 6 of the paper specifies a concrete implementation that differs in certain respects from the protocol described here. The reason for this divergence is explained later.