Difference between revisions of "About"

From Open Transactions
Jump to navigation Jump to search
(Video Walkthrough: Removed desktop video walkthru as well, since it contains footage showing the Monetas OT iPhone client. (Will post a new replacement video soon.))
 
(56 intermediate revisions by 4 users not shown)
Line 1: Line 1:
'''What is OPEN-TRANSACTIONS?'''
+
__NOTOC__
 +
<div class="plainlinks">
 +
{| id="mp-topbanner" style="width:100%; background:#f6f6f6; margin-top:1.2em; border:1px solid #ddd;"
 +
| style="width:61%; color:#000;" |
 +
<!--        "Welcome to Open-Transactions"        -->
 +
{| style="width:100%; border:none; background:none;"
 +
| style="text-align:center; white-space:nowrap; color:#000;" |
 +
<div style="font-size:162%; border:none; margin:0; padding:.1em; color:#000;">About the Open-Transactions project.</div>
 +
<div style="top:+0.2em; font-size:95%;">Financial cryptography software.</div>
 +
<div id="articlecount" style="width:100%; text-align:center; font-size:85%;">[[Special:Statistics|{{NUMBEROFARTICLES}}]] [[Special:Allpages|articles]].</div>
 +
|}
 +
|}
 +
 
 +
<div style="float:left; max-width: 550px;">
 +
 
 +
 
 +
<big>'''What is Open-Transactions?'''</big>
  
 
* Open-Transactions is an [[Use Cases|easy-to-use]], financial crypto, [[Sample Cash|digital cash]] and transaction [[List of Classes|library]].
 
