Workflow of the witnessed ledger

What are the key ingredients in the witnessed ledger?

Every user has a ledger to themself[1]. Every transaction (involving shared information) will have a “counterpart” (some other user with their own ledger), and each their own underwriter. This more or less closed system gets one external piece of information, the tick: transactional integrity counter key, which is the “stamped” key[2] received from the global notary[3].

Presented as a JSON object it all looks like this

{ 
    tick: "ghjkyu34cv..hjk89fg",
    transactions: [
        {
            asset: “EUR”,
            measuring_unit: “cent”,
            A: -13,400,
            B: +13,400,
            parties: [
                {
                    A: “providing party”, 
                    calltag: "WLTD1CMN"
                },
                {
                    B: “receiving party”, 
                    calltag: "HUHJCKMN"
                },
                {
                    U1: “providing party underwriter”, 
                    calltag: "IR3NCARA"
                },
                {
                    U2: “receiving party underwriter”, 
                    calltag: "MZZOFRT3"
                },
            },
            signatures: {
                A: “ertyui56789..dfghjvbn”,
                B: “89ghjwer..ui7856”,
                U1: “opå12345670..asdf”,
                U2: “987poirew..lkjbvc”
            }
        }
    ]
}

How does the workflow operate?

Declaring an asset to the witnessed ledger

In order to exchange any kind of asset both the receiving and the providing party are required to declare their stock of the asset to the witnessed ledger. A and B will both select from possible underwriters any such underwriter as fits their individual preferences (price, quality, speed, etc.). Now the verification of the stock is the responsibility of the underwriter!

Exchanging an asset

payment-example

Exchanging an asset will follow a number of steps;

  1. The receiving party (A) builds the transaction, signs it, and pushes the entire transaction to
  2. The providing party (AB) who signs the transaction and pushes the now almost complete transaction to
  3. His underwriter (U2) who will consider the riscs of signing on a liability but presumably eventually will sign the transactions, and look up the receiving party's underwriter within the Network of Underwriters Guild (NUG), and push the transaction to
  4. The receiving party's underwriter (U1) who will verify that all signatures are in place and matches their callTags, then probably signs the transaction and pushes the transaction to
  5. The NUG which will try to update the stocks of both parties within the NUG. When successful the NUG will return a tick to
  6. The receiving party's underwriter who will push the transaction to both the providing party's underwriter, the providing, and the receiving parties as a completed transaction.
  7. The receiving party (A) may inquire the NUG to verify the tick and the details of the transaction (in effect diff'ing the result with the copy received from the receiving party's underwriter (U1)).
  8. The NUG will look up the tick and return the transactions indexed with that tick.

Now the transaction is 'set in stone' and noted by both parties and their respective underwriters, and the NUG.

How fast is it?

With commodities like fiat currencies A should be able to have an answer back in less than 2 seconds provided that the providing party's underwriter does not turn down the transaction, and the NUG succeeds in updating both parties stock of the commodity.

From B identifies themself (by credit card or other token) to A sending the transaction 3-500ms is expectable. B's transmitter may reside in a smartphone or hosted (perhaps with their underwriter). Transmitting one updated packet will add another 150-200ms. B's underwriter, being taller volume and bigger installation, could perform their job in close to 100ms, and A's underwriter would spend something similar. The NUG, being massively big volume, will spend less than 100ms, and the return values could reach A in less than 100ms from B's underwriter. A lower watermark of 1000ms will be a stretch goal!

Double spending?

With all assets listed in the NUG no mal-intentional party (say the providing party B) could use two/more underwriters to sign their spending of some asset (say EUR). The providing party hands over the transaction to an underwriter (U2) who in turn will look up the receiving party's underwriter within the NUG and not leave room for neither A/B to introduce a second underwriter. Having only one underwriter per asset may be a deal breaker to some though!

Escrow

Immateriel assets like fiat currencies, bonds, shares, patents, and other like property rights will be present in the receiving party's stock immediately but material property assets obviously will require the providing party to deliver on the transaction/contract.

To that end the witnessed ledger will allow transactions to include an optional argument:

{ 
    tick: hashed key of the transaction,
    transactions: [
        {
            asset: “ground coffee beans”,
            measuring_unit: “kg”,
            A: -100.00,
            B: +100.00,
            parties: [
                {A: “me”},
                {B: “you”},
                {U1: “my underwriter”},
                {U2: “your underwriter”}
            },
            signatures: {
                A: “ertyui56789..dfghjvbn”,
                B: “89ghjwer..ui7856”,
                U1: “opå12345670..asdf”,
                U2: “987poirew..lkjbvc”
            }
        },
        {
            asset: “EUR”,
            measuring_unit: “cent”,
            A: +13,400,
            B: -13,400,
            parties: [
                {A: “me”},
                {B: “you”},
                {U1: “my underwriter”},
                {U2: “your underwriter”}
            },
            signatures: {
                A: “ertyui56789..dfghjvbn”,
                B: “89ghjwer..ui7856”,
                U1: “opå12345670..asdf”,
                U2: “987poirew..lkjbvc”
            }
        },
        {
            asset: “EUR”,
            measuring_unit: “cent”,
            A: -90,
            B: +90,
            parties: [
                {A: “me”},
                {B: “underwriter U1”},
                {U1: “my underwriter”},
                {U2: “U1's underwriter”}
            },
            signatures: {
                A: “ertyui56789..dfghjvbn”,
                B: “89ghjwer..ui7856”,
                U1: “opå12345670..asdf”,
                U2: “987poirew..lkjbvc”
            }
        }
    ],
    arguments: [
        escrow: {
            underwriter: "Escrow underwriter",
            signature: "werhgfd..4567qweb",
            inco-terms: "FAS Hamburg, 2018-10-15", 
            escrow-notify: "K8W1N5LT",
            providers-freight: "+811 5421 2564 5254/1",
            receivers-freight: "jp@dsv.com"
        }
    ]
}    

Using the 'escrow' argument will place all quantities of the assets being part of the transaction within the control of the assigned escrow underwriter. Given the terms of delivery such as in the example above the underwriter will have to be present in the Hamburg Docks in order to verify that the asset has arrived and by signature release the assets to their designated recipients.

Are assets really present?

If a providing party exchanges 100 patents they can be identified by their patent numbers. Bonds and shares have to add up and if the company issuing the bond/share opens an asset with some underwriter, they will have to devise some mechanism to retain the shares if any physical exist otherwise notice will have to be given to any stock exchange listing the company, but nothing bars privately held companies from issuing shares with an underwriter and start selling off their shares through the NUG.

Fiat currencies are a separate issue all together! Whether underwriters will trust one another or require actually wiring fiat currencies between themselves or exchange some crypto currency will be entirely up to each underwriter. To reducing operational costs most underwriters will resort to exchanging some crypto currency acknowledged by all underwriters.

Anti-centralization lost?

It is a very pertinent question to ask: Is the anti-centralization effect of crypto currencies lost with the witnessed ledger?

With the NUG being a network with an open API and by convention open to any party wanting to operate an underwriter business, it's all entirely software allowing underwriters to

  1. insert a user
  2. insert profile information on the underwriter themself
  3. declare an asset to some identified user - it will succeed if the user is present and no such asset exist with the user; effectively binding the user/asset value-key pair to the underwriter
  4. retire an asset (the underwriter will retire a user's asset on request - whether to allow another underwriter to declare the asset, or because the asset has been depleted and the user has no plans to restock)
  5. insert a transaction where one user's stock of some asset is reduced by some quantity and at the same time some other user's stock of that same asset is increased by the exact same quantity - it will succeed if neither stocks will end up negative after the transaction, and return a tick which will be a SHA256 hash of the transactions and a timestamp of the time of insertion
  6. verify a tick - returning the transaction enclosed
  7. ask which underwriter to address regarding some user's identified asset
  8. by signature close an escrow

The witnessed ledger is based off of the double-entry bookkeeping principle devised by italian merchants in the Rinascimento[4] with the NUG implementation detailed here.

Underwriters are free to set the cost of transaction and the cost of operating the NUG will be publicized in order to hinder underwriters forming cartels or otherwise offset market mechanisms.

The NUG will allow government control and public verification of stocks of assets but this all merely adds to the transparency and openness of the witnessed ledger.

The NUG will charge underwriters a subscription fee per 1K writes in order to pay for the infrastructure necessary to support potentially millions of underwriters but more realistically 10's of thousands of underwriters.

But with the NUG down nothing will work?

That is true! If all NUG servers stops - and I believe they will stop occassionally like most other electronic devises despite all concerted efforts - no trades and no exchanges will be logged. That is in no way any different from the utilities companies cut of from their customers by a hurricane, airports in a snow-blizzard, factories during blockades, etc.

But it will be a modest challenge to implement the necessary infrastructure to withstand most outages.

Like the root servers running the DNS with ICANN at the helmet. The entire Internet relies on this infrastructure being in place and operative!

How to keep the infrastructure operative

Network access is the initial challenge. Distributing the NUG in 3 regional clusters of servers - Americas, Emea, Asia - will remove 95-99% of the network outages, rerouting traffic when one/two clusters are down. Each cluster would optimally be dispersed in 3-5 locations, say Lima, Mexico City, Portland, Toronto, in the Americas. Locations should be selected based on the number of alternate Internet Exchanges (with multiple backbone lines passing through) and stability of power sources, and preferably low risc of forces of nature.

Securring the location is next in line. A simple plot of land will do - a condemmed building, a house in a suburb - the structure is of less importance. A small truck (lorry) should be able to back up to a cargo bay with supplies.

With a careful design, physical access to the 'server room' will only be necessary to service robots malfunctioning! Electrically, each location will exist of a firewall fighting off network attacks, a small switch, a load-balancing proxy, 3-5 custom built application servers, a SAN with quite a lot of disk space, and an off-line data storage.

Scams

But all this transmission of data really does not prove a thing! The providing party (a seller) may pretend to have this item in stock! His underwriter may even be in on the scam! The receiving party (a buyer) may pretend to own enough what-ever the seller is willing to exchange, and the buyer's underwriter may be dodgy too! So, how to stop fraud!?

material assets

A goes to B to buy [product] from B: A will either be able to verify the [product] first hand or receive some kind of warranty to go with the [product]. A will literally have the [product] in reach!

A buys [product] from B from the convenience of A's living-room chair: A will receive a return-of-product accept from B and some kind of warranty to go with the [product]. A will most likely buy [product] through some trusted retail - like Amazon.

B sells [product] to A over the counter and expects payment: B will accept any negotiable cash-equivalence like 'a sausage for a fish'! This is barter and the only reason any party has to registering the transaction would be in the event that either party will need to 'store' the bartered item. Say A barters an expensive lotion in return for a unique painting by Picasso. A will definately want to 'stock' this painting - insurancewise at least! Taxes on barter does not happen today hence no real change in the use case! All barters being registered will be taxable. The expensive lotion is considered expensive by B. The question is: will it turn out to be less expensive when B learns that it basically is olive oil with 'a scent'? Will B want back his painting - positing that A tricked B into the trade. If either party registers the barter transaction they will be able to 'feel' more secure than today!

B sells [product] to A 'long-distance' and expects payment: B will accept any negotiable cash-equivalence - only now B is not able to evaluate the item in question! Is the painting really by Picasso? If A took the painting to an underwriter willing to sign on trades of paintings, A could barter the painting 'long-distance' with no problem!

So witnessed ledger transactions are basically more secure?

From the use-cases we may learn that

  • barter is possible, even logical, and achievable even long-distance with an intermediary (underwriter)
  • registering items will make it a lot easier to build trust with insurance companies
  • scams and fraud in business will be very 'costly' to the individual performing

immaterial assets

Immaterial assets are - like today - a perfect match to being traded electronically. Some immaterial assets will obviously not be as easy to trade as others; a patent for a time machine will require scrutiny to a greater extend then listening to a song by Stevie Wonder.

But with a registered transaction both parties can present their case to a judge should the time machine not work or the song not 'sound like' Mr Wonder.


  1. the neutrum singular describing a he/she ↩︎

  2. this stamp could be compared to that of traders on any exchange stamping their tickets to close deals. ↩︎

  3. The global notary could be a hierachical structure much like the DNS run by ICANN ↩︎

  4. the italian name for a period in european culture from 1300 through 1700 ↩︎