* Open-Transactions is an [[Use Cases|easy-to-use]], financial crypto, [[Sample Cash|digital cash]] and transaction [[List of Classes|library]].
* Open-Transactions includes a '''[[API|client API]]''', a working '''[[OT-Server|server]]''', a '''[[TestGUI|GUI test wallet]]''' (in Java) and a [[opentxs|command-line]] wallet utility.
+
* Open-Transactions is open-source.
* Open-Transactions features: a large variety of financial instruments, markets, basket currencies, unforgeable account balances, '''untraceable digital cash,''' destruction of account history, [http://iang.org/papers/ricardian_contract.html Ricardian contracts], Smart Contracts (scriptable clauses), and more.
+
* Open-Transactions includes a [[API|client API]], a working [[Otserver|server]], a cross-platform [https://github.com/Open-Transactions/Moneychanger GUI] and a [[opentxs|command-line]] wallet utility.
 +
* Open-Transactions features: a large variety of financial instruments, markets, basket currencies, unforgeable account balances, digital cash, destruction of account history, [http://iang.org/papers/ricardian_contract.html Ricardian contracts], Smart Contracts (scriptable clauses), and more.
 +
 
  
'''WHAT DOES IT DO?'''
+
<big>'''What does it do?'''</big>
  
* '''Open-Transactions allows users to issue and manipulate digital assets.'''
+
* Open-Transactions allows users to issue and manipulate digital assets.
 
* Any issuer can sign and distribute new [[Sample Currency Contract|currency contracts]] in order to create new digital asset types.
 
* Any issuer can sign and distribute new [[Sample Currency Contract|currency contracts]] in order to create new digital asset types.
 
* Users may create many ''pseudonyms'' (public keys), each of which may own ''asset accounts'' of various types, on OT servers.
 
* Users may create many ''pseudonyms'' (public keys), each of which may own ''asset accounts'' of various types, on OT servers.
* Users can operate '''&quot;cash-only&quot;''' ''(without accounts)'' for maximum anonymity, using '''[[Sample Cash|untraceable digital cash]]'''.
+
* Users can operate '''&quot;cash-only&quot;''' for maximum anonymity, using '''[[Sample Cash|untraceable digital cash]]'''.
 +
 
 +
 
 +
<big>'''Financial Instruments'''</big>
 +
* Users can transfer digital assets ''securely and provably'', with [[Triple-Signed Receipts|receipts]] signed by all parties.
 +
* '''Even an OT server cannot change balances, or forge transactions--since it cannot forge your signature on your receipt.'''
 +
* Open-Transactions supports a range of '''[[Instruments|financial instruments]]''' such as account transfer, '''[[Sample-Cheque|cheques]]''' and vouchers (aka &quot;cashier's cheques&quot; or &quot;banker's cheques&quot;), in addition to cash.
 +
* These instruments are all analogous to the same financial instruments that we all use at normal banks today. Everyone already has an intuitive understanding of these financial instruments, because we use them regularly in our normal daily lives.
 +
 
  
-----
+
<big>'''Markets, Basket Currencies, and Smart Contracts'''</big>
 +
* Open-Transactions also implements higher-level, '''contract-based transactions''' such as '''payment plans''' and '''markets with trades'''.
 +
* The [[Markets|markets]] on Open-Transactions support ''market orders, limit orders, fill-or-kill orders, day orders, stop orders, and stop limits'', just like trading on a real market.
 +
* '''Basket currencies''' are also supported, as well as payment plans (recurring payments.)
 +
* [[Smart contracts]]: Multi-party agreements with scriptable clauses... including hooks, callbacks, internal state, etc.
 +
* [[Client-side scripting]]: <code>!/usr/bin/env ot</code> The entire (mostly) high and low level OT API is available within your scripts.
  
'''NEW: GUI Mock-Ups! (first draft)'''
 
  
[https://www.fluidui.com/editor/live/preview/p_8ZN0r9Pbp2XzPC7yL3lDFw5lW2L7vEye.1343824445082 standard  mode]
+
<big>'''Triple Signed Receipts'''</big>
 +
* All of this is accomplished in such a way that all parties are able to ''prove'', at all times, ''which transactions have cleared and which instruments are authorized'', '''without having to store their entire transaction history''', but instead by merely keeping the '''last signed receipt'''.
 +
* Without the special mechanism that makes this possible, ''all parties would otherwise be forced to store all receipts forever''.
 +
* Nyms and Asset Types have consistent IDs across all OT servers, since the ID is formed by hashing the relevant contract or public key.
  
[https://www.fluidui.com/editor/live/preview/p_XcN9TmQ5FItuPr5QctxES2XfAhinsVPp.1343659566990 advanced mode]
 
  
[http://www.reddit.com/r/Agorism/comments/19p6oa/how_to_issue_your_own_currency_using/ Install via apt-get (click here)]
+
<big>'''Is Open-Transactions [[CENTRALIZED|centralized]]?'''</big>
 +
* No—quite the opposite. Open-Transactions is highly '''decentralized'''.
 +
* Typical centralized servers have power over their users, but in OT, '''no server has power over the clients it serves''', because:
 +
# An OT server does not control user transactions—it merely notarizes them.
 +
# Anyone can operate an OT server, and users can go to any OT server to notarize transactions. Thus OT servers compete with each other to attract users to use their notary services.
 +
# Anyone can download an OT client, and use it to execute transactions on any OT server, or any group of OT servers.
 +
# OT uses triple-signed receipts, so transaction parties have independent cryptographic proof of transactions and balances.
 +
# OT servers do not store user assets. Rather, cryptocurrencies are stored in voting pools so the server can't steal them.
  
-----
+
In every way, '''the user is in control, not the server'''—even when you're using servers you do not trust. These characteristics generate a '''federated''' network architecture—similar to the internet, and it has the same virtues as the internet—openness, decentralization, resilience, censorship-resistance, and user control.
  
'''Radio Interview'''
+
The community behind OT is strongly committed to developing systems that give users full control over their own assets and information.
  
[http://agoristradio.com/?p=234 Part 1, courtesy of AgoristRadio]
+
</div>
  
[http://agoristradio.com/?p=246 Part 2, courtesy of AgoristRadio]
 
  
Bitcoin donation address: 1NtTPVVjDsUfDWybS4BwvHpG2pdS9RnYyQ
+
<div style="float:right; max-width: 300px; margin: -20px 10px 0 20px;">
  
IRC: #opentransactions at irc.freenode.net
+
== White Paper ==
  
-----
+
[http://www.opentransactions.org/open-transactions.pdf OT White Paper]
 +
 
 +
== Diagrams ==
  
'''Video Walkthru'''
+
[[Voting_Pool_Deposit_Process|Voting Pools]]
  
[http://vimeo.com/28141679 Video 1 posted by J. Orlin Grabbe]
+
[http://i.imgur.com/HTyAJjg.png Architecture Overview (new)]
  
[http://vimeo.com/28142096 Video 2 posted by J. Orlin Grabbe]
+
[http://billstclair.com/ot/ot-diagram.jpg Architecture Overview (old)]
  
[http://open-transactions.github.io/tv/ New videos!]
+
[http://billstclair.com/ot/OT-Pseudonym-Instruments.jpg Financial Instruments]
 +
 
  
-----
+
== Radio Interviews ==
  
'''FINANCIAL INSTRUMENTS'''
+
[https://www.youtube.com/watch?v=teNzIFu5L70 "Trust No One" Miami Speech]
  
* Users can transfer digital assets ''securely and provably'', with [[Triple-Signed Receipts|receipts]] signed by all parties.
+
[http://agoristradio.com/?p=234 AgoristRadio Interview, Part 1]
* '''Even an OT server cannot change balances, or forge transactions--since it cannot forge your signature on your receipt.'''
 
* Open-Transactions supports a range of '''[[Instruments|financial instruments]]''' such as account transfer, '''[[Sample-Cheque|cheques]]''' and vouchers (aka &quot;cashier's cheques&quot; or &quot;banker's cheques&quot;), in addition to cash.
 
* These instruments are all analogous to the same financial instruments that we all use at normal banks today. Everyone already has an intuitive understanding of these financial instruments, because we use them regularly in our normal daily lives.
 
  
-----
+
[http://agoristradio.com/?p=246 AgoristRadio Interview, Part 2]
  
'''Diagrams:'''
+
[https://www.youtube.com/watch?v=vtJcUM5-TeA Interview with "Let's Talk Bitcoin"]
  
[http://billstclair.com/ot/ot-diagram.jpg Architecture Overview]
+
[http://www.youtube.com/watch?v=HSgpStCTw2g Interview with FutureMoneyTrends.com]
  
[http://billstclair.com/ot/OT-Anon-CashOnly.jpg Fully-Anonymous (cash only)]
+
== Video Walkthrough ==
  
[http://billstclair.com/ot/OT-Pseudonym-Instruments.jpg Pseudo-Anonymous (using accounts)]
+
[http://localhost:3000/img/iphone-app.png iPhone App screenshot]
  
 
-----
 
-----
  
'''MARKETS, BASKET CURRENCIES, and SMART CONTRACTS'''
+
[[Components and GNU Licensing]]
  
* Open-Transactions also implements higher-level, '''contract-based transactions''' such as '''payment plans''' and '''markets with trades'''.
+
[[Vulnerabilities|Potential vulnerabilities]] of Open-Transactions
* The [[Markets|markets]] on Open-Transactions support ''market orders, limit orders, fill-or-kill orders, day orders, stop orders, and stop limits'', just like trading on a real market.
+
 
* '''Basket currencies''' are also supported, as well as payment plans (recurring payments.)
+
== Related Systems ==
* [[Smart contracts]]: Multi-party agreements with scriptable clauses... including hooks, callbacks, internal state, etc.
+
 
* [[Client-side scripting]]: <code>!/usr/bin/env ot</code> The entire (mostly) high and low level OT API is available within your scripts.
+
[http://bitcoin.org/ Bitcoin] - A censorship-resistant global ledger
  
-----
+
[[Stash]] - Enterprise platform based on OT.
  
'''TRIPLE SIGNED RECEIPTS'''
+
[[Monetas]] - Transaction platform inspired by OT.
  
* All of this is accomplished in such a way that all parties are able to ''prove'', at all times, ''which transactions have cleared and which instruments are authorized'', '''without having to store their entire transaction history''', but instead by merely keeping the '''last signed receipt'''.
+
[https://loom.cc/help Loom] - Asset issuance and transactions
* Without the special mechanism that makes this possible, ''all parties would otherwise be forced to store all receipts forever''.
 
* Nyms and Asset Types have consistent IDs across all OT servers, since the ID is formed by hashing the relevant contract or public key.
 
  
-----
+
[http://www.csee.umbc.edu/~woodcock/cmsc482/proj1/magmoney.html Magic Money] - PGP-based Chaumian blinding (unlinkable cash)
  
The real beauty of Open-Transactions is the as-yet-unwritten future of ''new ideas'' that you can build with it, and the future liberty and security of your children that you can help to protect by doing so--in a very real and tangible way.
+
[http://opencoin.org/ OpenCoin.org] - REST-based blinded tokens
  
-----
+
[http://www.opentransact.org/ OpenTransact] - REST-based transaction protocol
  
'''IS Open-Transactions [[CENTRALIZED]]?'''
+
[https://payswarm.com/ PaySwarm] - REST-based transaction protocol
  
'''The vision is not of a central server that you must trust.''' '''Rather, the vision is of federated servers you don't have to trust.'''
+
[https://www.facebook.com/publickeytransaction PKTP] - Public-Key Transaction Processor
  
-----
+
[http://wiki.dgcmagazine.com/index.php?title=Ricardo Ricardo] - Transaction system by Ian Grigg
  
'''Mailing list''': open-transactions-[email protected]
+
[https://ripple.com/ Ripple] - Consensus-based debt ledger
  
'''[[FAQ]]'''
+
[https://www.stellar.org/ Stellar] - Ripple-based
  
'''[[Components and GNU Licensing|Components]]'''
+
[http://truledger.com/ Truledger] - Destruction of account history
  
'''[[Installation|Install Notes]]'''
+
[http://www.voucher-safe.com/index.cfm Voucher-Safe] - Secure asset issuance with auditing
  
'''[[Use Cases]]'''
+
---------
  
'''[[API]]'''
+
Article: [http://pelagic.wavyhill.xsmail.com/Private_Digital_Economy.html Toward a Private Digital Economy]
  
'''[[Business Cases]]'''
+
</div>
  
'''[[Release Notes]]'''
+
<div style="clear: both; padding-top: 40px;">
  
-----
+
== In More Detail... ==
  
 
The server itself is a [[Transactions|transaction processor]] in the cypherpunk tradition. In more detail:
 
The server itself is a [[Transactions|transaction processor]] in the cypherpunk tradition. In more detail:
  
* Many '''financial instruments''' are supported: Users can write '''cheques''', purchase '''cashier's cheques''' (&quot;vouchers&quot;), and withdraw in '''[[Sample Cash|untraceable digital cash]]'''. The software uses Chaumian-style, blinded tokens courtesy of the [http://anoncvs.aldigital.co.uk/lucre/ Lucre] library by Ben Laurie.
+
* Many '''financial instruments''' are supported: Users can write '''cheques''', purchase '''cashier's cheques''' (&quot;vouchers&quot;), and withdraw in '''[[Sample Cash|unlinkable digital cash]]'''. The software uses Chaumian-style, blinded tokens courtesy of the [http://anoncvs.aldigital.co.uk/lucre/ Lucre] library by Ben Laurie.
 
* It's like '''PGP FOR MONEY'''. The idea is to have many cash algorithms, not just Lucre. I’d like to add Chaum’s version, Brands’ version, etc. So that, just like PGP, the software should support as many of the top algorithms as possible, and make it easy to swap them out when necessary.
 
* It's like '''PGP FOR MONEY'''. The idea is to have many cash algorithms, not just Lucre. I’d like to add Chaum’s version, Brands’ version, etc. So that, just like PGP, the software should support as many of the top algorithms as possible, and make it easy to swap them out when necessary.
 
* User accounts are '''pseudonymous'''. '''A user account is a public key'''. (This is like [http://pktp.co.cc/ PKTP] by Andrew McMeikan.) You can open as many user accounts as you want. ''Full anonymity'' is possible only for "cash-only" transactions (where users only perform token exchanges, and do not open accounts), whereas ''pseudonymity'' means that transactions can be linked to the key that signed them. (While the real life identity of the owner is hidden, continuity of reputation becomes possible.) ''See full-color diagrams linked above''.
 
* User accounts are '''pseudonymous'''. '''A user account is a public key'''. (This is like [http://pktp.co.cc/ PKTP] by Andrew McMeikan.) You can open as many user accounts as you want. ''Full anonymity'' is possible only for "cash-only" transactions (where users only perform token exchanges, and do not open accounts), whereas ''pseudonymity'' means that transactions can be linked to the key that signed them. (While the real life identity of the owner is hidden, continuity of reputation becomes possible.) ''See full-color diagrams linked above''.
* '''Any user can issue new digital currencies''' and digital asset types, by uploading the new [currency contract] to the server. (This functionality is comparable to [http://www.systemics.com/docs/sox/overview.html Ricardo] by [http://financialcryptography.com/ Ian Grigg].)
+
* '''Any user can issue new digital currencies''' and digital asset types, by uploading the new [[Sample Currency Contract|currency contract]] to the server. (This functionality is comparable to [http://www.systemics.com/docs/sox/overview.html Ricardo] by [http://financialcryptography.com/ Ian Grigg].)
* '''Users can open asset accounts of any type.''' You can have as many as you want, associated with each user account. (See [http://loom.cc/ Loom] by Patrick Chkeroff.)
+
* '''Users can open asset accounts of any type.''' You can have as many as you want, associated with each user account. (See [http://loom.cc/ Loom] by Patrick Chkoreff.)
 
* [[Triple-Signed Receipts|Triple Signed Receipts / No Account History]]. On OT, entities are able to conduct transactions, verify instruments, ''and'' provably agree on current holdings via ''signed receipts'', all without the need to store any transaction history.'' An ''asset account'' on OT is not according to the traditional sense of the word (an account normally being thought of as, "a list of transactions, with a balance, used in double-entry bookkeeping.") While the word "account" makes things easy to understand, an ''asset account'' on OT exists only in the mind of the account holder himself. He simply asks the server to agree with him that it exists, and to provide him with a signed receipt to that effect. In the user interface, OT is able to mimic the ''account metaphor'', making usage intuitive, even though ''no actual account exists, or need be stored on either side, other than the signed receipt itself!'' (See Bill St. Clair's excellent [http://truledger.com/ Truledger] for an [http://truledger.com/doc/plain-english.html example of this concept].)
 
* [[Triple-Signed Receipts|Triple Signed Receipts / No Account History]]. On OT, entities are able to conduct transactions, verify instruments, ''and'' provably agree on current holdings via ''signed receipts'', all without the need to store any transaction history.'' An ''asset account'' on OT is not according to the traditional sense of the word (an account normally being thought of as, "a list of transactions, with a balance, used in double-entry bookkeeping.") While the word "account" makes things easy to understand, an ''asset account'' on OT exists only in the mind of the account holder himself. He simply asks the server to agree with him that it exists, and to provide him with a signed receipt to that effect. In the user interface, OT is able to mimic the ''account metaphor'', making usage intuitive, even though ''no actual account exists, or need be stored on either side, other than the signed receipt itself!'' (See Bill St. Clair's excellent [http://truledger.com/ Truledger] for an [http://truledger.com/doc/plain-english.html example of this concept].)
 
* Open Transactions also features '''markets'''. Any two asset types can be traded against each other. The [[markets]] are full-featured and include '''limit orders, stop orders, fill-or-kill, day orders''' (date ranges), and '''stop limits'''.
 
* Open Transactions also features '''markets'''. Any two asset types can be traded against each other. The [[markets]] are full-featured and include '''limit orders, stop orders, fill-or-kill, day orders''' (date ranges), and '''stop limits'''.
Line 124: Line 160:
 
* [[Client-side scripting]]: The entire OT API is now available for use in OTscripts on the client side. Just remember to put this at the top of the file: <pre>#!/usr/local/bin/ot --script</pre>
 
* [[Client-side scripting]]: The entire OT API is now available for use in OTscripts on the client side. Just remember to put this at the top of the file: <pre>#!/usr/local/bin/ot --script</pre>
 
* Open Transactions also supports '''payment plans'''. Users can sign contracts with each other, and the server will carry out the terms and implement the payment plan. (A future goal is to issue new asset types based on revenue from payment plans--so they can also be traded on markets.)
 
* Open Transactions also supports '''payment plans'''. Users can sign contracts with each other, and the server will carry out the terms and implement the payment plan. (A future goal is to issue new asset types based on revenue from payment plans--so they can also be traded on markets.)
* '''Contracts''', in general, are very important to Open Transactions; they are the building block of the entire library. Open Transactions uses a Ricardian-style contract, and all the various instruments, data files, and messages resemble '''[[PGP-signed XML files|Currency Contract]]'''. All objects serialize to a string.
+
* '''Contracts''', in general, are very important to Open Transactions; they are the building block of the entire library. Open Transactions uses a Ricardian-style contract, and all the various instruments, data files, and messages resemble '''[[Sample Currency Contract | PGP-signed XML files]]'''. All objects serialize to a string.
* The philosophy of the software is based around '''separation of powers''' (issuers and transaction servers being separate entities) as well as the '''distribution of risk'''. For example, Asset accounts can be distributed across multiple servers, and asset types can be distributed across multiple issuers (via baskets.) Read about the [https://github.com/FellowTraveler/Open-Transactions/wiki/Auditing auditing protocol].
+
* The philosophy of the software is based around '''separation of powers''' (issuers and transaction servers being separate entities) as well as the '''distribution of risk'''. For example, Asset accounts can be distributed across multiple servers, and asset types can be distributed across multiple issuers (via baskets.) Read about the [[Auditing]] protocol.
 
* Potential future instruments include: [http://www.goldstandardinstitute.net/2010/06/what-is-a-real-bill/ Real Bills], dividend-paying stocks (the same mechanism can be used as interest paying bonds) and collateralized debt obligations. (OT supports payment plans, so it would be easy to group tranches of OT's payment plans to pay into a single reserve account, as backing for a new stock offering that could be traded on OT markets.) This is similar to how basket currencies are implemented. Stocks/Bonds would pay shareholders by dropping a cheque into your stock account's inbox. These features aren't available yet, but they are easy to add given the existing OT infrastructure.
 
* Potential future instruments include: [http://www.goldstandardinstitute.net/2010/06/what-is-a-real-bill/ Real Bills], dividend-paying stocks (the same mechanism can be used as interest paying bonds) and collateralized debt obligations. (OT supports payment plans, so it would be easy to group tranches of OT's payment plans to pay into a single reserve account, as backing for a new stock offering that could be traded on OT markets.) This is similar to how basket currencies are implemented. Stocks/Bonds would pay shareholders by dropping a cheque into your stock account's inbox. These features aren't available yet, but they are easy to add given the existing OT infrastructure.
 
* '''All communications are secured with OpenSSL.''' All messages are also signed and encrypted. All transactions require signatures from relevant parties including the server.
 
* '''All communications are secured with OpenSSL.''' All messages are also signed and encrypted. All transactions require signatures from relevant parties including the server.
Line 135: Line 171:
  
 
The intention is for this software to be integrated as many places as possible... Games, digital cash wallets, distributed data stores, secure voip apps, anonymous bit torrent networks, mixnets, remailers, nym servers, etc. There are many other potential uses.
 
The intention is for this software to be integrated as many places as possible... Games, digital cash wallets, distributed data stores, secure voip apps, anonymous bit torrent networks, mixnets, remailers, nym servers, etc. There are many other potential uses.
 +
 +
</div>

Latest revision as of 05:55, 5 December 2015