From 75e1f4a9a7725b8ae6c5535ed88bb8e71f948133 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Thu, 7 Feb 2019 11:06:11 +1100 Subject: [PATCH 001/598] adding the design paper in progress to show to the team 3pm AEDT --- doc/design_paper.md | 57 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 doc/design_paper.md diff --git a/doc/design_paper.md b/doc/design_paper.md new file mode 100644 index 00000000..5778ceea --- /dev/null +++ b/doc/design_paper.md @@ -0,0 +1,57 @@ + +# Introduction + +The world wide web (The web) was made for information sharing. + +The web lacks native support for the building blocks of today's Internet economy: authentication, transfer of value or trading, or express trusted relationship like Facebook friend introduction. Tim Berners-Lee envisioned the web a document platform. HTML, today mostly used to represent user interface, was originally a document format suitable for free information. The last decade saw the rise of modern programmable web browser technologies, aimed to allow various middlemen to provide what was missing in the blueprint of the web: Facebook to be entrusted with personal trust; Paypal to be entrusted to transfer value and Amazon to be entrusted for e-commerce trades. + +Bitcoin, for the first time, made it possible to transfer of value without an intermediary. Built on its principles, Ethereum and proliferation of blockchain technologies enabled an expressive, trusted world computer, whose computational matrix is made of value, trust relationship and business rules, reliably providing outputs which, at this era, can only be procured through a myriad of institutions, overly-trusted corporations, leaky privacy protections and regulators. + +(duplicate: These fundamental technologies allowed us to build a new web without trusted middlemen - in some scenarios, even completely without middlemen, as proven in the FIFA ticket trading experiment we conducted mid-2018.) + +To participate, we need a global interface, a new world-wide-web, to the computer. + +But the web was not ready for the change. + +Vitalik envisions web3, the new web with blockchain and without a lot of middlemen. It provided, for the first time, the capacity for a web application to access Ethereum nodes. + +However, Ethereum nodes are not the objects we can use to access the web. It's a tool that doesn't fit the ship of hands. + +The old world-wide-web connects people through clicks, forms and search queries. The new world-wide-web, web3, carries trust around by the use of tokens and (cryptographic) attestations. But there lack the technology to allow tokens to interact with web applications. Today's popular concept, Dapp browser, is largely just a connector to blockchain nodes. It is oblivious of what tokens the user has, in what stages are the tokens being used (e.g. collateralised), or even how to display that toke in user's language. It cannot facilitate the way of interaction demanded by web3. + +In order to overcome the missing gap, Dapps work very hard to control what belongs to the users directly. A Dapp that sells pizza, for example, not only display the pizza and manage the shopping cart but also does a lot for the payment: + +- loops through a list of known tokens that can be used to purchase the pizza; +- requests the user's public key, check the user's balance in each of those tokens, learning the user's wealth unnecessarily on the way; +- render a selection list for the user to choose a token; +- assemble the transaction using the user's choice of the token. + +This approach, if compared to the good old world-wide-web, is like having the web applications to access the user's CPU and keyboard, reading input directly from the user's keystrokes. If the user upgrades his keyboard to a USB model, the web application has to update their code to understand a new type of keystrokes. + +Similarly, in the current web3 model, if there is another token becomes popular, or even if the existing one changed their contract a bit to work around a security issue, the Pizza selling website would need to update their code. + +This has the result of either making dapps expensive and hard to secure (current status) or give rise to cloud-based web-logic code centre who can update their code frequently and securely for the much smaller pizza shops, re-introducing a third party that has to be trusted. + +Furthermore, the current status does not scale. It requires the web application having the full view of the underlying blockchain, which can't always be provided for security, privacy or bandwidth reasons. This is more prominent a problem when scalability technologies like Plasma enabling high-throughput blockchains and blockchains whose blocks are not public. It also didn't allow the user to use attestations (cryptographically signed directives), which serve purposes from event tickets, redeemable tokens to proofs - small proofs like friendship status proof (for a social network), big proofs like entire Merkle-trees, serious proofs like identity proof (for KYC). This is because despite such attestations behave like tokens in many ways, they do not live on the blockchain for privacy or bandwidth reasons. + +# Magic Links + +Magic links is simply a signed message for automic swap. It facilitates one major function of traditional financial institutions, a function called "Delivery versus Payment", where one party, the buyer, pays in a currency and the other delivers an asset to be purchased. In today's financial world, delivery of physical goods is not a concern of the financial instutions. Once the transaction is done on paper or in computer, it is considered done. This assumption is built on the trust towards the financial instituions. + +(Consider deletion: If, for example, the transaction consists of a loan in the form of currency and a car the loan is used to purchase, then the actual delivery of the car is out of concern, and both the buyer and the car seller are expected to follow what the computer tells them to do.) + +# Assets + +In TBML terminology, an asset is something that can be owned and has value. This is a broad definition of asset. It doesn't require, like the finanical assets, that an asset produces a return, or is anticipated to. This makes it possible for things like friendship to be defined as an asset. A token of friendship would be a signed message from someone, recognising some other as a friend, and it would be an asset in TBML terminology. Apparently a token of friendship from Michael Jackson can be of high value, especially since he cannot produce any more of these tokens, but even a humble token like "Friend of Weiwu" has some value. It, for example, allows a friend of Weiwu to sign a delivery recipt for him, or allows such a friend to get a mate-rate for signing up in the same dojo Weiwu practises in. There is even a neat trick, which, by using secret sharing protocols, having Weiwu's friendship token allows one to learn common friends shared with Weiwu. Notice that this definition does not require the asset to be a blockchain token, nor that it even exist on the blockchain. More on that in the latter chapter "attestation". + +Assets can have financial value and utility value. + +# Actions + +Actions are things that can be done to an asset. Typical actions are transfer, sell, buy, + +Let's continue with the AirBNB example. If Alice owns a token that represents the right to use a room during certain time window, or "a booking" in user's terms, then the actions she could perform are: + +Check-in - either produces a QR code to verify the booking to the landlord, or use an NFC-enabled phone to open a smart-lock. + +Transfer - \ No newline at end of file From bc075aeb35872270e517513837fac05ba633a6a0 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Thu, 7 Feb 2019 14:54:53 +1100 Subject: [PATCH 002/598] adding the example of AirBNB token --- doc/design_paper.md | 98 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 95 insertions(+), 3 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 5778ceea..2f5654bb 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -44,14 +44,106 @@ Magic links is simply a signed message for automic swap. It facilitates one majo In TBML terminology, an asset is something that can be owned and has value. This is a broad definition of asset. It doesn't require, like the finanical assets, that an asset produces a return, or is anticipated to. This makes it possible for things like friendship to be defined as an asset. A token of friendship would be a signed message from someone, recognising some other as a friend, and it would be an asset in TBML terminology. Apparently a token of friendship from Michael Jackson can be of high value, especially since he cannot produce any more of these tokens, but even a humble token like "Friend of Weiwu" has some value. It, for example, allows a friend of Weiwu to sign a delivery recipt for him, or allows such a friend to get a mate-rate for signing up in the same dojo Weiwu practises in. There is even a neat trick, which, by using secret sharing protocols, having Weiwu's friendship token allows one to learn common friends shared with Weiwu. Notice that this definition does not require the asset to be a blockchain token, nor that it even exist on the blockchain. More on that in the latter chapter "attestation". -Assets can have financial value and utility value. +Assets can have financial value and utility value. + +Examples of Assets with financial value: + +Rental.... + +Airbnb ... # Actions -Actions are things that can be done to an asset. Typical actions are transfer, sell, buy, +Actions are things that can be done to an asset. + +Regarding the financial properties of an asset, typical actions are transfer, sell, buy, collateralise, combine (e.g. in the case of cross-collateralisation), insure, auction and testify (obtain a signature of someone in order to satisfy certain trading requirements). + +The other actions depends much on the utility properties of an asset, however, varies from one type of asset to another. AirBNB token, for example, would allow a user to open the smart-lock of their AirBNB room at the time it is reserved for. That's probably all the utility you can get from AirBNB token, but game assets, for example, can be equiped, unequiped, transmuted, transmogrified, enchanted, disenchanted, cursed, purged, socketed, unsocketed, broken-down, recycled, consecrated... Imagination is the limit. Let's continue with the AirBNB example. If Alice owns a token that represents the right to use a room during certain time window, or "a booking" in user's terms, then the actions she could perform are: Check-in - either produces a QR code to verify the booking to the landlord, or use an NFC-enabled phone to open a smart-lock. -Transfer - \ No newline at end of file + + Singapore Telcom 13:45 31 Jan 2018 4G + +-----------------------------------------------+ + + +-----------------------------------------------+ + | AirBNB Booking | + | BELONG EVERYWHERE | + | | + | +-------------------------------------------+ | + | | | | + | | + Create a new booking | | + | | | | + | +-------------------------------------------+ | + | | + | +-------------------------------------------+ | + | | 31 Jan 2018 á 2 Feb 2018 | | + | | | | + | | 92 Elias Road, Singpaore, 519951 | | + | | | | + | | 2 Bedroom unit, check in after 1pm | | + | +-------------------------------------------+ | + | | + | +-------------------------------------------+ | + | | 2 Feb 2018 á 6 Feb 2018 | | + | | | | + | | 9 Lemke Street, Muirhead, NT 0810 | | + | | | | + | | 3 Bedroom house, self-check in | | + | +-------------------------------------------+ | + | | + | +-------------------------------------------+ | + | | 7 Feb 2018 á 13 Feb 2018 | | + | | | | + | | Unit 1519, 28 Harbour Street, NSW 2000 | | + | | | | + | | 2 Bedroom unit, checkin after 1pm. | | + | +-------------------------------------------+ | + | | + +-----------------------------------------------+ + ◀ ◉ ◼ + + + + Singapore Telcom 13:45 31 Jan 2018 4G + +-----------------------------------------------+ + + +-----------------------------------------------+ + | AirBNB Booking | + | BELONG EVERYWHERE | + | | + | +-------------------------------------------+ | + | | | | + | | + Create a new booking | | + | | | | + | +-------------------------------------------+ | + | | + | +-------------------------------------------+ | + | | 31 Jan 2018 á 2 Feb 2018 | | + | | | | + | | 92 Elias Road, Singpaore, 519951 | | + | | | | + | | 2 Bedroom unit, check in after 1pm | | + | +-------------------------------------------+ | + | | + | +-------------------------------------------+ | + | | 2 Feb 2018 á 6 Feb 2018 | | + | | | | + | | 9 Lemke Street, Muirhead, NT 0810 | | + | | | | + | | 3 Bedroom house, self-check in | | + | +-------------------------------------------+ | + | | + | +-------------------------------------------+ | + | | 7 Feb 2018 á 13 Feb 2018 | | + | | | | + | | Unit 1519, 28 Harbour Street, NSW 2000 | | + | | + | | + | | 2 Bedroom unit, checkin after 1pm. | | + | +-------------------------------------------+ | + | | + +-----------------------------------------------+ + ◀ ◉ ◼ \ No newline at end of file From 3a201ea5ba3c7606bd85f60bfee92b7e76cece3e Mon Sep 17 00:00:00 2001 From: colourful-land Date: Thu, 7 Feb 2019 17:56:40 +1100 Subject: [PATCH 003/598] adding the example of a fungible token --- doc/design_paper.md | 70 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 67 insertions(+), 3 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 2f5654bb..7bd87e16 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -42,9 +42,12 @@ Magic links is simply a signed message for automic swap. It facilitates one majo # Assets -In TBML terminology, an asset is something that can be owned and has value. This is a broad definition of asset. It doesn't require, like the finanical assets, that an asset produces a return, or is anticipated to. This makes it possible for things like friendship to be defined as an asset. A token of friendship would be a signed message from someone, recognising some other as a friend, and it would be an asset in TBML terminology. Apparently a token of friendship from Michael Jackson can be of high value, especially since he cannot produce any more of these tokens, but even a humble token like "Friend of Weiwu" has some value. It, for example, allows a friend of Weiwu to sign a delivery recipt for him, or allows such a friend to get a mate-rate for signing up in the same dojo Weiwu practises in. There is even a neat trick, which, by using secret sharing protocols, having Weiwu's friendship token allows one to learn common friends shared with Weiwu. Notice that this definition does not require the asset to be a blockchain token, nor that it even exist on the blockchain. More on that in the latter chapter "attestation". +In TBML terminology, an asset is something that can be owned and has value. This is a broad definition of asset. It doesn't require, like the finanical assets, that an asset produces a return, or is anticipated to. -Assets can have financial value and utility value. + +Attestations are like Tokens except that they are not transferrable, or, if a smart contract rules that they accept an attestation being transferred, it is rendered invalid after the transfer. This makes it possible for things like friendship to be defined in a way similiar to token, and we may as well call such attestations token. A token of friendship would be a signed message from someone, recognising some other as a friend, and it would be an asset in TBML terminology. Apparently a token of friendship from Michael Jackson can be of high value, especially since he cannot produce any more of these tokens, but even a humble token like "Friend of Weiwu" has some value. It, for example, allows a friend of Weiwu to sign a delivery recipt for him, or allows such a friend to get a mate-rate for signing up in the same dojo Weiwu practises in. There is even a neat trick, which, by using secret sharing protocols, having Weiwu's friendship token allows one to learn common friends shared with Weiwu. Notice that this definition does not require the asset to be a blockchain token, nor that it even exist on the blockchain. More on that in the latter chapter "attestation". + +Assets and attestations (tokens in general) can have financial value and utility value. Examples of Assets with financial value: @@ -60,7 +63,68 @@ Regarding the financial properties of an asset, typical actions are transfer, se The other actions depends much on the utility properties of an asset, however, varies from one type of asset to another. AirBNB token, for example, would allow a user to open the smart-lock of their AirBNB room at the time it is reserved for. That's probably all the utility you can get from AirBNB token, but game assets, for example, can be equiped, unequiped, transmuted, transmogrified, enchanted, disenchanted, cursed, purged, socketed, unsocketed, broken-down, recycled, consecrated... Imagination is the limit. -Let's continue with the AirBNB example. If Alice owns a token that represents the right to use a room during certain time window, or "a booking" in user's terms, then the actions she could perform are: +Let's start with fungible tokens, as they are somewhat simpler. In the following screen mock-up, the actions are: "Pay anyone", "Request Payment", "Convert to USD". + + Vodafone 13:45 31 Jan 2018 4G + +-------------------------------------------------+ + + +-------------------------------------------------+ + | | + | SOVEREIGN - cryptocurrency of Marshall Islands | + | | + | +---------------------------------------------+ | + | | | | + | | Current Balance: $314.15 ($276.15 available)| | + | | | | + | +---------------------------------------------+ | + | | + | +----------+ +---------------+ +--------------+ | + | |Pay Anyone| |Request Payment| |Convert to USD| | + | +----------+ +---------------+ +--------------+ | + | | + | Recent Transactions | + | +---------------------------------------------+ | + | | | | + | | 29 Jan BEKANT Desk - IKEA -$499.99 | | + | | +-- Delivery Token - FedEx [open] | | + | | +-- Warranty 1 year - IKEA [open] | | + | | | | + | | 28 Jan VISA Application -$80.00 | | + | | +--- Receipt Token [open] | | + | | | | + | | 26 Purchase SOVEREIGN from Ether +$800.00 | | + | | | | + | | Displaying 3 of 94 Transactions | | + | +---------------------------------------------+ | + | | + | Open Payment Channels | + | +---------------------------------------------+ | + | | GoCard: Public Transit and parking fees | | + | | | | + | | Payment Channel | | + | | Opened: 2019-04-05 Balance held: $50 | | + | | Expiry: 2019-05-05 Current balance: $38 | | + | | | | + | | [Inspect Payment Channel] | | + | +---------------------------------------------+ | + | | + | Preauthorisations | + | +--------------------------------------------+ | + | | | | + | | - The Guardian: biweekly, $10, no expiry. | | + | | - Pablo & Rusty's: monhtly, $28, till 2019 | | + | | | | + | | Displaying 2 of 5 authorisations | | + | +--------------------------------------------+ | + | | + +-------------------------------------------------+ + + ◀ ◉ ◼ + + +[explain the attestations associated with this token.] + +The case with non-fungible tokens are more complicated. Let's continue with the AirBNB example. If Alice owns a token that represents the right to use a room during certain time window, or "a booking" in user's terms, then the actions she could perform are: Check-in - either produces a QR code to verify the booking to the landlord, or use an NFC-enabled phone to open a smart-lock. From dbf6e359695f430e3b716c09c1e5507988e540a9 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Thu, 7 Feb 2019 18:18:32 +1100 Subject: [PATCH 004/598] added Asset Instance mockup --- doc/design_paper.md | 80 +++++++++++++++++++++++---------------------- 1 file changed, 41 insertions(+), 39 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 7bd87e16..ee27f08b 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -171,43 +171,45 @@ Check-in - either produces a QR code to verify the booking to the landlord, or u - Singapore Telcom 13:45 31 Jan 2018 4G - +-----------------------------------------------+ - +-----------------------------------------------+ - | AirBNB Booking | - | BELONG EVERYWHERE | - | | - | +-------------------------------------------+ | - | | | | - | | + Create a new booking | | - | | | | - | +-------------------------------------------+ | - | | - | +-------------------------------------------+ | - | | 31 Jan 2018 á 2 Feb 2018 | | - | | | | - | | 92 Elias Road, Singpaore, 519951 | | - | | | | - | | 2 Bedroom unit, check in after 1pm | | - | +-------------------------------------------+ | - | | - | +-------------------------------------------+ | - | | 2 Feb 2018 á 6 Feb 2018 | | - | | | | - | | 9 Lemke Street, Muirhead, NT 0810 | | - | | | | - | | 3 Bedroom house, self-check in | | - | +-------------------------------------------+ | - | | - | +-------------------------------------------+ | - | | 7 Feb 2018 á 13 Feb 2018 | | - | | | | - | | Unit 1519, 28 Harbour Street, NSW 2000 | | - | | - | | - | | 2 Bedroom unit, checkin after 1pm. | | - | +-------------------------------------------+ | - | | - +-----------------------------------------------+ - ◀ ◉ ◼ \ No newline at end of file + Singapore Telcom 13:45 31 Jan 2018 4G + +-----------------------------------------------+ + + +-----------------------------------------------+ + | | + | AirBnB Booking | + | | + | 92 ELIAS ROAD, SINGAPORE, 519951 | + | | + | Checkin: 31 Jan 2018 1pm + 6pm | + | Checkout: 2 Feb 2018 10am | + | | + | Landlord: VeryHappyBunny | + | | + | +--------+ +----+ +--------+ +----+ +-------+ | + | |Transfer| |Lend| |Check in| |Sell| |Auction| | + | +--------+ +----+ +--------+ +----+ +-------+ | + | | + | | + | Conversation history | + | | + | +-------------------------------------------+ | + | | | | + | | You: We are travellers form Australia | | + | | Judging from the pictures you have | | + | | a Veranda? | | + | | | | + | | VeryHappyBunny: A patio actually, you | | + | | can use any time. | | + | | | | + | | (You confirmed booking) | | + | | | | + | | You: Good, we will get there after lunch. | | + | | | | + | +-------------------------------------------+ | + | | + | | + +-----------------------------------------------+ + + ◀ ◉ ◼ + From 830686b21df4a17de3a8ab1e3c552df4a33c664c Mon Sep 17 00:00:00 2001 From: colourful-land Date: Sun, 17 Feb 2019 23:47:19 +1100 Subject: [PATCH 005/598] adding the most complicated use-case of all: car ownership token --- doc/design_paper.md | 147 ++++++++++++++++++++++++++++++++------------ 1 file changed, 109 insertions(+), 38 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index ee27f08b..cf313741 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -172,44 +172,115 @@ Check-in - either produces a QR code to verify the booking to the landlord, or u - Singapore Telcom 13:45 31 Jan 2018 4G - +-----------------------------------------------+ - - +-----------------------------------------------+ - | | - | AirBnB Booking | - | | - | 92 ELIAS ROAD, SINGAPORE, 519951 | - | | - | Checkin: 31 Jan 2018 1pm + 6pm | - | Checkout: 2 Feb 2018 10am | - | | - | Landlord: VeryHappyBunny | - | | - | +--------+ +----+ +--------+ +----+ +-------+ | - | |Transfer| |Lend| |Check in| |Sell| |Auction| | - | +--------+ +----+ +--------+ +----+ +-------+ | - | | - | | - | Conversation history | - | | - | +-------------------------------------------+ | - | | | | - | | You: We are travellers form Australia | | - | | Judging from the pictures you have | | - | | a Veranda? | | - | | | | - | | VeryHappyBunny: A patio actually, you | | - | | can use any time. | | - | | | | - | | (You confirmed booking) | | - | | | | - | | You: Good, we will get there after lunch. | | - | | | | - | +-------------------------------------------+ | - | | - | | - +-----------------------------------------------+ + Singapore Telcom 13:45 31 Jan 2018 4G + +-----------------------------------------------+ + + +-----------------------------------------------+ + | | + | AirBnB Booking | + | | + | 92 ELIAS ROAD, SINGAPORE, 519951 | + | | + | Checkin: 31 Jan 2018 1pm + 6pm | + | Checkout: 2 Feb 2018 10am | + | | + | Landlord: VeryHappyBunny | + | | + | +--------+ +----+ +--------+ +----+ +-------+ | + | |Transfer| |Lend| |Check in| |Sell| |Auction| | + | +--------+ +----+ +--------+ +----+ +-------+ | + | | + | | + | Conversation history | + | | + | +-------------------------------------------+ | + | | | | + | | You: We are travellers form Australia | | + | | Judging from the pictures you have | | + | | a Veranda? | | + | | | | + | | VeryHappyBunny: A patio actually, you | | + | | can use any time. | | + | | | | + | | (You confirmed booking) | | + | | | | + | | You: Good, we will get there after lunch. | | + | | | | + | +-------------------------------------------+ | + | | + | | + +-----------------------------------------------+ + + ◀ ◉ ◼ + + + +-----------------------------------------+ + | | + | Holden Barina 2012 Ownership Token | + | | + | Make: Holden Year: 2013 Colour: Black | + | VIN: KL3TA48E9EB541191 | + | | + | +------+ +-------+ +------+ +--------+ | + | | Open | | Start | | Lock | | Locate | | + | +------+ +-------+ +------+ +--------+ | + | | + | +---------------+ | + | | Authorise use | | + | +---------------+ | + | | + | +-------------+ +--------------------+ | + | | Maintenance | | Roadside Assitance | | + | +-------------+ +--------------------+ | + | | + | +---------------+ | + | | Collateralise | | + | +---------------+ | + | | + | Registration: | + | | + | +------------------------------------+ | + | | | | +-----------------------------+ + | | Issuer: Roads & Maritime Services | | | | + | | Rego: CJ41HL Expiry: 2017-12-03 | | ------> | Access rego attestation | + | | | | | | + | +------------------------------------+ | +-----------------------------+ + | | + | Purchase: | + | | + | +------------------------------------+ | + | | | | + | | Issuer: Manheim Auctions | | +-----------------------------+ + | | Date: 2015+12+09 Price: $4724.83 | | | | + | | | | ------> | Access Invoice Token | + | +------------------------------------+ | | | + | | +-----------------------------+ + | Insurance | + | | + | +------------------------------------+ | +-----------------------------+ + | | | | | | + | | Issuer: Virgin Car Insurance | | | Access insurance token | + | | Start Date: 2017 12 30 | | | functions: | + | | | | ------> | | + | +------------------------------------+ | | · Claim | + | | | · Lump sum discount payment | + | Services: | | · Upgrade / downgrade | + | | | · Suspend policy | + | +------------------------------------+ | | | + | | | | +-----------------------------+ + | | 2016+06+01 Holden Capped Service | | + | | | | + | | 2016+12+15 Holden Capped Service | | + | | + | | + | | +--+ Tire replacement | | + | | | | + | | 2017+06+15 Holden Capped Service | | + | | | | + | +------------------------------------+ | + | | + +-----------------------------------------+ + ◀ ◉ ◼ + From 29c3533b8ba715a18ae1d4d054edbfbcbb17ec9d Mon Sep 17 00:00:00 2001 From: colourful-land Date: Mon, 18 Feb 2019 00:08:44 +1100 Subject: [PATCH 006/598] adding (draft) concept of delivery vs payment --- doc/design_paper.md | 97 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) diff --git a/doc/design_paper.md b/doc/design_paper.md index cf313741..e7ad53f9 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -214,6 +214,103 @@ Check-in - either produces a QR code to verify the booking to the landlord, or u ◀ ◉ ◼ +Concept of delivery vs payment and how they are useful in both investment and consumption. + +(This seciton is in early draft stage, never mind the clutter) + +In the traditional financial world, transactions usually involve a currency in exchange of something deliverable. + + + +In the case that the deliverable is an asset, like a property or security, the transaction is considered done when the paper process or computer process is done. It's unlikely that the property owner will refuse to hand over the keys to the new owner or the company will refuse to share the dividend to an individual subscriber. + + + +In the case of purchasing common goods and services, the deliverable will usually be physical. If I buy a printer online, a printer gets delivered home; if I order a message service, someone shows up at the door. Delivery is an essential part of such transactions, and most payment processors like Paypal would not consider the transaction final unless delivery happened. + + + +[Picture illustration of payment vs goods and services, and payment vs asset] + + + +In today's economy, the difference between the two kinds is getting smaller. Goods and services can be investment candidates. Typically, old wine is usually purchased as goods but used as an investment asset. Even services, like hotel reservation, can be bought wholesales and speculated upon. On the other hand, properties like buildings can count towards as goods and services in some cases. + + + +We observe that when purchase happens, the deliverable is often made up of two components: rights and consumables. + + + +In the case of purchasing a share of a company, the right to enjoy dividend is the entire delivery. There is no consumable component of that purchase. In the case of purchasing BigMac, the consumable is the entire delivery. There is no rights component of that purchase. These are purchases purely for rights and consumables, respectively. + + + +But most transactions fall between those two kinds. + + + +Online purchase, for example, is usually an exchange between currency and a promise to deliver physical goods, or the right to pick it up from the local post office outlet, which is a right until it is redeemed. Ticket is a type of consumable that is always sold as right because the consumable services are not available yet at the time of purchase. In those examples, the purchaser obtains a right as the result of the transaction, which can be redeemed later for consumables. + + + +There are other rights than the right to redeem. Most purchases involve receipt which represents the right to return the goods under specific conditions, and many purchases involve a warranty, an insurance or reward points, which represent, respectively, the services to repair the goods, the right to sell broken products back or the entitlement of discount in the future purchases. + + + +Even the traditional purchase of investment asset might have a consumable component. Sometimes, the shareholders might be okay with goods and services produced by the company as a dividend, which may surpass the dividend in value to them. But that structure, otherwise known as co-op, is usually not practical thanks to the lack of secondary market for those goods and services. + + + +Table: examples of purchases and input / output of those purchases + + + +Typical tokens in e-commerce setting: + + + +Delivery Token + +- Get a notification when the product is delivered. + +- Obtain goods from the collection point. + +- Authorise someone else to obtain the goods. + + + +Invoice Token + +- Proof to the tax authority (for tax deduction), if paid. + +- Request payment from the employer + + + +Receipt Token + +- Return or change a faulty product + + + +Insurance token + +- Sell the product back + + + +Product ownership token + +- Access warrant and other services. + +- Get notified of updates. + + +(The whole concept can be illustrated in a few examples, e.g. this car token) + + + Telstra 13:45 31 Jan 2018 4G +-----------------------------------------+ | | | Holden Barina 2012 Ownership Token | From 36ff51566e87a928592ad425cca107a890a615dd Mon Sep 17 00:00:00 2001 From: colourful-land Date: Tue, 19 Feb 2019 20:30:50 +1100 Subject: [PATCH 007/598] add 'Frictionless market can be enabled by blockchain' --- doc/design_paper.md | 53 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index e7ad53f9..b66acd0d 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -1,5 +1,56 @@ -# Introduction +# Whitepaper + +There are two primary functions of blockchains that can change the way human interacts and business conducts. Both were neglected amidst the unfortunate speculative games in the early days of Blockchain. + +As we will soon elaborate, the first is the capacity to create frictionless markets. The second is the capacity to integrate the web. + +This paper is going to start with the vision, then, reason the architect needed on top of blockchains, then focus on a critical layer of technology that enables this architect to be possible, which we name TBML. + +The remarkable blockchain speculations took place in 2017 - 2018 brought our attention to tokens. As we buy and sell tokens, we forgot that it was intended to be used. It was like when canned sardines became a speculative asset, people brush off the idea that it was made to eat. + +Despite the unfortunate speculative bubble, it's not wrong to focus on tokens, as it is the enabler of the two primary functions we will elaborate: + +## The vision: frictionless market + +The 80s' "Back to the Future" featured a world of powerful machines: hovering boards, flying cars. It didn't happen. The technology advancement in our time is beyond the imagination of the 80s science fiction movies, albeit not through more powerful machinery, but more efficient use of information. Ride-sharing revolutionised the way we organise our daily lives, and Airbnb changed the way we travel. These are the new markets. They have less cost to operate, more accessible and have finer operational units. + +However, the majority of the markets still operates with high costs. The stock market, for example, has so much overhead that is only justifiable for multi-million businesses thanks to its reliance on rules and regulations to function. + +Can we create more efficient markets without the overhead? + +Can we tokenise, for example, 1% of a property, so that the property market can react faster than the typical month-long property purchase-sales cycle? Can we tokenise electricity, so that power users can benefit from finer scheduling of the use of resources, and households can benefit from collecting surplus sun energy? + +Can we tokenise AirBnB booking, so that the hosts can purchase a guaranteed cash flow from the market, while speculators profit from predicting the travel needs? Can we tokenise the risk of shipment, so that small importers and exports, not significant enough to obtain letters of credit, compete in international markets, and perhaps eventually outcompete traditional model like AirBNB outcompete hotels? + +Can we tokenise insurance that depends on cryptographic proofs, so that the insurer bare less cost of fraudulent documents? Can we decentralise the insurers altogether? + +Blockchain can provide the foundation layer to achieve those. Much work still needs to be done on scalability, privacy, and last, the focus of this paper, quality methods to define how tokens should be used and traded. + +Does a token expire? AirBNB booking tokens certainly do, but 1% property token probably not. Should the token owner receive a notification on specific events? Power token certainly needs that, for the change in the power supply is dynamic. Is a token streamable? + +How does it look on the user's mobile, and how is it called in users language? + +If a buyer wants to purchase a tokenised country estate from a seller, how do they establish a trusted method of communication? + +If a token entitles the user to do specific actions online, how can the user login to the web services with that token? + +We have done very little on making the tokens compatible with different methods of trades, listing and rating. There was nearly zero effort to make tokens represents *goods and services* - a basic need for an efficient market. + +During the speculative bubble in 2017, a power token ICO, as an example, does not need to provide any explanation of how the tokens can be used. All speculators need to know is that they represent a "stake in the future tokenised electricity". As long as the token can fill investors with imagination, it's good enough for an ICO. There is, therefore, no more functionalities needed other than an ERC20 interface. For such a speculative power token, it depends on no attestations like the proof of actual power production, no properties as where the energy is provided, for how long it is available. There is just no need to do any work than making it ERC20 compatible. + +With the end of the speculative frenzy, now is a good time to present a framework for describing token behaviours. + +Such a framework must fit tokens into different environments for them to function in use-cases. + + - letting them interact with different IT systems and APIs +- making them renderable and associate tokens with the actions they can perform in user's wallet +- Making them fit into listing or auction based general-purpose markets. Building one marketplace for one token type would be too inefficient. +- allow new protocols to be developed on top of them (streaming, communication, staking, collateralization etc.) + +The following chapters of this paper will elaborate on this technical framework. + +## Integrate the web. The world wide web (The web) was made for information sharing. From 0972647105310927f2b3a91228d5455390544ee6 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Wed, 20 Feb 2019 12:11:08 +1100 Subject: [PATCH 008/598] finished rewriting the 1st chapter in 2 sections. --- doc/design_paper.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/doc/design_paper.md b/doc/design_paper.md index b66acd0d..f379e4f1 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -52,6 +52,45 @@ The following chapters of this paper will elaborate on this technical framework. ## Integrate the web. + +Tim Berners-Lee and the innovators of the world wide web modelled it mainly after a public library model and computer-human interaction model. + +First, the library model. In this model, information is freely available and indexed and cross-referenced by a URI. Its incarnation, the URL, is where the data is, and there is no restriction on where you can go. + +Second, the computer-human interaction model. In this model, two players are having a conversation - human asks, machine answers. A computer has limited knowledge, but it can help the user to reach the right computer. + +Therefore the web was built as a giant library where each book is a computer with whom one can have a conversation. It's probably from where Facebook got its namesake inspiration - a website is a book. + +It's this design that caused a lot of modern inconveniences. + +A user would receive an email about the shoes she ordered. She takes the delivery tracking number, opens the Australia Post website (another book), type in the tracking number to find the current status. + +Another user pauses as he books two tickets for an opera, rummages through his wallet to find his frequent flyer number, types it into the order to collect the points. + +Why are we doing so much copy and pasting when machines are exceptionally good at doing those? Because the web is like a giant library by design, and we are like readers keeping notes of the index numbers under our sleeves. It's not, for example, designed like a personal assistant. + +It's easy to see the cause of the inconvenience: the web is poorly integrated. When a user checks out on a website, she isn't sure if she has enough balance on her card, because the bank is not integrated with the shopping system. When a patient orders a service, she can't see how much the insurance can cover it until the bill is settled, nor whether she has reached the annual cap, because the clinic is not integrated with the health insurance company. + +The answer to an integrated web requires a few building blocks that weren't in the blueprint: authentication, ownership, transfer of value and trading. + +The web doesn't have a built-in authentication mechanism†. The add-on like "Sign in with Facebook" merely tried to provide authentication through a trusted 3rd party, which, despite privacy and availability concerns, is only good for account authentication, not for business logic. + +† Despite the excellent efforts on client/server certificates in TLS, these authentication methods are not for processes, but sites only. It's a delegation model. Imagine a buyer not checking if a title deed is real, but only checks if the seller's name matches the one on the deed. That would be the delegation model used in TLS. In fact, TLS can't guarantee anything on the website is real, only that the website is real. + +For an example simple business logic: "the owner of the property is able to check its easement information". The logic itself doesn't require account authentication on its own, and it would be a bad idea to add account authentication on top of it since if the property is sold, the new property owner would now need to create a new account at the easement service website, secure it, and proof the ownership to the property. Besides being onerous, this process is also inflexible: it doesn't allow the owner to authorise the access to a 3rd party like a landscape planner or a pest inspector. More such examples are easily found in healthcare, retail and almost every business on the web. Today, we repeatedly add more and more accounts to address such integration needs. When our tool is a hammer every problem looks like a nail. + +The web also doesn't have an ownership or transfer of valve mechanism. If Alice is interested in a "Magic: The Gathering" card, and it popped up in the market, Alice will need to create an account on a website like mtgox.com, shorthand for "Magic The Gathering: Gox", to trade it. She might also need to sort out a payment method with a Paypal account. Nothing is properly integrated, the user has to do it. For every integration, the user needs to own two accounts. When she wants to use the card in an online game, a third account she will need. She can't, for example, click a link in an email and, like magic, the money goes to the seller and the card is hers, in an atomic transaction, and ready to be used in her games. + +It's easy to see that these building blocks are needed for an integrated web, and blockchain can serve the need. But what's the path from the integration need to the base technology? + +We know computers are good at computation, and science needs computation. The path, as it turned out, is data processing programming language. Similarly, to integrate the web using a trust layer like blockchain, the path is Token and a token behaviour language. + +In such a design, Token is the integration point, and token behaviour language is the interface for integration. Knowing token can go across systems, like Property Ownership token being used in land registration, insurance, pest inspect, mortgage and lots of systems, it must have its own behaviour pattern that can interact with users, to show the status and allow action buttons for functions to be integrated. In other words, a token must have its own UI logic as well as integration logic. + +[a picture of an example of property token in two statues side by side. The left side has an action button (among others) that says Power Connection. The right side has the same token, but with a "Leased" label on it, and the "Power Connection" action button is invalidated because now it is with the lessor] + +------------ [ following are from the old 1st chatper ] ------------- + The world wide web (The web) was made for information sharing. The web lacks native support for the building blocks of today's Internet economy: authentication, transfer of value or trading, or express trusted relationship like Facebook friend introduction. Tim Berners-Lee envisioned the web a document platform. HTML, today mostly used to represent user interface, was originally a document format suitable for free information. The last decade saw the rise of modern programmable web browser technologies, aimed to allow various middlemen to provide what was missing in the blueprint of the web: Facebook to be entrusted with personal trust; Paypal to be entrusted to transfer value and Amazon to be entrusted for e-commerce trades. From 6155fe686e8d07e95e15f5b635df6544202b7e1d Mon Sep 17 00:00:00 2001 From: James Sangalli Date: Wed, 20 Feb 2019 16:22:00 +1100 Subject: [PATCH 009/598] Edit chapter one and provide a simple introduction --- doc/design_paper.md | 186 ++++++++++++++++++++++---------------------- 1 file changed, 95 insertions(+), 91 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index f379e4f1..c36edae0 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -1,141 +1,145 @@ -# Whitepaper +# TBML Whitepaper -There are two primary functions of blockchains that can change the way human interacts and business conducts. Both were neglected amidst the unfortunate speculative games in the early days of Blockchain. +## Introduction -As we will soon elaborate, the first is the capacity to create frictionless markets. The second is the capacity to integrate the web. +Blockchain technology has two primary functions that can change the way individuals and businesses behave; the first is the capacity to create a frictionless market and the second is the capacity to integrate the web. -This paper is going to start with the vision, then, reason the architect needed on top of blockchains, then focus on a critical layer of technology that enables this architect to be possible, which we name TBML. +This paper will first address the vision of where we can be and follow up with the design and reasoning behind the architecture needed on top of blockchains. We will also present our technology known as TBML which provides this critical layer and makes the architecture possible. -The remarkable blockchain speculations took place in 2017 - 2018 brought our attention to tokens. As we buy and sell tokens, we forgot that it was intended to be used. It was like when canned sardines became a speculative asset, people brush off the idea that it was made to eat. +## Author's note -Despite the unfortunate speculative bubble, it's not wrong to focus on tokens, as it is the enabler of the two primary functions we will elaborate: +The remarkable crypto speculations that took place in 2017 - 2018 brought our attention to tokens. As we bought and sold them, we forgot that they were intended to be used. This is similar to the housing bubble of 2008 in which people forgot that houses were not merely speculative assets but rather a place for people to live. -## The vision: frictionless market +Despite this folly, it is not a bad thing to intially focus on tokens as they are the enabler of the two primary functions which we will elaborate on below. -The 80s' "Back to the Future" featured a world of powerful machines: hovering boards, flying cars. It didn't happen. The technology advancement in our time is beyond the imagination of the 80s science fiction movies, albeit not through more powerful machinery, but more efficient use of information. Ride-sharing revolutionised the way we organise our daily lives, and Airbnb changed the way we travel. These are the new markets. They have less cost to operate, more accessible and have finer operational units. +## The vision: frictionless markets -However, the majority of the markets still operates with high costs. The stock market, for example, has so much overhead that is only justifiable for multi-million businesses thanks to its reliance on rules and regulations to function. +The 80s' "Back to the Future" featured a world of powerful machines filled with hovering boards and flying cars. It didn't happen and as Peter Thiel once famously lamented "we were promised flying cars, instead we got a 140 characters". The technological advancement of our time is beyond the imagination of the 80s science fiction movies, albeit not through more powerful machinery, but more efficient use of information. -Can we create more efficient markets without the overhead? +Ride-sharing revolutionised the way we organise our daily lives and Airbnb changed the way we travel. These are the new markets and they incur less cost to operate, are more accessible and have finer operational units. -Can we tokenise, for example, 1% of a property, so that the property market can react faster than the typical month-long property purchase-sales cycle? Can we tokenise electricity, so that power users can benefit from finer scheduling of the use of resources, and households can benefit from collecting surplus sun energy? +Despite this web 2.0 revolution, the majority of markets still operate with high costs. The stock market for example, has so much overhead that it is only justifiable for multi-million dollar businesses which rely on the trust of rules and regulations to operate. -Can we tokenise AirBnB booking, so that the hosts can purchase a guaranteed cash flow from the market, while speculators profit from predicting the travel needs? Can we tokenise the risk of shipment, so that small importers and exports, not significant enough to obtain letters of credit, compete in international markets, and perhaps eventually outcompete traditional model like AirBNB outcompete hotels? +## Can we create a more efficient market without the overhead? -Can we tokenise insurance that depends on cryptographic proofs, so that the insurer bare less cost of fraudulent documents? Can we decentralise the insurers altogether? +Can we tokenise, for example, 1% of a property, so that the property market can react faster than the typical month-long property purchase-sales cycle? -Blockchain can provide the foundation layer to achieve those. Much work still needs to be done on scalability, privacy, and last, the focus of this paper, quality methods to define how tokens should be used and traded. +Can we tokenise electricity, so that power users can benefit from finer scheduling of the use of resources, and households can benefit from collecting surplus sun energy? -Does a token expire? AirBNB booking tokens certainly do, but 1% property token probably not. Should the token owner receive a notification on specific events? Power token certainly needs that, for the change in the power supply is dynamic. Is a token streamable? +Can we tokenise AirBnB bookings, so that hosts can purchase a guaranteed cash flow from the market, while speculators profit from predicting the travel needs? -How does it look on the user's mobile, and how is it called in users language? +Can we tokenise the risk of a shipment, so that small importers and exports, not significant enough to obtain letters of credit, can compete in international markets and perhaps eventually outcompete the traditional model like AirBNB outcompetes hotels? -If a buyer wants to purchase a tokenised country estate from a seller, how do they establish a trusted method of communication? - -If a token entitles the user to do specific actions online, how can the user login to the web services with that token? +Can we tokenise insurance that depends on cryptographic proofs, so that the insurer bares less cost of fraudulent documents? Can we decentralise the insurers altogether? -We have done very little on making the tokens compatible with different methods of trades, listing and rating. There was nearly zero effort to make tokens represents *goods and services* - a basic need for an efficient market. +Blockchain technology can provide the foundational layer to achieve these. A lot of work needs to be done to ensure scalability, privacy and quality methods to define how tokens should be used and traded. -During the speculative bubble in 2017, a power token ICO, as an example, does not need to provide any explanation of how the tokens can be used. All speculators need to know is that they represent a "stake in the future tokenised electricity". As long as the token can fill investors with imagination, it's good enough for an ICO. There is, therefore, no more functionalities needed other than an ERC20 interface. For such a speculative power token, it depends on no attestations like the proof of actual power production, no properties as where the energy is provided, for how long it is available. There is just no need to do any work than making it ERC20 compatible. +Do tokens expire? AirBNB booking tokens certainly do, but 1% ownership of a property token probably doesn't. Should the token owner receive a notification on a specific event? Power tokens certainly need that, for the change in the power supply is dynamic. Is a token stream-able? -With the end of the speculative frenzy, now is a good time to present a framework for describing token behaviours. +How does it look on the user's mobile, and how is it called in a users language? -Such a framework must fit tokens into different environments for them to function in use-cases. +If a buyer wants to purchase a tokenised country estate from a seller, how do they establish a trusted method of communication? - - letting them interact with different IT systems and APIs -- making them renderable and associate tokens with the actions they can perform in user's wallet -- Making them fit into listing or auction based general-purpose markets. Building one marketplace for one token type would be too inefficient. -- allow new protocols to be developed on top of them (streaming, communication, staking, collateralization etc.) +If a token entitles the user to do specific actions online, how can the user login to the web services with that token? -The following chapters of this paper will elaborate on this technical framework. +We have done very little on making the tokens compatible with different methods of trading, listing and rating; there is nearly zero effort devoted to making tokens represent *goods and services* - a basic need for an efficient market. -## Integrate the web. +During the speculative bubble of 2017, a power token ICO, does not need to provide any explanation of how the tokens can be used. All speculators need to know is that they represent a "stake in the future tokenised electricity". As long as the token can fill investors with imagination, it's good enough for an ICO. There is, no more functionality needed other than an ERC20 interface. Such a speculative token doesn't depend on attestations, like the proof of actual power production nor does it need properties which describe where the energy is provided or for how long it is available. There is no need to do actual work besides the marketing and creation of an ERC20 token. +With the madness over, it is time to present a framework for describing such token behaviours. -Tim Berners-Lee and the innovators of the world wide web modelled it mainly after a public library model and computer-human interaction model. +Such a framework must fit tokens into different environments for them to function as use-cases, they must: +- Let the user interact with different IT systems and APIs +- Make them render-able and associated with the actions they can perform in the user's wallet +- Making them fit into listing or auction based general-purpose markets; building one marketplace for one token type would be too inefficient. +- Allow new protocols to be developed on top of them (streaming, communication, staking, collateralization, etc.) -First, the library model. In this model, information is freely available and indexed and cross-referenced by a URI. Its incarnation, the URL, is where the data is, and there is no restriction on where you can go. +## Integrating the web. -Second, the computer-human interaction model. In this model, two players are having a conversation - human asks, machine answers. A computer has limited knowledge, but it can help the user to reach the right computer. +Tim Berners-Lee and the innovators of the world wide web modelled the web primarily on a public library model and computer-human interaction model. -Therefore the web was built as a giant library where each book is a computer with whom one can have a conversation. It's probably from where Facebook got its namesake inspiration - a website is a book. +In the library model, information is freely available, indexed and cross-referenced by a URI. Its incarnation, the URL, is where the data is, and there is no restriction on where you can go. -It's this design that caused a lot of modern inconveniences. +In the computer-human interaction model, two players are having a conversation - the human asks and the machine answers. A computer has limited knowledge, but it can help the user to reach the right computer. -A user would receive an email about the shoes she ordered. She takes the delivery tracking number, opens the Australia Post website (another book), type in the tracking number to find the current status. +Therefore the web was built as a giant library where each book is a computer with whom one can have a conversation. It's probably where Facebook got its namesake inspiration - a website that is a book. -Another user pauses as he books two tickets for an opera, rummages through his wallet to find his frequent flyer number, types it into the order to collect the points. +This design has caused a lot of modern inconveniences. A user would receive an email about the shoes she ordered, she then takes the delivery tracking number, opens the Australia Post website (another book) and types in the tracking number to find the current status. Another user pauses as he books two tickets for an opera, rummages through his wallet to find his frequent flyer number and types it into the order to collect the points. -Why are we doing so much copy and pasting when machines are exceptionally good at doing those? Because the web is like a giant library by design, and we are like readers keeping notes of the index numbers under our sleeves. It's not, for example, designed like a personal assistant. +Why are we doing so much copy and pasting when machines are exceptionally good at doing those? It's because the web is like a giant library by design, and we are like readers keeping notes of the index numbers under our sleeves. It's not designed like a personal assistant. -It's easy to see the cause of the inconvenience: the web is poorly integrated. When a user checks out on a website, she isn't sure if she has enough balance on her card, because the bank is not integrated with the shopping system. When a patient orders a service, she can't see how much the insurance can cover it until the bill is settled, nor whether she has reached the annual cap, because the clinic is not integrated with the health insurance company. +It's easy to see the cause of the inconvenience, the web is poorly integrated. When a user checks out on a website, she isn't sure if she has enough balance on her card, because the bank is not integrated with the shopping system. When a patient orders a service, she can't see how much the insurance can cover until the bill is settled, nor can she see whether she has reached the annual cap, because the clinic is not integrated with the health insurance company. The answer to an integrated web requires a few building blocks that weren't in the blueprint: authentication, ownership, transfer of value and trading. -The web doesn't have a built-in authentication mechanism†. The add-on like "Sign in with Facebook" merely tried to provide authentication through a trusted 3rd party, which, despite privacy and availability concerns, is only good for account authentication, not for business logic. +The web doesn't have a built-in authentication mechanism†. The add-on "Sign in with Facebook" merely tried to provide authentication through a trusted 3rd party, which, despite privacy and availability concerns, is only good for account authentication and not for business logic. † Despite the excellent efforts on client/server certificates in TLS, these authentication methods are not for processes, but sites only. It's a delegation model. Imagine a buyer not checking if a title deed is real, but only checks if the seller's name matches the one on the deed. That would be the delegation model used in TLS. In fact, TLS can't guarantee anything on the website is real, only that the website is real. -For an example simple business logic: "the owner of the property is able to check its easement information". The logic itself doesn't require account authentication on its own, and it would be a bad idea to add account authentication on top of it since if the property is sold, the new property owner would now need to create a new account at the easement service website, secure it, and proof the ownership to the property. Besides being onerous, this process is also inflexible: it doesn't allow the owner to authorise the access to a 3rd party like a landscape planner or a pest inspector. More such examples are easily found in healthcare, retail and almost every business on the web. Today, we repeatedly add more and more accounts to address such integration needs. When our tool is a hammer every problem looks like a nail. +For example, the simple business logic: "the owner of the property is able to check its easement information", doesn't require account authentication on its own and it would be a bad idea to add account authentication on top of it. This is because if the property is sold, the new property owner would now need to create a new account at the easement service website and secure it with the proof of ownership to the property. This process is onerous and inflexible, as it doesn't allow the owner to authorise the access to a 3rd party like a landscape planner or a pest inspector. Such examples are easily found in healthcare, retail and almost every business on the web. Today, we repeatedly add more and more accounts to address such integration needs and when our tool is a hammer every problem looks like a nail. -The web also doesn't have an ownership or transfer of valve mechanism. If Alice is interested in a "Magic: The Gathering" card, and it popped up in the market, Alice will need to create an account on a website like mtgox.com, shorthand for "Magic The Gathering: Gox", to trade it. She might also need to sort out a payment method with a Paypal account. Nothing is properly integrated, the user has to do it. For every integration, the user needs to own two accounts. When she wants to use the card in an online game, a third account she will need. She can't, for example, click a link in an email and, like magic, the money goes to the seller and the card is hers, in an atomic transaction, and ready to be used in her games. +The web also doesn't have an ownership or transfer of value mechanism. If Alice is interested in a "Magic: The Gathering" card, and it popped up in the market, Alice will need to create an account on a website like mtgox.com, shorthand for "Magic The Gathering: Gox", to trade it. She might also need to sort out a payment method with a Paypal account. Nothing is properly integrated and the user has to do it manually. For every integration, the user needs to own two accounts and when she wants to use the card in an online game, she will need a third account. She can't click on a link in an email and immediately use the card in a game. -It's easy to see that these building blocks are needed for an integrated web, and blockchain can serve the need. But what's the path from the integration need to the base technology? +It's easy to see that these building blocks are necessary for an integrated web and that blockchains can serve this need, but what's the path to get there? We assert that the way to get there is a data processing language that defines tokens and their behaviour. In such a design, the token is the integration point and the language is the interface for the integrations. Tokens seamlessly go accross systems and can be used for use cases like property ownership, insurance, pest inspection, mortgages and many other systems. It must define its own behaviour pattern which can be used to interact with users to show the status and allow functions to be natively integrated. In other words, a token must have it's own UI and integration logic. -We know computers are good at computation, and science needs computation. The path, as it turned out, is data processing programming language. Similarly, to integrate the web using a trust layer like blockchain, the path is Token and a token behaviour language. +[a picture of an example of property token that has two statues side by side. The left side has an action button (among others) that says Power Connection. The right side has the same token, but with a "Leased" label on it, and the "Power Connection" action button is invalidated because now it is with the lessor] -In such a design, Token is the integration point, and token behaviour language is the interface for integration. Knowing token can go across systems, like Property Ownership token being used in land registration, insurance, pest inspect, mortgage and lots of systems, it must have its own behaviour pattern that can interact with users, to show the status and allow action buttons for functions to be integrated. In other words, a token must have its own UI logic as well as integration logic. -[a picture of an example of property token in two statues side by side. The left side has an action button (among others) that says Power Connection. The right side has the same token, but with a "Leased" label on it, and the "Power Connection" action button is invalidated because now it is with the lessor] +## Introducing TBML ------------- [ following are from the old 1st chatper ] ------------- +TBML stands for Token Behaviour Markup Language and is our framework for defining such a context for dapps to integrate on their own and with other dapps. -The world wide web (The web) was made for information sharing. +It is similar to XML and allows HTML and JavaScript to be injected into the file so that it can define it's functionality, UI and relationships to tokens and other dapps on the blockchain. -The web lacks native support for the building blocks of today's Internet economy: authentication, transfer of value or trading, or express trusted relationship like Facebook friend introduction. Tim Berners-Lee envisioned the web a document platform. HTML, today mostly used to represent user interface, was originally a document format suitable for free information. The last decade saw the rise of modern programmable web browser technologies, aimed to allow various middlemen to provide what was missing in the blueprint of the web: Facebook to be entrusted with personal trust; Paypal to be entrusted to transfer value and Amazon to be entrusted for e-commerce trades. +TODO finish up + -Bitcoin, for the first time, made it possible to transfer of value without an intermediary. Built on its principles, Ethereum and proliferation of blockchain technologies enabled an expressive, trusted world computer, whose computational matrix is made of value, trust relationship and business rules, reliably providing outputs which, at this era, can only be procured through a myriad of institutions, overly-trusted corporations, leaky privacy protections and regulators. +------------ [ the following is from the old 1st chapter ] ------------- -(duplicate: These fundamental technologies allowed us to build a new web without trusted middlemen - in some scenarios, even completely without middlemen, as proven in the FIFA ticket trading experiment we conducted mid-2018.) +The world wide web was made for information sharing. -To participate, we need a global interface, a new world-wide-web, to the computer. +The web lacks native support for the building blocks of today's internet economy. These are authentication, transfer of value or trusted relationship expression (facebook friends for example). Tim Berners-Lee envisioned the web as a document platform. HTML, today mostly used to represent the user interface, was originally a document format suitable for free information. The last decade saw the rise of modern programmable web browser technologies, such as JavaScript, that aimed to allow various middlemen to provide what was missing in the blueprint of the web: Facebook to be entrusted with personal trust; Paypal to be entrusted with transfer of value and Amazon to be entrusted with e-commerce trades. -But the web was not ready for the change. -Vitalik envisions web3, the new web with blockchain and without a lot of middlemen. It provided, for the first time, the capacity for a web application to access Ethereum nodes. +Bitcoin, for the first time, made it possible to transfer value without an intermediary. With these principles, Ethereum and various other blockchains have enabled an expressive, trusted world computer whose computational matrix is made of value, trust relationships and business rules. Reliably providing these outputs in this current era can only be procured via a myriad of instituions, overly trusted corporations, leaky privacy potections and regulations. + +(duplicate: These fundamental technologies allowed us to build a new web without trusted middlemen - in some scenarios, even completely without middlemen, as proven in the FIFA ticket trading experiment we conducted mid-2018.) + +To participate, we need a global interface, a new world-wide-web, to the computer, but the web is not ready for the change. + +Vitalik Buterin envisioned web3, the new web with blockchain and without a lot of middlemen. It provided, for the first time, the capacity for a web application to access Ethereum nodes. However, Ethereum nodes are not the objects we can use to access the web. It's a tool that doesn't fit the ship of hands. -The old world-wide-web connects people through clicks, forms and search queries. The new world-wide-web, web3, carries trust around by the use of tokens and (cryptographic) attestations. But there lack the technology to allow tokens to interact with web applications. Today's popular concept, Dapp browser, is largely just a connector to blockchain nodes. It is oblivious of what tokens the user has, in what stages are the tokens being used (e.g. collateralised), or even how to display that toke in user's language. It cannot facilitate the way of interaction demanded by web3. +The old world-wide-web connects people through clicks, forms and search queries. The new world-wide-web, web3, carries trust around by the use of tokens and cryptographic attestations. There lacks the technology to allow tokens to interact with web applications. Today's most popular concept, the Dapp browser, is largely just a connector to blockchain nodes. It is oblivious of what tokens the user has, in what stages the tokens are being used (e.g. collateralized), or even how to display that token in the user's language. It cannot facilitate the way of interaction demanded by web3. -In order to overcome the missing gap, Dapps work very hard to control what belongs to the users directly. A Dapp that sells pizza, for example, not only display the pizza and manage the shopping cart but also does a lot for the payment: +In order to overcome the missing gap, Dapps work very hard to control what belongs to the users directly. A Dapp that sells pizza, for example, will not only display the pizza and manage the shopping cart but also does a lot for the payment, it: - loops through a list of known tokens that can be used to purchase the pizza; -- requests the user's public key, check the user's balance in each of those tokens, learning the user's wealth unnecessarily on the way; -- render a selection list for the user to choose a token; -- assemble the transaction using the user's choice of the token. +- requests the user's public key, checks the user's balance in each of those tokens and unnecessarily learns the users wealth; +- renders a selection list for the user to choose a token; +- assembles the transaction using the user's choice of token. -This approach, if compared to the good old world-wide-web, is like having the web applications to access the user's CPU and keyboard, reading input directly from the user's keystrokes. If the user upgrades his keyboard to a USB model, the web application has to update their code to understand a new type of keystrokes. +This approach, if compared to the good old world-wide-web, is like having the web application access the user's CPU and keyboard, reading input directly from the user's keystrokes. If the user upgrades his keyboard to a USB model, the web application has to update their code to understand the new type of keystrokes. -Similarly, in the current web3 model, if there is another token becomes popular, or even if the existing one changed their contract a bit to work around a security issue, the Pizza selling website would need to update their code. +Similarly, in the current web3 model, if there is another token that becomes popular, or even if the existing one changed their contract a bit to work around a security issue, the Pizza selling website would need to update their code. -This has the result of either making dapps expensive and hard to secure (current status) or give rise to cloud-based web-logic code centre who can update their code frequently and securely for the much smaller pizza shops, re-introducing a third party that has to be trusted. +This has the result of either making dapps expensive and hard to secure (current status) or gives rise to cloud-based web-logic code centres who can update their code frequently and securely for the much smaller pizza shops, re-introducing a third party that has to be trusted. -Furthermore, the current status does not scale. It requires the web application having the full view of the underlying blockchain, which can't always be provided for security, privacy or bandwidth reasons. This is more prominent a problem when scalability technologies like Plasma enabling high-throughput blockchains and blockchains whose blocks are not public. It also didn't allow the user to use attestations (cryptographically signed directives), which serve purposes from event tickets, redeemable tokens to proofs - small proofs like friendship status proof (for a social network), big proofs like entire Merkle-trees, serious proofs like identity proof (for KYC). This is because despite such attestations behave like tokens in many ways, they do not live on the blockchain for privacy or bandwidth reasons. +Furthermore, the current status does not scale. It requires the web application to have the full view of the underlying blockchain, which can't always be provided for security, privacy or bandwidth reasons. This is a more prominent problem when scalability technologies like Plasma enable high-throughput blockchains and blockchains whose blocks are not public. It also doesn't allow the user to provide attestations(cryptographically signed directives) for use cases such as ticketing, token proofs (He is my friend for example), big proofs like Merkle-trees or serious proofs like identity (KYC). This is because such attestations behave like tokens but do not live on the blockchain for privacy, cost or bandwidth reasons. # Magic Links -Magic links is simply a signed message for automic swap. It facilitates one major function of traditional financial institutions, a function called "Delivery versus Payment", where one party, the buyer, pays in a currency and the other delivers an asset to be purchased. In today's financial world, delivery of physical goods is not a concern of the financial instutions. Once the transaction is done on paper or in computer, it is considered done. This assumption is built on the trust towards the financial instituions. +Magic links are simply a signed message for an atomic swap. It facilitates one major function of traditional financial institutions, a function called "Delivery versus Payment", whereby one party, the buyer, pays in a currency and the other delivers an asset to be purchased. In today's financial world, delivery of physical goods is not a concern of the financial institutions. Once the transaction is done on paper or on a computer, it is considered done. This assumption is built on the trust towards financial institutions. -(Consider deletion: If, for example, the transaction consists of a loan in the form of currency and a car the loan is used to purchase, then the actual delivery of the car is out of concern, and both the buyer and the car seller are expected to follow what the computer tells them to do.) +(Consider deletion: If, for example, the transaction consists of a loan in the form of currency and a car the loan is used to purchase, then the actual delivery of the car is out of concern, and both the buyer and seller are expected to follow what the computer tells them to do.) # Assets -In TBML terminology, an asset is something that can be owned and has value. This is a broad definition of asset. It doesn't require, like the finanical assets, that an asset produces a return, or is anticipated to. - +In TBML terminology, an asset is something that can be owned and has value. This is a broad definition and doesn't require, like the financial assets, that an asset produces a return, or is anticipated to. -Attestations are like Tokens except that they are not transferrable, or, if a smart contract rules that they accept an attestation being transferred, it is rendered invalid after the transfer. This makes it possible for things like friendship to be defined in a way similiar to token, and we may as well call such attestations token. A token of friendship would be a signed message from someone, recognising some other as a friend, and it would be an asset in TBML terminology. Apparently a token of friendship from Michael Jackson can be of high value, especially since he cannot produce any more of these tokens, but even a humble token like "Friend of Weiwu" has some value. It, for example, allows a friend of Weiwu to sign a delivery recipt for him, or allows such a friend to get a mate-rate for signing up in the same dojo Weiwu practises in. There is even a neat trick, which, by using secret sharing protocols, having Weiwu's friendship token allows one to learn common friends shared with Weiwu. Notice that this definition does not require the asset to be a blockchain token, nor that it even exist on the blockchain. More on that in the latter chapter "attestation". +Attestations are like Tokens except that they are not transferable, in the case that a smart contract allows them to be transferred, the original attestation is render invalid after the transfer. This makes it possible for things like friendship to be defined in a way similar to the token, and therefore, we may as well call such attestations "tokens". A token of friendship would be a signed message from someone, recognising someone else as a friend, and it would be an asset in TBML terminology. Apparently a token of friendship from Michael Jackson can be of high value, especially since he cannot produce any more of these tokens, but even a humble token like "Friend of Weiwu" has some value. It, for example, allows a friend of Weiwu to sign a delivery recipt for him, or allows such a friend to get a mate-rate for signing up in the same dojo Weiwu practises in. There is even a neat trick, which, by using secret sharing protocols, having Weiwu's friendship token allows one to learn common friends shared with Weiwu. Notice that this definition does not require the asset to be a blockchain token, nor that it even exists on the blockchain. More on that in the latter chapter "attestation". Assets and attestations (tokens in general) can have financial value and utility value. @@ -149,9 +153,9 @@ Airbnb ... Actions are things that can be done to an asset. -Regarding the financial properties of an asset, typical actions are transfer, sell, buy, collateralise, combine (e.g. in the case of cross-collateralisation), insure, auction and testify (obtain a signature of someone in order to satisfy certain trading requirements). +Regarding the financial properties of an asset, typical actions are transfer, sell, buy, collateralise, combine (e.g. in the case of cross-collateralization), insure, auction and testify (obtain a signature of someone in order to satisfy certain trading requirements). -The other actions depends much on the utility properties of an asset, however, varies from one type of asset to another. AirBNB token, for example, would allow a user to open the smart-lock of their AirBNB room at the time it is reserved for. That's probably all the utility you can get from AirBNB token, but game assets, for example, can be equiped, unequiped, transmuted, transmogrified, enchanted, disenchanted, cursed, purged, socketed, unsocketed, broken-down, recycled, consecrated... Imagination is the limit. +The other actions depend much on the utility properties of an asset, however, this varies from one type of asset to another. AirBNB token, for example, would allow a user to open the smart-lock of their AirBNB room at the time it is reserved for. That's probably all the utility you can get from the AirBNB token, but game assets, for example, can be equipped, unequipped, transmuted, transmogrified, enchanted, disenchanted, cursed, purged, socketed, unsocketed, broken-down, recycled, consecrated... Imagination is the limit. Let's start with fungible tokens, as they are somewhat simpler. In the following screen mock-up, the actions are: "Pay anyone", "Request Payment", "Convert to USD". @@ -198,11 +202,11 @@ Let's start with fungible tokens, as they are somewhat simpler. In the following | | [Inspect Payment Channel] | | | +---------------------------------------------+ | | | - | Preauthorisations | + | Pre-authorisations | | +--------------------------------------------+ | | | | | | | - The Guardian: biweekly, $10, no expiry. | | - | | - Pablo & Rusty's: monhtly, $28, till 2019 | | + | | - Pablo & Rusty's: monthly, $28, till 2019 | | | | | | | | Displaying 2 of 5 authorisations | | | +--------------------------------------------+ | @@ -212,19 +216,19 @@ Let's start with fungible tokens, as they are somewhat simpler. In the following ◀ ◉ ◼ -[explain the attestations associated with this token.] +[explains the attestations associated with this token.] The case with non-fungible tokens are more complicated. Let's continue with the AirBNB example. If Alice owns a token that represents the right to use a room during certain time window, or "a booking" in user's terms, then the actions she could perform are: -Check-in - either produces a QR code to verify the booking to the landlord, or use an NFC-enabled phone to open a smart-lock. +Check-in - either produce a QR code to verify the booking to the landlord, or use an NFC-enabled phone to open a smart-lock. - Singapore Telcom 13:45 31 Jan 2018 4G + Singapore Telecom 13:45 31 Jan 2018 4G +-----------------------------------------------+ +-----------------------------------------------+ | AirBNB Booking | - | BELONG EVERYWHERE | + | BELONGS EVERYWHERE | | | | +-------------------------------------------+ | | | | | @@ -262,7 +266,7 @@ Check-in - either produces a QR code to verify the booking to the landlord, or u - Singapore Telcom 13:45 31 Jan 2018 4G + Singapore Telecom 13:45 31 Jan 2018 4G +-----------------------------------------------+ +-----------------------------------------------+ @@ -271,7 +275,7 @@ Check-in - either produces a QR code to verify the booking to the landlord, or u | | | 92 ELIAS ROAD, SINGAPORE, 519951 | | | - | Checkin: 31 Jan 2018 1pm + 6pm | + | Check-in: 31 Jan 2018 1pm + 6pm | | Checkout: 2 Feb 2018 10am | | | | Landlord: VeryHappyBunny | @@ -285,14 +289,14 @@ Check-in - either produces a QR code to verify the booking to the landlord, or u | | | +-------------------------------------------+ | | | | | - | | You: We are travellers form Australia | | + | | You: We are travellers form Australia, | | | | Judging from the pictures you have | | | | a Veranda? | | | | | | | | VeryHappyBunny: A patio actually, you | | - | | can use any time. | | + | | can use it anytime. | | | | | | - | | (You confirmed booking) | | + | | (You confirmed a booking) | | | | | | | | You: Good, we will get there after lunch. | | | | | | @@ -304,9 +308,9 @@ Check-in - either produces a QR code to verify the booking to the landlord, or u ◀ ◉ ◼ -Concept of delivery vs payment and how they are useful in both investment and consumption. +[The concept of delivery vs payment and how it is useful in both investments and consumption.] -(This seciton is in early draft stage, never mind the clutter) +(This section is in the early draft stage, never mind the clutter) In the traditional financial world, transactions usually involve a currency in exchange of something deliverable. @@ -316,7 +320,7 @@ In the case that the deliverable is an asset, like a property or security, the t -In the case of purchasing common goods and services, the deliverable will usually be physical. If I buy a printer online, a printer gets delivered home; if I order a message service, someone shows up at the door. Delivery is an essential part of such transactions, and most payment processors like Paypal would not consider the transaction final unless delivery happened. +In the case of purchasing common goods and services, the deliverable will usually be physical. If I buy a printer online, a printer gets delivered home; if I order a massage service, someone shows up at the door. Delivery is an essential part of such transactions, and most payment processors like Paypal would not consider the transaction final unless delivery happened. @@ -324,15 +328,15 @@ In the case of purchasing common goods and services, the deliverable will usuall -In today's economy, the difference between the two kinds is getting smaller. Goods and services can be investment candidates. Typically, old wine is usually purchased as goods but used as an investment asset. Even services, like hotel reservation, can be bought wholesales and speculated upon. On the other hand, properties like buildings can count towards as goods and services in some cases. +In today's economy, the difference between the two kinds is getting smaller. Goods and services can be investment candidates. Typically, old wine is usually purchased as goods but used as an investment asset. Even services, like hotel reservations, can be bought wholesale and speculated upon. On the other hand, properties like buildings can count towards goods and services in some cases. -We observe that when purchase happens, the deliverable is often made up of two components: rights and consumables. +We observe that when a purchase happens, the deliverable is often made up of two components: rights and consumables. -In the case of purchasing a share of a company, the right to enjoy dividend is the entire delivery. There is no consumable component of that purchase. In the case of purchasing BigMac, the consumable is the entire delivery. There is no rights component of that purchase. These are purchases purely for rights and consumables, respectively. +In the case of purchasing a share of a company, the right to enjoy dividend is the entire delivery. There is no consumable component of that purchase. In the case of purchasing a BigMac, the consumable is the entire delivery. There is no rights component to that purchase. These are purchases purely for rights and consumables, respectively. @@ -340,15 +344,15 @@ But most transactions fall between those two kinds. -Online purchase, for example, is usually an exchange between currency and a promise to deliver physical goods, or the right to pick it up from the local post office outlet, which is a right until it is redeemed. Ticket is a type of consumable that is always sold as right because the consumable services are not available yet at the time of purchase. In those examples, the purchaser obtains a right as the result of the transaction, which can be redeemed later for consumables. +Online purchases, for example, are usually either an exchange between currency with a promise to deliver physical goods or the right to pick it up from the local post office, which is a right until redeemed. A ticket is a type of consumable that is always sold as a right because the consumable service is not available at the time of purchase. In these examples, the purchaser obtains a right as the result of the transaction which can later be redeemed for consumables. -There are other rights than the right to redeem. Most purchases involve receipt which represents the right to return the goods under specific conditions, and many purchases involve a warranty, an insurance or reward points, which represent, respectively, the services to repair the goods, the right to sell broken products back or the entitlement of discount in the future purchases. +There are other rights than the right to redeem. Most purchases involve a receipt which represents the right to return the goods under specific conditions. Many purchases also involve a warranty, insurance or reward points; which represent, respectively, the services to repair the goods, the right to sell broken products back or the entitlement of a discount in future purchases. -Even the traditional purchase of investment asset might have a consumable component. Sometimes, the shareholders might be okay with goods and services produced by the company as a dividend, which may surpass the dividend in value to them. But that structure, otherwise known as co-op, is usually not practical thanks to the lack of secondary market for those goods and services. +Even the traditional purchase of an investment asset might have a consumable component. Sometimes, the shareholders might be okay with goods and services produced by the company as a dividend, which may surpass the dividend in value to them. But that structure, otherwise known as co-op, is usually not practical thanks to the lack of a secondary market for those goods and services. @@ -372,7 +376,7 @@ Delivery Token Invoice Token -- Proof to the tax authority (for tax deduction), if paid. +- Proof to the tax authority (for a tax deduction), if paid. - Request payment from the employer @@ -392,7 +396,7 @@ Insurance token Product ownership token -- Access warrant and other services. +- Access warranties and other services. - Get notified of updates. From 5f9bf6d911254fc36f0fd1929bb8517034fca72e Mon Sep 17 00:00:00 2001 From: colourful-land Date: Fri, 22 Feb 2019 10:08:02 +1100 Subject: [PATCH 010/598] adding connecting words and sentences for clarity. --- doc/design_paper.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index c36edae0..dccfdd07 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -1,4 +1,3 @@ - # TBML Whitepaper ## Introduction @@ -15,7 +14,7 @@ Despite this folly, it is not a bad thing to intially focus on tokens as they ar ## The vision: frictionless markets -The 80s' "Back to the Future" featured a world of powerful machines filled with hovering boards and flying cars. It didn't happen and as Peter Thiel once famously lamented "we were promised flying cars, instead we got a 140 characters". The technological advancement of our time is beyond the imagination of the 80s science fiction movies, albeit not through more powerful machinery, but more efficient use of information. +The 80s' "Back to the Future" featured a world of powerful machines filled with hovering boards and flying cars. It didn't happen. As Peter Thiel once famously lamented, "we were promised flying cars, instead we got a 140 characters". The technological advancement of our time is beyond the imagination of the 80s science fiction movies, albeit not through more powerful machinery, but more efficient use of information. Ride-sharing revolutionised the way we organise our daily lives and Airbnb changed the way we travel. These are the new markets and they incur less cost to operate, are more accessible and have finer operational units. @@ -33,9 +32,11 @@ Can we tokenise the risk of a shipment, so that small importers and exports, not Can we tokenise insurance that depends on cryptographic proofs, so that the insurer bares less cost of fraudulent documents? Can we decentralise the insurers altogether? -Blockchain technology can provide the foundational layer to achieve these. A lot of work needs to be done to ensure scalability, privacy and quality methods to define how tokens should be used and traded. +Blockchain technology can provide the foundational layer to achieve these. A lot of work needs to be done to ensure scalability, privacy and quality methods to define how tokens should be used and traded. + +This paper does not intend to provide a full solution, instead, it focuses on the last part, on quality methods to define how tokens should be used and traded. -Do tokens expire? AirBNB booking tokens certainly do, but 1% ownership of a property token probably doesn't. Should the token owner receive a notification on a specific event? Power tokens certainly need that, for the change in the power supply is dynamic. Is a token stream-able? +Tokens have different properties. Do tokens expire? AirBNB booking tokens certainly do, but 1% ownership of a property tokens probably don't. Should the token owner receive a notification on a specific event? Power tokens certainly need that, for the change in the power supply is dynamic. Is a token stream-able? How does it look on the user's mobile, and how is it called in a users language? @@ -43,9 +44,9 @@ If a buyer wants to purchase a tokenised country estate from a seller, how do th If a token entitles the user to do specific actions online, how can the user login to the web services with that token? -We have done very little on making the tokens compatible with different methods of trading, listing and rating; there is nearly zero effort devoted to making tokens represent *goods and services* - a basic need for an efficient market. +We have done very little on making the tokens interoperable with different methods of trading, listing and rating; there is nearly zero effort devoted to making tokens represent *goods and services* - a basic need for an efficient market. -During the speculative bubble of 2017, a power token ICO, does not need to provide any explanation of how the tokens can be used. All speculators need to know is that they represent a "stake in the future tokenised electricity". As long as the token can fill investors with imagination, it's good enough for an ICO. There is, no more functionality needed other than an ERC20 interface. Such a speculative token doesn't depend on attestations, like the proof of actual power production nor does it need properties which describe where the energy is provided or for how long it is available. There is no need to do actual work besides the marketing and creation of an ERC20 token. +During the speculative bubble of 2017, a power token ICO, does not need to provide any explanation of how the tokens can be used. All speculators need to know is that they represent a "stake in the future tokenised electricity". As long as the token can fill investors with imagination, it's good enough for an ICO. There is, no more functionality needed other than an ERC20 interface. Such a speculative token doesn't depend on attestations - the proof of actual power production - nor does it need properties like where the energy is provided or for how long it is available. There is no need to do actual work besides the marketing and creation of an ERC20 token. With the madness over, it is time to present a framework for describing such token behaviours. @@ -65,7 +66,7 @@ In the computer-human interaction model, two players are having a conversation - Therefore the web was built as a giant library where each book is a computer with whom one can have a conversation. It's probably where Facebook got its namesake inspiration - a website that is a book. -This design has caused a lot of modern inconveniences. A user would receive an email about the shoes she ordered, she then takes the delivery tracking number, opens the Australia Post website (another book) and types in the tracking number to find the current status. Another user pauses as he books two tickets for an opera, rummages through his wallet to find his frequent flyer number and types it into the order to collect the points. +This design has caused a lot of modern inconveniences. A user would receive an email about the shoes she ordered, she then takes the delivery tracking number, opens the Australia Post website - another book in the giant library of the web - and types in the tracking number to find the current status. On a different day, the same user might pause as she books two tickets for an opera, switch to her frequent flyer app, copy that number over and paste it into the order to collect the points. She might struggle a bit installing that frequent flyer app to start with. Why are we doing so much copy and pasting when machines are exceptionally good at doing those? It's because the web is like a giant library by design, and we are like readers keeping notes of the index numbers under our sleeves. It's not designed like a personal assistant. @@ -77,11 +78,11 @@ The web doesn't have a built-in authentication mechanism†. The add-on "Sign in † Despite the excellent efforts on client/server certificates in TLS, these authentication methods are not for processes, but sites only. It's a delegation model. Imagine a buyer not checking if a title deed is real, but only checks if the seller's name matches the one on the deed. That would be the delegation model used in TLS. In fact, TLS can't guarantee anything on the website is real, only that the website is real. -For example, the simple business logic: "the owner of the property is able to check its easement information", doesn't require account authentication on its own and it would be a bad idea to add account authentication on top of it. This is because if the property is sold, the new property owner would now need to create a new account at the easement service website and secure it with the proof of ownership to the property. This process is onerous and inflexible, as it doesn't allow the owner to authorise the access to a 3rd party like a landscape planner or a pest inspector. Such examples are easily found in healthcare, retail and almost every business on the web. Today, we repeatedly add more and more accounts to address such integration needs and when our tool is a hammer every problem looks like a nail. +For example, the simple business logic: "the owner of the property is able to check its easement information", doesn't require account authentication on its own and it would be a bad idea to add account authentication on top of it. This is because if the property is sold, the new property owner would now need to create a new account at the easement service website and secure it with the proof of ownership to the property. This process is onerous and inflexible, as it doesn't allow the owner to authorise the access to a 3rd party like a landscape planner or a pest inspector. Such authentication needs are easily found in healthcare, retail and almost every web-based business. Today, we repeatedly add more and more accounts to address such integration needs and when our tool is a hammer every problem looks like a nail. -The web also doesn't have an ownership or transfer of value mechanism. If Alice is interested in a "Magic: The Gathering" card, and it popped up in the market, Alice will need to create an account on a website like mtgox.com, shorthand for "Magic The Gathering: Gox", to trade it. She might also need to sort out a payment method with a Paypal account. Nothing is properly integrated and the user has to do it manually. For every integration, the user needs to own two accounts and when she wants to use the card in an online game, she will need a third account. She can't click on a link in an email and immediately use the card in a game. +The web also doesn't have an ownership or transfer of value mechanism. If Alice is interested in a "Magic: The Gathering" card, and it popped up in the market, Alice will need to create an account on a website like mtgox.com, shorthand for "Magic The Gathering: Gox", to trade it. She might also need to sort out a payment method with a Paypal account. Properly integration is often lacking for complexity or security reasons, and the user has to do it manually. For every integration, the user needs to own two accounts and when she wants to use the card in an online game, she will need a third account to login to the game. She can't click on a link in an email and immediately use the card in a game. -It's easy to see that these building blocks are necessary for an integrated web and that blockchains can serve this need, but what's the path to get there? We assert that the way to get there is a data processing language that defines tokens and their behaviour. In such a design, the token is the integration point and the language is the interface for the integrations. Tokens seamlessly go accross systems and can be used for use cases like property ownership, insurance, pest inspection, mortgages and many other systems. It must define its own behaviour pattern which can be used to interact with users to show the status and allow functions to be natively integrated. In other words, a token must have it's own UI and integration logic. +It's easy to see that these building blocks are necessary for an integrated web and that blockchains can serve this need, but what's the path to get there? We assert that the way to get there is a data processing language that defines tokens and their behaviour. In such a design, the token is the integration point and the language is the interface for the integrations. Tokens seamlessly go accross systems, examplified by a property token being used for renting, insurance, pest inspection, mortgages and many other systems. It must define its own behaviour pattern which can be used to interact with users to show the status and allow functions to be natively integrated. In other words, a token must have it's own UI and integration logic. [a picture of an example of property token that has two statues side by side. The left side has an action button (among others) that says Power Connection. The right side has the same token, but with a "Leased" label on it, and the "Power Connection" action button is invalidated because now it is with the lessor] From 70a37c4c40fb9ee16bcdae4bce8e5215bdc28eb9 Mon Sep 17 00:00:00 2001 From: James Sangalli Date: Fri, 22 Feb 2019 17:58:15 +1100 Subject: [PATCH 011/598] Weiwu wrote this, but he works in Sangalli's computer: the frictionless market needs --- doc/design_paper.md | 81 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 80 insertions(+), 1 deletion(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index dccfdd07..81e508e4 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -93,7 +93,86 @@ TBML stands for Token Behaviour Markup Language and is our framework for definin It is similar to XML and allows HTML and JavaScript to be injected into the file so that it can define it's functionality, UI and relationships to tokens and other dapps on the blockchain. -TODO finish up +# address "Frictionless Market" needs + +We assert that a language for dictating the behaviour of a token is needed. Its design requirement follows its intended goal: to facilitate frictionless market and to integrate the web. + +A market is a place where delivery vs payment happens. On the deliverable side, there are all sorts of things money can buy: assets, goods and services. On the payment side, there are Ether, DAI, Sovereign etc. The fact that any blockchain asset can be transacted any time, as long as it follows the rules, without middlemen being intermediary, gives us maximum market efficiency - the frictionless market. However, both the deliverables and the payment side requires a framework to "plug-in" - the TBML token behaviour language we are proposing. + +It's easier to demonstrate the design requirements with an example. Let's imagine a market for 1% property. A property owner can issue many pieces of a token, each represents 1% ownership of the property. He can sell these tokens to obtain cash. + +A buyer needs to know quite a bit of information. It's easy to understand that such a token would fetch 1% of the sales revenue if the underlying property is sold, but a lot more details are needed: + +- Where is the property and how its current status is? +- Can a 1% property token owner vote? For example, on the purchase decision to insurance against bush fire? +- Is the 1% automatically converted into currency at the time of property sales, or can the token holder elect to keep it? +- Is the token properly underwritten to prevent double-collateralization? +- If the property was collateralized for a mortgage, what is the condition for a liquidation event where the tokenised share of the property is of a smaller percentage of the entire asset than the owner can rightfully issue token with? [damn, let's fix this sentence] +- Is providing identity attestation a condition of purchase? + +A lot of the details are in the smart contract that holds the asset, for example, the total number of tokens issued by the issuer. Much is not, for example, how to fetch previous sales prices of the land from an online title deed database. + +Typically, nowadays those token related information are locally coded in a Dapp in the form of a website. We envision it to be best abstracted out and placed in a token behaviour language TBML. You can imagine it works like a data processing language that for a given token: + +- It fetches token related information from its holding smart contract and 3rd party sources. +- It has a rendering section where the token is rendered in visual or audio fashion. +- It has a transaction section where the purpose and condition for trade and transactions are described (a superset of ABI). + +Any party is able to render and apply functions to the token using TBML, including entities like generic marketplaces, user-agents and 3rd party apps. + +In general, providing a layered structure, using and reusing it, is better than having a monolithic design where a Dapp tied to an asset class and have all knowledge of the asset locally. The reasons are interoperability, scalability and security. Specifically, with the 1% property token as an example, the interoperability, scalability and security concerns are demonstrated below. + +## Interoperability: + +Suppose a property guru Peter wish to create a website called "Peter's Pride Asset", where he selects the best property available on the market. He can create a listing of those properties with rich information of the current price, location, years of the building and even photos, which the users can purchase with a click. There is no reason that he needs permission to do so because the data of those tokens are on the blockchain and the transaction of those tokens requires no middlemen. However, he would necessarily need to obtain the knowledge local to how to render the token on his website, like how to get the expiration of a token from its holding smart contract. If the underlying smart contract has gone through changes, like adding an attribute (e.g. council rate), his website would need to upgrade. Similarly, the transaction rule might be updated to require the buyer to submit an identity attestation as part of a purchase. Without a speedy upgrade, his users would submit transactions not conforming and gets rejected later in the blockchain. In the end, he would resort to passing the rendering and trading of the token to the Dapp tied to this token, returning to a centralised status and limit the innovation and competition in this space. + +In a similar fashion, suppose an investors' forum where the members are allowed to login using their 1% property token, the rendering of the token, under each post, would need to be sourced from the Dapp tied to the token, since it's too much work for a forum to render the token and keep the code updated. Such sourcing would require permission and might be tied to the availability of that Dapp. + +## Scalability + +Horizontally, the same type of asset might have tokens across multiple networks like Plasma Chains. A buyer is likely to be interested only in assets in Australia, and therefore only connected to the Australian 1% Property network. It can be difficult to have an all-knowing node to provided rendered token information for all existing tokens, especially if a network is designed with privacy in mind. Therefore, to scale, the knowledge about token (TBML) must be detached from the access to the token. + +Vertically, if we desire a token whose makeup is 1% property token from a sample of 100 global cities, for mid-big size investors to distribute the risk, a computer system that can manipulate such token must be built with the knowledge about member tokens. It again cannot depend on the availability, security and openness of the original Dapp tied to that asset. TBML would work in the middle for the making of such tokens. + +## Security + +It is impractical to improvise a schema where every transaction the user might sign is rendered in a user-readable format. It's easy to start with such an effort with a transaction data translation tool, translating enigmatic transaction payload to a user readable data, but ultimately system integration needs and UX needs would surpass what a translation engine can do. + +Take the 1% property token as an example, a confirmation might look like this: You are going to purchase 1% of property #802820 with 45 Ethers, are you sure? + +The user would be unsure if the glass ceiling designer 2-bedroom house he is watching is #802820. + +A translation tool cannot go further because properly rendering the property token requires more than word processing. This limit is easily hit even without introducing complex integration scenarios where more than one tokens are involved in a transaction (e.g. purchasing a used car and get a car token plus a warranty token). + +Eventually, a transaction is generated with code, and the user would have to delegate the trust to the code. In a user's words, it's like this: I am accessing the website tied to this token, so I will trust that this transaction I am signing is generated for the intention I have while using the website. + +TBML is designed to separate token rendering code and transaction generating code and package them into its own container, signed by a party that the user is likely to trust. There are a few trust levels, which we will detail in the later chapters. + +A user who is purchasing a 1% property token from Peter's Pride Property recommendation website can be provided with rendering and transaction packaged and signed by the same group of people who created the holding contract of such tokens, therefore the user can purchase assets from any website with a similar level of trust, or purchase it from a WeChat or Facebook private message and know it is the real token being rendered and transacted. + +## Design requirement for frictionless market + +TBML language has to provide: + +- Where to find the asset (which chain, what smart contract holds the asset) +- Vocabulary for token assets +- Methods to render and translate attributes in local languages +- Methods to obtain 3rd party information and a list of what 3rd parties are trustworthy. +- A superset of ABI information that informs users the purpose of the transaction. + +And it should be usable by: + +- The Dapp created by the token issuer; +- Any 3rd party Dapp that might use the token; +- A generic market not owned by the token issuer; +- Various user-agents, in rendering and using the assets in the wallet section of mobile and desktop wallets. + +We will proceed on addressing the need for "Integrating the Web" and come to a full picture of the design requirements of TBML in the following chapters. + +# address "Integrate the web" needs + +[todo] + ------------ [ the following is from the old 1st chapter ] ------------- From 5f4b09ef312a12e52fc921729dc434718b047f58 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Fri, 22 Feb 2019 22:41:52 +1100 Subject: [PATCH 012/598] add design requirements for "integrating the web" and re-order examples --- doc/design_paper.md | 394 +++++++++++++++++++++++++------------------- 1 file changed, 227 insertions(+), 167 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 81e508e4..eb5bcf70 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -93,7 +93,7 @@ TBML stands for Token Behaviour Markup Language and is our framework for definin It is similar to XML and allows HTML and JavaScript to be injected into the file so that it can define it's functionality, UI and relationships to tokens and other dapps on the blockchain. -# address "Frictionless Market" needs +## address "Frictionless Market" needs We assert that a language for dictating the behaviour of a token is needed. Its design requirement follows its intended goal: to facilitate frictionless market and to integrate the web. @@ -122,19 +122,19 @@ Any party is able to render and apply functions to the token using TBML, includi In general, providing a layered structure, using and reusing it, is better than having a monolithic design where a Dapp tied to an asset class and have all knowledge of the asset locally. The reasons are interoperability, scalability and security. Specifically, with the 1% property token as an example, the interoperability, scalability and security concerns are demonstrated below. -## Interoperability: +### Interoperability: Suppose a property guru Peter wish to create a website called "Peter's Pride Asset", where he selects the best property available on the market. He can create a listing of those properties with rich information of the current price, location, years of the building and even photos, which the users can purchase with a click. There is no reason that he needs permission to do so because the data of those tokens are on the blockchain and the transaction of those tokens requires no middlemen. However, he would necessarily need to obtain the knowledge local to how to render the token on his website, like how to get the expiration of a token from its holding smart contract. If the underlying smart contract has gone through changes, like adding an attribute (e.g. council rate), his website would need to upgrade. Similarly, the transaction rule might be updated to require the buyer to submit an identity attestation as part of a purchase. Without a speedy upgrade, his users would submit transactions not conforming and gets rejected later in the blockchain. In the end, he would resort to passing the rendering and trading of the token to the Dapp tied to this token, returning to a centralised status and limit the innovation and competition in this space. In a similar fashion, suppose an investors' forum where the members are allowed to login using their 1% property token, the rendering of the token, under each post, would need to be sourced from the Dapp tied to the token, since it's too much work for a forum to render the token and keep the code updated. Such sourcing would require permission and might be tied to the availability of that Dapp. -## Scalability +### Scalability Horizontally, the same type of asset might have tokens across multiple networks like Plasma Chains. A buyer is likely to be interested only in assets in Australia, and therefore only connected to the Australian 1% Property network. It can be difficult to have an all-knowing node to provided rendered token information for all existing tokens, especially if a network is designed with privacy in mind. Therefore, to scale, the knowledge about token (TBML) must be detached from the access to the token. Vertically, if we desire a token whose makeup is 1% property token from a sample of 100 global cities, for mid-big size investors to distribute the risk, a computer system that can manipulate such token must be built with the knowledge about member tokens. It again cannot depend on the availability, security and openness of the original Dapp tied to that asset. TBML would work in the middle for the making of such tokens. -## Security +### Security It is impractical to improvise a schema where every transaction the user might sign is rendered in a user-readable format. It's easy to start with such an effort with a transaction data translation tool, translating enigmatic transaction payload to a user readable data, but ultimately system integration needs and UX needs would surpass what a translation engine can do. @@ -150,7 +150,7 @@ TBML is designed to separate token rendering code and transaction generating cod A user who is purchasing a 1% property token from Peter's Pride Property recommendation website can be provided with rendering and transaction packaged and signed by the same group of people who created the holding contract of such tokens, therefore the user can purchase assets from any website with a similar level of trust, or purchase it from a WeChat or Facebook private message and know it is the real token being rendered and transacted. -## Design requirement for frictionless market +### Design requirement for frictionless market TBML language has to provide: @@ -169,9 +169,228 @@ And it should be usable by: We will proceed on addressing the need for "Integrating the Web" and come to a full picture of the design requirements of TBML in the following chapters. -# address "Integrate the web" needs +## address "Integrate the web" needs + +As we explained earlier, the web is poorly integrated, as the only link between the units of the web - websites, is, frankly, links. It carries no business process, authentication or trust relationship. There is no anchoring points for integration. + +We believe token is the anchor points for integration. Again, this is best illustrated by examples. + +Suppose a user purchases an iPhone from Harvey Norman, an online retailer, using blockchain. The input of the transaction will be some sort of currency. The output, in this case, will be three tokens: + +- a delivery token, which can be used to redeem the product from a local pick-up station. +- a warranty token, issued by Apple, which allows the iPhone to be serviced in other shops than Harvey Norman (e.g. Apple Centre). +- a receipt token, issued by Harvey Norman, which allows the product to be returned in 90 days. It's also useful for getting Tourism Tax Refund if you want to take the phone out of Australia. + +If without tokens as the integration anchor, the three different services might be carried out by different means. + +Delivery Token: + +Without it, a user might get a tracking number instead of a token, which itself carries no authentication information, so it can't be used to pick up the product unless a pickup code is provided, perhaps in SMS - even more poorly integrated with the process. + +With the use of a delivery token, the token status can be remotely updated by the delivery company, even messaging to users to inform a coming delivery (if the token is held in a mobile wallet). With a bit of cryptography, it's easy to authorise someone else to pick up a product. + +Warranty Token: + +Without it, a user might need the serial number and an online registration process to activate the warranty. She might even need to create an account for that, whose password she might soon forget. + +With the use of warranty token, the terms and expiration would be easy to find, as it is token properties. The user can log in to warranty service website with the token, forgoing an account. The token can be programmed to receive messages like product call back or emergency security update. + +Receipt Token + +Currently, lacking a reliable way to authenticate the purchase, the online-purchased products usually can't be returned in the store, but instead must be returned by online means, like posting it back. A token carries the means for authentication sufficient for the process to be done in store. Despite such a receipt token cannot be transfered or authorised, it is still useful for 3rd party integration. The Tax office will be satisfied that the receipt can't be faked without collaboration from the seller, and allows an easier tax-refund process. If the phone is bought for work, the employee can easily reclaim the expense from an employer with trust implied. + +As we can observe, by the use of tokens, normally scattered business process and web experience can finally be integrated. This ties closely to the other benefit of the blockchain: frictionless market. In this example: + +- When the phone is traded second hand, it would be easy to pass the warranty to the next user through a token transfer, opening the market further. + +- Since delivery can be tokenised, it would be easy for the buyer to choose his favourite delivery company without having to supply it with business context (address, product, weight, dates) manually, further opening the market for competition. + +This example can be further extended to solve complicated and innovative business cases. Suppose the purchase is not made with ordinary currency, but American Express point, the iPhone purchased will be insured for screen damage. As a result, the transaction will have a 4th token as output: an insurance token. + +When the mobile phone is repaired for screen damage, an invoice is issued in relation to the purchase record of the mobile phone, to prove that it is the same mobile phone purchased with AmericanExpress points, therefore, enabling the insurance to be paid on the spot. Without those tokens, the user will have to submit a billing statement (that points are deducted), an invoice (that a phone is purchased), evidence of repair (that the same phone is repaired), in order to submit a claim. Many users will surely miss one of those documents, and the claim may take a few days, yet prone to fraud. In this insurance case, blockchain allowed business process innovation that otherwise would require the user to sacrifice convenience, for the mere fact that too many parties are involved and there lack an integration anchor. + +The power of integration is further strengthened by the use of the Internet of Things. Let's imagine a future version of AirBNB, where the bookings are tokenised. A traveller can enter a booked AirBNB house by unlocking the smart-lock with his or her token, and the smart-lock would recognise who is the current owner of the booking token. + +If Alice owns a token that represents the right to use a room during certain time window, or "a booking" in user's terms, then the actions she could perform are: + +Check-in - either produce a QR code to verify the booking to the landlord, or use an NFC-enabled phone to open a smart-lock. + + + Singapore Telecom 13:45 31 Jan 2018 4G + +-----------------------------------------------+ + + +-----------------------------------------------+ + | AirBNB Booking | + | BELONGS EVERYWHERE | + | | + | +-------------------------------------------+ | + | | | | + | | + Create a new booking | | + | | | | + | +-------------------------------------------+ | + | | + | +-------------------------------------------+ | + | | 31 Jan 2018 á 2 Feb 2018 | | + | | | | + | | 92 Elias Road, Singpaore, 519951 | | + | | | | + | | 2 Bedroom unit, check in after 1pm | | + | +-------------------------------------------+ | + | | + | +-------------------------------------------+ | + | | 2 Feb 2018 á 6 Feb 2018 | | + | | | | + | | 9 Lemke Street, Muirhead, NT 0810 | | + | | | | + | | 3 Bedroom house, self-check in | | + | +-------------------------------------------+ | + | | + | +-------------------------------------------+ | + | | 7 Feb 2018 á 13 Feb 2018 | | + | | | | + | | Unit 1519, 28 Harbour Street, NSW 2000 | | + | | | | + | | 2 Bedroom unit, checkin after 1pm. | | + | +-------------------------------------------+ | + | | + +-----------------------------------------------+ + ◀ ◉ ◼ + + + + + Singapore Telecom 13:45 31 Jan 2018 4G + +-----------------------------------------------+ + + +-----------------------------------------------+ + | | + | AirBnB Booking | + | | + | 92 ELIAS ROAD, SINGAPORE, 519951 | + | | + | Check-in: 31 Jan 2018 1pm + 6pm | + | Checkout: 2 Feb 2018 10am | + | | + | Landlord: VeryHappyBunny | + | | + | +--------+ +----+ +--------+ +----+ +-------+ | + | |Transfer| |Lend| |Check in| |Sell| |Auction| | + | +--------+ +----+ +--------+ +----+ +-------+ | + | | + | | + | Conversation history | + | | + | +-------------------------------------------+ | + | | | | + | | You: We are travellers form Australia, | | + | | Judging from the pictures you have | | + | | a Veranda? | | + | | | | + | | VeryHappyBunny: A patio actually, you | | + | | can use it anytime. | | + | | | | + | | (You confirmed a booking) | | + | | | | + | | You: Good, we will get there after lunch. | | + | | | | + | +-------------------------------------------+ | + | | + | | + +-----------------------------------------------+ + + ◀ ◉ ◼ + + + +Observing the desirable integration, we can see TBML has to satisfy the following needs: + +- allow token actions to be defined. In the case of delivery, "redeem" action, which may be done with QR code or NFC, "authorise action", for someone else to pick up a delivery. +- allow blockchain functions to be accessed in the action. +- allow web functions to be accessed in action +- allow token status to be updated, through web api or signed message (more on that later). + +A combined example. + +We have demonstrated, by the example of 1% property token, that blockchain can enable a frictionless market through tokenisation of asset; we also have demonstrated by the example of AirBNB token that tokens can have function integration like opening a smart-lock during its booking validity. Let's see an example where both uses are combined - a car token. + +On one side, a car is an asset, so it can be bought, sold, transferred, auctioned, collaborated, insured, all enabled by blockchain. + +On the other side, a car has utility. A car's ownership token can convert a blockchain wallet into a car key, with additional functions like graphically represent the car's current location. Authorising someone to access your car, or renting it for profit, would be easily done by signing blockchain transactions or attestations, without passing car keys around. + +The following picture illustrated the look of such a car token in user's wallet: + + + Telstra 13:45 31 Jan 2018 4G + +-----------------------------------------+ + | | + | Holden Barina 2012 Ownership Token | + | | + | Make: Holden Year: 2013 Colour: Black | + | VIN: KL3TA48E9EB541191 | + | | + | +------+ +-------+ +------+ +--------+ | + | | Open | | Start | | Lock | | Locate | | + | +------+ +-------+ +------+ +--------+ | + | | + | +---------------+ | + | | Authorise use | | + | +---------------+ | + | | + | +-------------+ +--------------------+ | + | | Maintenance | | Roadside Assitance | | + | +-------------+ +--------------------+ | + | | + | +---------------+ | + | | Collateralise | | + | +---------------+ | + | | + | Registration: | + | | + | +------------------------------------+ | + | | | | +-----------------------------+ + | | Issuer: Roads & Maritime Services | | | | + | | Rego: CJ41HL Expiry: 2017-12-03 | | ------> | Access rego attestation | + | | | | | | + | +------------------------------------+ | +-----------------------------+ + | | + | Purchase: | + | | + | +------------------------------------+ | + | | | | + | | Issuer: Manheim Auctions | | +-----------------------------+ + | | Date: 2015+12+09 Price: $4724.83 | | | | + | | | | ------> | Access Invoice Token | + | +------------------------------------+ | | | + | | +-----------------------------+ + | Insurance | + | | + | +------------------------------------+ | +-----------------------------+ + | | | | | | + | | Issuer: Virgin Car Insurance | | | Access insurance token | + | | Start Date: 2017 12 30 | | | functions: | + | | | | ------> | | + | +------------------------------------+ | | · Claim | + | | | · Lump sum discount payment | + | Services: | | · Upgrade / downgrade | + | | | · Suspend policy | + | +------------------------------------+ | | | + | | | | +-----------------------------+ + | | 2016+06+01 Holden Capped Service | | + | | | | + | | 2016+12+15 Holden Capped Service | | + | | + | | + | | +--+ Tire replacement | | + | | | | + | | 2017+06+15 Holden Capped Service | | + | | | | + | +------------------------------------+ | + | | + +-----------------------------------------+ + + + ◀ ◉ ◼ + -[todo] @@ -298,94 +517,7 @@ Let's start with fungible tokens, as they are somewhat simpler. In the following [explains the attestations associated with this token.] -The case with non-fungible tokens are more complicated. Let's continue with the AirBNB example. If Alice owns a token that represents the right to use a room during certain time window, or "a booking" in user's terms, then the actions she could perform are: - -Check-in - either produce a QR code to verify the booking to the landlord, or use an NFC-enabled phone to open a smart-lock. - - - Singapore Telecom 13:45 31 Jan 2018 4G - +-----------------------------------------------+ - - +-----------------------------------------------+ - | AirBNB Booking | - | BELONGS EVERYWHERE | - | | - | +-------------------------------------------+ | - | | | | - | | + Create a new booking | | - | | | | - | +-------------------------------------------+ | - | | - | +-------------------------------------------+ | - | | 31 Jan 2018 á 2 Feb 2018 | | - | | | | - | | 92 Elias Road, Singpaore, 519951 | | - | | | | - | | 2 Bedroom unit, check in after 1pm | | - | +-------------------------------------------+ | - | | - | +-------------------------------------------+ | - | | 2 Feb 2018 á 6 Feb 2018 | | - | | | | - | | 9 Lemke Street, Muirhead, NT 0810 | | - | | | | - | | 3 Bedroom house, self-check in | | - | +-------------------------------------------+ | - | | - | +-------------------------------------------+ | - | | 7 Feb 2018 á 13 Feb 2018 | | - | | | | - | | Unit 1519, 28 Harbour Street, NSW 2000 | | - | | | | - | | 2 Bedroom unit, checkin after 1pm. | | - | +-------------------------------------------+ | - | | - +-----------------------------------------------+ - ◀ ◉ ◼ - - - - - Singapore Telecom 13:45 31 Jan 2018 4G - +-----------------------------------------------+ - - +-----------------------------------------------+ - | | - | AirBnB Booking | - | | - | 92 ELIAS ROAD, SINGAPORE, 519951 | - | | - | Check-in: 31 Jan 2018 1pm + 6pm | - | Checkout: 2 Feb 2018 10am | - | | - | Landlord: VeryHappyBunny | - | | - | +--------+ +----+ +--------+ +----+ +-------+ | - | |Transfer| |Lend| |Check in| |Sell| |Auction| | - | +--------+ +----+ +--------+ +----+ +-------+ | - | | - | | - | Conversation history | - | | - | +-------------------------------------------+ | - | | | | - | | You: We are travellers form Australia, | | - | | Judging from the pictures you have | | - | | a Veranda? | | - | | | | - | | VeryHappyBunny: A patio actually, you | | - | | can use it anytime. | | - | | | | - | | (You confirmed a booking) | | - | | | | - | | You: Good, we will get there after lunch. | | - | | | | - | +-------------------------------------------+ | - | | - | | - +-----------------------------------------------+ - - ◀ ◉ ◼ +The case with non-fungible tokens are more complicated. Let's continue with the AirBNB example. [The concept of delivery vs payment and how it is useful in both investments and consumption.] @@ -483,75 +615,3 @@ Product ownership token (The whole concept can be illustrated in a few examples, e.g. this car token) - - Telstra 13:45 31 Jan 2018 4G - +-----------------------------------------+ - | | - | Holden Barina 2012 Ownership Token | - | | - | Make: Holden Year: 2013 Colour: Black | - | VIN: KL3TA48E9EB541191 | - | | - | +------+ +-------+ +------+ +--------+ | - | | Open | | Start | | Lock | | Locate | | - | +------+ +-------+ +------+ +--------+ | - | | - | +---------------+ | - | | Authorise use | | - | +---------------+ | - | | - | +-------------+ +--------------------+ | - | | Maintenance | | Roadside Assitance | | - | +-------------+ +--------------------+ | - | | - | +---------------+ | - | | Collateralise | | - | +---------------+ | - | | - | Registration: | - | | - | +------------------------------------+ | - | | | | +-----------------------------+ - | | Issuer: Roads & Maritime Services | | | | - | | Rego: CJ41HL Expiry: 2017-12-03 | | ------> | Access rego attestation | - | | | | | | - | +------------------------------------+ | +-----------------------------+ - | | - | Purchase: | - | | - | +------------------------------------+ | - | | | | - | | Issuer: Manheim Auctions | | +-----------------------------+ - | | Date: 2015+12+09 Price: $4724.83 | | | | - | | | | ------> | Access Invoice Token | - | +------------------------------------+ | | | - | | +-----------------------------+ - | Insurance | - | | - | +------------------------------------+ | +-----------------------------+ - | | | | | | - | | Issuer: Virgin Car Insurance | | | Access insurance token | - | | Start Date: 2017 12 30 | | | functions: | - | | | | ------> | | - | +------------------------------------+ | | · Claim | - | | | · Lump sum discount payment | - | Services: | | · Upgrade / downgrade | - | | | · Suspend policy | - | +------------------------------------+ | | | - | | | | +-----------------------------+ - | | 2016+06+01 Holden Capped Service | | - | | | | - | | 2016+12+15 Holden Capped Service | | - | | + | | - | | +--+ Tire replacement | | - | | | | - | | 2017+06+15 Holden Capped Service | | - | | | | - | +------------------------------------+ | - | | - +-----------------------------------------+ - - - ◀ ◉ ◼ - - From 94da1e9eee341f31872138597751ad185fed78ed Mon Sep 17 00:00:00 2001 From: colourful-land Date: Sat, 23 Feb 2019 12:55:31 +1100 Subject: [PATCH 013/598] add types of tokens chapter --- doc/design_paper.md | 47 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/doc/design_paper.md b/doc/design_paper.md index dccfdd07..632ce950 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -308,6 +308,53 @@ Check-in - either produce a QR code to verify the booking to the landlord, or us ◀ ◉ ◼ +## Types of tokens + +## Types of tokens + +Since 2018, Ethereum community has roughly categorised tokens as fungible tokens and non-fungible tokens. + +Fungible tokens refer to the currency-like token with a balance, typically implemented in ERC20, although in practice currency functions like pre-authorisation and setting up of state channel requires richer functions than typical ERC20. + +Non-fungible tokens refer to crypto-kittens and typically have one unit per token. + +The categorisation isn't capturing the full spectrum of the tokens we could and may overlap in some cases. Taking the 1% per cent property token we demonstrated earlier as an example, each of such token is fungible with another issued by the same issuer for the same property. Maybe with the exception of the Chinese community which usually overvalue the token with a sequence number of 88, but if we allow any percentage number to be tokenised, say, allowing one to purchase 0.88%, then the sequence number will be refactored out of the way too, making each partial ownership token of the same property strictly fungible. However, apparently, a percentage of ownership of property A and a percentage of ownership of property B are not fungible with each other. + +This paper re-introduces the concept of attestations - it has been there for decades but wasn't fully utilized. From there, this paper categorises tokens as "blockchain token" and "attestation". The former type includes both fungible and non-fungible tokens. The latter type "attestation" will be explained here. + +### Attestations + +Attestation is a cryptographically signed message testifying something on a subject - a person, a token, or another attestation. Since it is specific to that subject being attested, it is not transferrable on its own on the blockchain. + +In our previous car ownership token example, the car ownership token would be a blockchain token, where the typical buy, sell and transfer rules can apply. The insurance token on it, however, is not a blockchain token. If the insurance is compulsory, it is an attestation on that car, therefore cannot be transferred on its own. If the insurance is comprehensive, it is an attestation on the car and the driver, and cannot be seamlessly transferred even if the car is transferred. + +If an attestation is not transferrable, then why does it have to be on the blockchain? The answer is it doesn't. + +Take a person identity attestation for example. Unless it is used for a blockchain transaction or revoked for some reason, there is no reason that it should have any trace on blockchains like public Ethereum. They are, still, an item in the user's wallet, since they might need to be prolonged, re-attested due to change of a person's identity or used to login to services the same way Estonian e-residency attestation can be used to login to web services. + +An attestation can affect transactions. For example, a VIP member can enjoy a 10% discount on services - such business rule would require a VIP member attestation to be used for the cryptocurrency transaction for purchasing the service. An attestation of Holden Capped Car services, which is valid for 5 years, allow the car to be serviced with the bill capped to a certain amount before its expiry. + +Sometimes, an attestation dictates what transactions can happen. + +As a subscriber of *The Economist*, I commit to paying for each issue as they are published. This is done by me sending a pre-authorisation to withdraw a subscription fee bi-weekly from my Ethereum account. Such a pre-authorisation would be an attestation in the wallet of The Economist, which provides a "charge" action that The Economist could use bi-weekly. + +For privacy reasons, or to combat linkability (the subject of an attestation being identified by the public use of such an attestation), the attestation used in transactions is of a different form than the one that lies in a user's wallet. The authors of this paper addressed this issue in another paper [cite]. + +In all of the previous examples, attestations only leave traces when a transaction needs it. There are cases when attestations leave traces on the blockchain when they are created, or revoked. + +To explain the use case where the *issuing* of attestation has to happen on the blockchain or with blockchain trace, take the aeroplane engine for example, with a substantial resale value, the repair facts of this engine, in the form of attestations, affects valuation significantly. Such attestations are in the seller's wallet, but an aeroplane service provider must add a hash of such an attestation each time the engine undergoes maintenance. The buyers would not purchase if they are not presented with these attestations that match the blockchain records. + +To explain the use case when the *revocation* of an attestation has to happen on the blockchain, let's consider an attestation called FIFA ticket. Issued by the event's organiser, it attests the owner's right to enter the venue, usually after the user has paid or was gifted the ticket. Let's assume 90% of the tickets are purchased with non-crypto currency, therefore these tickets would not have a trace on the blockchain. However, if a ticket's owner decides to sell his tickets on the blockchain following the corresponding smart contract rules, the ticket has to be used as the input of such a transaction and considered consumed, while a blockchain token representing the same entitlement would be created and traded. The writes of this paper organised a FIFA ticket experiment in mid-2018 to test the concepts, and internally we call such an attestation "a spawnable" as its use spawns a blockchain token. The detail of that experiment can be found in another paper [cite]. + + +-- + +Authori's note: + +Assets: crypto kitten, FIFA ticket, right to a bottle of wine, ownership of 1% of a house, a piece of armour in a video game, dice in a video game. + +Attestations: crypto-kitten vouchers, FIFA ticket redeem coupons, American Express Centurion status, Friendship Token (a signed message from Michael Jackson saying that Victor Zhang is a friend), identity proof. + [The concept of delivery vs payment and how it is useful in both investments and consumption.] From 5c4d5772608be0ca7ae735e489e3066f7ced3568 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Sat, 23 Feb 2019 16:18:02 +1100 Subject: [PATCH 014/598] re-order the paragraphs of the starting chatper --- doc/design_paper.md | 52 +++++++++++++++++++++++++++++---------------- 1 file changed, 34 insertions(+), 18 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 9c121609..23c73e5a 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -1,34 +1,44 @@ # TBML Whitepaper -## Introduction +## Author's note -Blockchain technology has two primary functions that can change the way individuals and businesses behave; the first is the capacity to create a frictionless market and the second is the capacity to integrate the web. +The remarkable crypto speculations that took place in 2017 - 2018 brought our attention to tokens. As we bought and sold them, we forgot that they were intended to be used. This is similar to the housing bubble of 2008 in which people forgot that houses were not merely speculative assets but rather a place for people to live. -This paper will first address the vision of where we can be and follow up with the design and reasoning behind the architecture needed on top of blockchains. We will also present our technology known as TBML which provides this critical layer and makes the architecture possible. +To provide practical use of blockchain, we have to understand what is its function to the world economy and the Internet. The authors of this paper are technical experts who went through years of study and exploration in the use of blockchain in cryptocurrency and in finance, both in traditional financial instutitions and the newer crypto startups. Though such activities we came to realise that blockchain has two primary functions, which we will elaborate in this paper. -## Author's note +Despite the great folly in 2017-2018, it is not a bad thing to intially focus on tokens. Tokens, as the authors will elaborate, are the enabler of the two primary functions. Both are provided by tokenisation. + +Previous blockchain work mostly focused on enriching the capacity of blockchain technology. This paper will focus on tokenisation and provide an standardization effort known as TBML which address the tokenisation, therefore making the blockchain technical stack complete and useful for the economy and the Internet. + +Just like houses are useful for people to live. + +## Introduction -The remarkable crypto speculations that took place in 2017 - 2018 brought our attention to tokens. As we bought and sold them, we forgot that they were intended to be used. This is similar to the housing bubble of 2008 in which people forgot that houses were not merely speculative assets but rather a place for people to live. +Blockchain technology has two primary functions that serve essential purposes for the future economy and the future Internet. -Despite this folly, it is not a bad thing to intially focus on tokens as they are the enabler of the two primary functions which we will elaborate on below. +- For the future economy, blockchain provids a frictionless market. -## The vision: frictionless markets +- For the future Intnert, blockchain can integrate the web. + +This paper will first address the vision of where we can be and follow up with the design and reasoning the architecture needed on top of blockchains. Then it comes down to TBML, a key missing layer, and explain its design priciple and the way we are building it. + +## Frictionless markets The 80s' "Back to the Future" featured a world of powerful machines filled with hovering boards and flying cars. It didn't happen. As Peter Thiel once famously lamented, "we were promised flying cars, instead we got a 140 characters". The technological advancement of our time is beyond the imagination of the 80s science fiction movies, albeit not through more powerful machinery, but more efficient use of information. Ride-sharing revolutionised the way we organise our daily lives and Airbnb changed the way we travel. These are the new markets and they incur less cost to operate, are more accessible and have finer operational units. -Despite this web 2.0 revolution, the majority of markets still operate with high costs. The stock market for example, has so much overhead that it is only justifiable for multi-million dollar businesses which rely on the trust of rules and regulations to operate. +Despite this web 2.0 revolution, the majority of markets still operate with high costs. The stock market for example, has so much overhead that it is only justifiable for multi-million dollar businesses which rely on the trust of rules and regulations to operate. -## Can we create a more efficient market without the overhead? +### Can we create a more efficient market without the overhead? -Can we tokenise, for example, 1% of a property, so that the property market can react faster than the typical month-long property purchase-sales cycle? +Can we tokenise, for example, 1% of a property, so that the property market can react faster than the typical month-long property purchase-sales cycle? -Can we tokenise electricity, so that power users can benefit from finer scheduling of the use of resources, and households can benefit from collecting surplus sun energy? +Can we tokenise electricity, allowing power users to benefit from finer scheduling of the use of resources, and households to benefit from collecting surplus sun energy? -Can we tokenise AirBnB bookings, so that hosts can purchase a guaranteed cash flow from the market, while speculators profit from predicting the travel needs? +Can we tokenise AirBnB bookings, so that hosts can purchase a guaranteed cash flow from the market, while speculators profit from predicting the travel needs? -Can we tokenise the risk of a shipment, so that small importers and exports, not significant enough to obtain letters of credit, can compete in international markets and perhaps eventually outcompete the traditional model like AirBNB outcompetes hotels? +Can we tokenise the risk and reward of international trades, so that small importers and exports, not significant enough to obtain letters of credit, can compete in international markets and perhaps eventually outcompete the traditional model like AirBNB outcompetes hotels? Can we tokenise insurance that depends on cryptographic proofs, so that the insurer bares less cost of fraudulent documents? Can we decentralise the insurers altogether? @@ -51,12 +61,16 @@ During the speculative bubble of 2017, a power token ICO, does not need to provi With the madness over, it is time to present a framework for describing such token behaviours. Such a framework must fit tokens into different environments for them to function as use-cases, they must: + - Let the user interact with different IT systems and APIs + - Make them render-able and associated with the actions they can perform in the user's wallet + - Making them fit into listing or auction based general-purpose markets; building one marketplace for one token type would be too inefficient. + - Allow new protocols to be developed on top of them (streaming, communication, staking, collateralization, etc.) -## Integrating the web. +## Integrate the web. Tim Berners-Lee and the innovators of the world wide web modelled the web primarily on a public library model and computer-human interaction model. @@ -74,15 +88,17 @@ It's easy to see the cause of the inconvenience, the web is poorly integrated. W The answer to an integrated web requires a few building blocks that weren't in the blueprint: authentication, ownership, transfer of value and trading. -The web doesn't have a built-in authentication mechanism†. The add-on "Sign in with Facebook" merely tried to provide authentication through a trusted 3rd party, which, despite privacy and availability concerns, is only good for account authentication and not for business logic. +The web doesn't have a built-in authentication mechanism[^1]. The add-on "Sign in with Facebook" merely tried to provide authentication through a trusted 3rd party, which, despite privacy and availability concerns, is only good for account authentication and not for business logic. -† Despite the excellent efforts on client/server certificates in TLS, these authentication methods are not for processes, but sites only. It's a delegation model. Imagine a buyer not checking if a title deed is real, but only checks if the seller's name matches the one on the deed. That would be the delegation model used in TLS. In fact, TLS can't guarantee anything on the website is real, only that the website is real. +[^1]: Despite the excellent efforts on client/server certificates in TLS, these authentication methods are not for processes, but only for sites. It's a delegation model. Imagine a buyer not checking if a title deed is real, but only checks if the seller's name matches the one on the deed. That would be the delegation model used in TLS. In fact, TLS can't guarantee anything on the website is real, only that the website is real. The unit of trust here is certainly not fine enough for web to deliver integrated experience. -For example, the simple business logic: "the owner of the property is able to check its easement information", doesn't require account authentication on its own and it would be a bad idea to add account authentication on top of it. This is because if the property is sold, the new property owner would now need to create a new account at the easement service website and secure it with the proof of ownership to the property. This process is onerous and inflexible, as it doesn't allow the owner to authorise the access to a 3rd party like a landscape planner or a pest inspector. Such authentication needs are easily found in healthcare, retail and almost every web-based business. Today, we repeatedly add more and more accounts to address such integration needs and when our tool is a hammer every problem looks like a nail. +And "Account authentication" is not a subsitute of web integration. For example, the simple business logic: "the owner of the property is able to check its easement information", doesn't require account authentication, and it would be a bad idea to add account authentication on top of it. If you force "Account authentication" model, when the property is sold, the new property owner would now need to create a new account at the easement service website and secure it with the proof of ownership to the property. This process is onerous. It's also inflexible, as it doesn't allow the owner to authorise the access to a 3rd party like a landscape planner or a pest inspector. Such integration needs, badly addressed by account authentication, are easily found in healthcare, retail and almost every web-based business. Today, we are still adding more and more accounts to address the growing integration needs. It's a case of hammering every problem down as if it is a nail. The web also doesn't have an ownership or transfer of value mechanism. If Alice is interested in a "Magic: The Gathering" card, and it popped up in the market, Alice will need to create an account on a website like mtgox.com, shorthand for "Magic The Gathering: Gox", to trade it. She might also need to sort out a payment method with a Paypal account. Properly integration is often lacking for complexity or security reasons, and the user has to do it manually. For every integration, the user needs to own two accounts and when she wants to use the card in an online game, she will need a third account to login to the game. She can't click on a link in an email and immediately use the card in a game. -It's easy to see that these building blocks are necessary for an integrated web and that blockchains can serve this need, but what's the path to get there? We assert that the way to get there is a data processing language that defines tokens and their behaviour. In such a design, the token is the integration point and the language is the interface for the integrations. Tokens seamlessly go accross systems, examplified by a property token being used for renting, insurance, pest inspection, mortgages and many other systems. It must define its own behaviour pattern which can be used to interact with users to show the status and allow functions to be natively integrated. In other words, a token must have it's own UI and integration logic. +It's easy to see that these building blocks are necessary for an integrated web and that blockchains can serve this need, but what's the path to get there? + +The short answer is "tokenisation". We assert that the way to get there is a data processing language that defines tokens and their behaviour. In such a design, the token is the integration point and the language is the interface for the integrations. Tokens seamlessly go accross systems, examplified by a property token being used for renting, insurance, pest inspection, mortgages and many other systems. It must define its own behaviour pattern which can be used to interact with users to show the status and allow functions to be natively integrated. In other words, a token must have it's own UI and integration logic. [a picture of an example of property token that has two statues side by side. The left side has an action button (among others) that says Power Connection. The right side has the same token, but with a "Leased" label on it, and the "Power Connection" action button is invalidated because now it is with the lessor] From 463a1da1367a034391a03f7cfcad6e21d7a652c8 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Sat, 23 Feb 2019 17:07:11 +1100 Subject: [PATCH 015/598] - format, adding a page-break - replace delivery token with shipping token to avoid conflict with deliverables --- doc/design_paper.md | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 23c73e5a..f84cf5c8 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -1,17 +1,20 @@ # TBML Whitepaper -## Author's note +# Author's note The remarkable crypto speculations that took place in 2017 - 2018 brought our attention to tokens. As we bought and sold them, we forgot that they were intended to be used. This is similar to the housing bubble of 2008 in which people forgot that houses were not merely speculative assets but rather a place for people to live. To provide practical use of blockchain, we have to understand what is its function to the world economy and the Internet. The authors of this paper are technical experts who went through years of study and exploration in the use of blockchain in cryptocurrency and in finance, both in traditional financial instutitions and the newer crypto startups. Though such activities we came to realise that blockchain has two primary functions, which we will elaborate in this paper. -Despite the great folly in 2017-2018, it is not a bad thing to intially focus on tokens. Tokens, as the authors will elaborate, are the enabler of the two primary functions. Both are provided by tokenisation. +Despite the great folly in 2017-2018, it is not a bad thing to intially focus on tokens. Tokens, as the authors will elaborate, are the enabler of the two primary functions. We define the technique to make it happen "Tokenisation". Previous blockchain work mostly focused on enriching the capacity of blockchain technology. This paper will focus on tokenisation and provide an standardization effort known as TBML which address the tokenisation, therefore making the blockchain technical stack complete and useful for the economy and the Internet. Just like houses are useful for people to live. +\pagebreak + + ## Introduction Blockchain technology has two primary functions that serve essential purposes for the future economy and the future Internet. @@ -80,7 +83,7 @@ In the computer-human interaction model, two players are having a conversation - Therefore the web was built as a giant library where each book is a computer with whom one can have a conversation. It's probably where Facebook got its namesake inspiration - a website that is a book. -This design has caused a lot of modern inconveniences. A user would receive an email about the shoes she ordered, she then takes the delivery tracking number, opens the Australia Post website - another book in the giant library of the web - and types in the tracking number to find the current status. On a different day, the same user might pause as she books two tickets for an opera, switch to her frequent flyer app, copy that number over and paste it into the order to collect the points. She might struggle a bit installing that frequent flyer app to start with. +This design has caused a lot of modern inconveniences. A user would receive an email about the shoes she ordered, she then takes the shipping tracking number, opens the Australia Post website - another book in the giant library of the web - and types in the tracking number to find the current status. On a different day, the same user might pause as she books two tickets for an opera, switch to her frequent flyer app, copy that number over and paste it into the order to collect the points. She might struggle a bit installing that frequent flyer app to start with. Why are we doing so much copy and pasting when machines are exceptionally good at doing those? It's because the web is like a giant library by design, and we are like readers keeping notes of the index numbers under our sleeves. It's not designed like a personal assistant. @@ -193,33 +196,37 @@ We believe token is the anchor points for integration. Again, this is best illus Suppose a user purchases an iPhone from Harvey Norman, an online retailer, using blockchain. The input of the transaction will be some sort of currency. The output, in this case, will be three tokens: -- a delivery token, which can be used to redeem the product from a local pick-up station. +- a shipping token, which can be used to redeem the product from a local pick-up station. - a warranty token, issued by Apple, which allows the iPhone to be serviced in other shops than Harvey Norman (e.g. Apple Centre). - a receipt token, issued by Harvey Norman, which allows the product to be returned in 90 days. It's also useful for getting Tourism Tax Refund if you want to take the phone out of Australia. If without tokens as the integration anchor, the three different services might be carried out by different means. -Delivery Token: +--- + +#### Shipping Token Without it, a user might get a tracking number instead of a token, which itself carries no authentication information, so it can't be used to pick up the product unless a pickup code is provided, perhaps in SMS - even more poorly integrated with the process. -With the use of a delivery token, the token status can be remotely updated by the delivery company, even messaging to users to inform a coming delivery (if the token is held in a mobile wallet). With a bit of cryptography, it's easy to authorise someone else to pick up a product. +With the use of a shipping token, the token status can be remotely updated by the shipping company, even messaging to users to inform an upcoming delivery (if the token is held in a mobile wallet). With a bit of cryptography, it's easy to authorise someone else to pick up a product. -Warranty Token: +#### Warranty Token Without it, a user might need the serial number and an online registration process to activate the warranty. She might even need to create an account for that, whose password she might soon forget. With the use of warranty token, the terms and expiration would be easy to find, as it is token properties. The user can log in to warranty service website with the token, forgoing an account. The token can be programmed to receive messages like product call back or emergency security update. -Receipt Token +#### Receipt Token Currently, lacking a reliable way to authenticate the purchase, the online-purchased products usually can't be returned in the store, but instead must be returned by online means, like posting it back. A token carries the means for authentication sufficient for the process to be done in store. Despite such a receipt token cannot be transfered or authorised, it is still useful for 3rd party integration. The Tax office will be satisfied that the receipt can't be faked without collaboration from the seller, and allows an easier tax-refund process. If the phone is bought for work, the employee can easily reclaim the expense from an employer with trust implied. +--- + As we can observe, by the use of tokens, normally scattered business process and web experience can finally be integrated. This ties closely to the other benefit of the blockchain: frictionless market. In this example: - When the phone is traded second hand, it would be easy to pass the warranty to the next user through a token transfer, opening the market further. -- Since delivery can be tokenised, it would be easy for the buyer to choose his favourite delivery company without having to supply it with business context (address, product, weight, dates) manually, further opening the market for competition. +- Since shipping can be tokenised, it would be easy for the buyer to choose his favourite shipping company without having to supply it with business context (address, product, weight, dates) manually, further opening the market for competition. This example can be further extended to solve complicated and innovative business cases. Suppose the purchase is not made with ordinary currency, but American Express point, the iPhone purchased will be insured for screen damage. As a result, the transaction will have a 4th token as output: an insurance token. @@ -320,9 +327,12 @@ Check-in - either produce a QR code to verify the booking to the landlord, or us Observing the desirable integration, we can see TBML has to satisfy the following needs: -- allow token actions to be defined. In the case of delivery, "redeem" action, which may be done with QR code or NFC, "authorise action", for someone else to pick up a delivery. +- allow token actions to be defined. In the case of shipping token, "redeem" action, which may be done with QR code or NFC, "authorise action", for someone else to pick up a delivery. + - allow blockchain functions to be accessed in the action. + - allow web functions to be accessed in action + - allow token status to be updated, through web api or signed message (more on that later). A combined example. From 11d40ebf82604c94c38069c892e07dc63f6b046a Mon Sep 17 00:00:00 2001 From: colourful-land Date: Sat, 23 Feb 2019 17:59:47 +1100 Subject: [PATCH 016/598] small modification ready to share the first draft --- doc/design_paper.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index f84cf5c8..8f1b61be 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -29,11 +29,11 @@ This paper will first address the vision of where we can be and follow up with t The 80s' "Back to the Future" featured a world of powerful machines filled with hovering boards and flying cars. It didn't happen. As Peter Thiel once famously lamented, "we were promised flying cars, instead we got a 140 characters". The technological advancement of our time is beyond the imagination of the 80s science fiction movies, albeit not through more powerful machinery, but more efficient use of information. -Ride-sharing revolutionised the way we organise our daily lives and Airbnb changed the way we travel. These are the new markets and they incur less cost to operate, are more accessible and have finer operational units. +Ride-sharing revolutionised the way we organise our daily lives and Airbnb changed the way we travel. These are the new, less frictional markets. They incur less cost to operate, are more accessible and have finer operational units. -Despite this web 2.0 revolution, the majority of markets still operate with high costs. The stock market for example, has so much overhead that it is only justifiable for multi-million dollar businesses which rely on the trust of rules and regulations to operate. +But despite this web 2.0 revolution, the majority of markets still operate with high costs. The stock market for example, has so much overhead that it is only justifiable for multi-million dollar businesses which rely on the trust of rules and regulations to operate. -### Can we create a more efficient market without the overhead? +### Can we create a frictionless market through tokenisation? Can we tokenise, for example, 1% of a property, so that the property market can react faster than the typical month-long property purchase-sales cycle? @@ -43,12 +43,14 @@ Can we tokenise AirBnB bookings, so that hosts can purchase a guaranteed cash fl Can we tokenise the risk and reward of international trades, so that small importers and exports, not significant enough to obtain letters of credit, can compete in international markets and perhaps eventually outcompete the traditional model like AirBNB outcompetes hotels? -Can we tokenise insurance that depends on cryptographic proofs, so that the insurer bares less cost of fraudulent documents? Can we decentralise the insurers altogether? +Can we create insurance token that depends on cryptographic proofs, so that the insurer can remove, from their pricing, their costs incurred by fraudulent documents? Can we decentralise the insurers altogether? Blockchain technology can provide the foundational layer to achieve these. A lot of work needs to be done to ensure scalability, privacy and quality methods to define how tokens should be used and traded. This paper does not intend to provide a full solution, instead, it focuses on the last part, on quality methods to define how tokens should be used and traded. +### The challenge of tokenisation + Tokens have different properties. Do tokens expire? AirBNB booking tokens certainly do, but 1% ownership of a property tokens probably don't. Should the token owner receive a notification on a specific event? Power tokens certainly need that, for the change in the power supply is dynamic. Is a token stream-able? How does it look on the user's mobile, and how is it called in a users language? From ace7997b4b6f63a196a3c971319e2279086d50d6 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Sat, 23 Feb 2019 20:50:45 +1100 Subject: [PATCH 017/598] change title to design paper for a few days until its more mature --- doc/design_paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 8f1b61be..15b92c39 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -1,4 +1,4 @@ -# TBML Whitepaper +# TBML Design Paper # Author's note From 2f808a53b13e3e9a26cffc046d47ab67e902c672 Mon Sep 17 00:00:00 2001 From: James Sangalli Date: Sat, 23 Feb 2019 21:21:02 +1100 Subject: [PATCH 018/598] edited the next chapters and removed old chapter --- doc/design_paper.md | 217 +++++++++++++++++++------------------------- 1 file changed, 94 insertions(+), 123 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 8f1b61be..f67ad174 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -2,36 +2,30 @@ # Author's note -The remarkable crypto speculations that took place in 2017 - 2018 brought our attention to tokens. As we bought and sold them, we forgot that they were intended to be used. This is similar to the housing bubble of 2008 in which people forgot that houses were not merely speculative assets but rather a place for people to live. +The remarkable crypto speculations that took place in 2017 - 2018 brought our attention to tokens. As we bought and sold them, we forgot their intended purpose was to be used; this is analogous to the housing bubble in which people forgot that houses were not merely speculative assets but rather a place to live. -To provide practical use of blockchain, we have to understand what is its function to the world economy and the Internet. The authors of this paper are technical experts who went through years of study and exploration in the use of blockchain in cryptocurrency and in finance, both in traditional financial instutitions and the newer crypto startups. Though such activities we came to realise that blockchain has two primary functions, which we will elaborate in this paper. +To provide a practical use of the blockchain, we must understand its utility to the world economy and the internet. The authors of this paper are technical experts who went through years of study and exploration into its applications in cryptocurrency and finance both via financial institutions and startups. With this experience, we came to realise that the blockchain has two primary functions to which we will elaborate further in this paper. -Despite the great folly in 2017-2018, it is not a bad thing to intially focus on tokens. Tokens, as the authors will elaborate, are the enabler of the two primary functions. We define the technique to make it happen "Tokenisation". +Despite the great folly in 2017-2018, it is not a bad thing to initially focus on tokens. Tokens, as the authors will elaborate, are the enabler of the two primary functions. We define the technique to make it happen in "Tokenisation". -Previous blockchain work mostly focused on enriching the capacity of blockchain technology. This paper will focus on tokenisation and provide an standardization effort known as TBML which address the tokenisation, therefore making the blockchain technical stack complete and useful for the economy and the Internet. - -Just like houses are useful for people to live. +Previous efforts in this industry primarily focused on enriching the capacity of the technology. This paper will focus on tokenisation and provide a standardisation effort known as TBML (Token Behaviour Markup Language) which will make the blockchain technical stack complete and useful for the economy and the internet. \pagebreak ## Introduction -Blockchain technology has two primary functions that serve essential purposes for the future economy and the future Internet. - -- For the future economy, blockchain provids a frictionless market. +Blockchain technology has two primary functions that serve essential purposes for the future economy and the future Internet. These are providing a frictionless market and integrating the web. -- For the future Intnert, blockchain can integrate the web. - -This paper will first address the vision of where we can be and follow up with the design and reasoning the architecture needed on top of blockchains. Then it comes down to TBML, a key missing layer, and explain its design priciple and the way we are building it. +This paper will address the vision of where we can be and follow up with the design and reasoning behind the architecture needed on top of the blockchain. We will then explain TBML which is a critical missing layer and go over its design principles and how we are building it. ## Frictionless markets -The 80s' "Back to the Future" featured a world of powerful machines filled with hovering boards and flying cars. It didn't happen. As Peter Thiel once famously lamented, "we were promised flying cars, instead we got a 140 characters". The technological advancement of our time is beyond the imagination of the 80s science fiction movies, albeit not through more powerful machinery, but more efficient use of information. +The 80s' "Back to the Future" featured a world of powerful machines filled with hovering boards and flying cars. It didn't happen. As Peter Thiel once famously lamented, "we were promised flying cars; instead, we got 140 characters". The technological advancement of our time is beyond the imagination of the 80s science fiction movies, albeit not through more powerful machinery, but more efficient use of information. -Ride-sharing revolutionised the way we organise our daily lives and Airbnb changed the way we travel. These are the new, less frictional markets. They incur less cost to operate, are more accessible and have finer operational units. +Ride-sharing revolutionised the way we organise our daily lives, and AirBNB changed the way we travel. These are the new, less frictional markets. They incur less cost to operate, are more accessible and have finer operational units. -But despite this web 2.0 revolution, the majority of markets still operate with high costs. The stock market for example, has so much overhead that it is only justifiable for multi-million dollar businesses which rely on the trust of rules and regulations to operate. +But despite this web 2.0 revolution, the majority of markets still operate with high costs. The stock market, for example, has so much overhead that it is only justifiable for multi-million dollar businesses which rely on the trust of rules and regulations to operate. ### Can we create a frictionless market through tokenisation? @@ -39,19 +33,19 @@ Can we tokenise, for example, 1% of a property, so that the property market can Can we tokenise electricity, allowing power users to benefit from finer scheduling of the use of resources, and households to benefit from collecting surplus sun energy? -Can we tokenise AirBnB bookings, so that hosts can purchase a guaranteed cash flow from the market, while speculators profit from predicting the travel needs? +Can we tokenise AirBNB bookings, so that hosts can purchase a guaranteed cash flow from the market, while speculators profit from predicting the travel needs? -Can we tokenise the risk and reward of international trades, so that small importers and exports, not significant enough to obtain letters of credit, can compete in international markets and perhaps eventually outcompete the traditional model like AirBNB outcompetes hotels? +Can we tokenise the risk and reward of international trades, so that small importers and exports, not significant enough to obtain letters of credit, can compete in global markets and perhaps eventually outcompete the traditional model like AirBNB outcompetes hotels? -Can we create insurance token that depends on cryptographic proofs, so that the insurer can remove, from their pricing, their costs incurred by fraudulent documents? Can we decentralise the insurers altogether? +Can we create an insurance token that depends on cryptographic proofs, so that the insurer can remove from their pricing, the costs incurred by fraudulent documents? Can we decentralise the insurers altogether? Blockchain technology can provide the foundational layer to achieve these. A lot of work needs to be done to ensure scalability, privacy and quality methods to define how tokens should be used and traded. -This paper does not intend to provide a full solution, instead, it focuses on the last part, on quality methods to define how tokens should be used and traded. +This paper does not intend to provide a full solution; instead, it focuses on the last part, on quality methods to define how tokens should be used and traded. ### The challenge of tokenisation -Tokens have different properties. Do tokens expire? AirBNB booking tokens certainly do, but 1% ownership of a property tokens probably don't. Should the token owner receive a notification on a specific event? Power tokens certainly need that, for the change in the power supply is dynamic. Is a token stream-able? +Tokens have different properties. Do tokens expire? AirBNB booking tokens certainly do, but 1% ownership of property tokens probably don't. Should the token owner receive a notification on a specific event? Power tokens certainly need that, for the change in the power supply is dynamic. Is a token stream-able? How does it look on the user's mobile, and how is it called in a users language? @@ -61,11 +55,11 @@ If a token entitles the user to do specific actions online, how can the user log We have done very little on making the tokens interoperable with different methods of trading, listing and rating; there is nearly zero effort devoted to making tokens represent *goods and services* - a basic need for an efficient market. -During the speculative bubble of 2017, a power token ICO, does not need to provide any explanation of how the tokens can be used. All speculators need to know is that they represent a "stake in the future tokenised electricity". As long as the token can fill investors with imagination, it's good enough for an ICO. There is, no more functionality needed other than an ERC20 interface. Such a speculative token doesn't depend on attestations - the proof of actual power production - nor does it need properties like where the energy is provided or for how long it is available. There is no need to do actual work besides the marketing and creation of an ERC20 token. +During the speculative bubble of 2017, a power token ICO does not need to provide any explanation of how the tokens can be used. All speculators need to know is that they represent a "stake in the future tokenised electricity". As long as the token can fill investors with imagination, it's good enough for an ICO. There is, no more functionality needed other than an ERC20 interface. Such a speculative token doesn't depend on attestations - the proof of actual power production - nor does it need properties like where the energy is provided or for how long it is available. There is no need to do actual work besides the marketing and creation of an ERC20 token. -With the madness over, it is time to present a framework for describing such token behaviours. +With the madness over, it is time to present a framework for describing such token behaviours. -Such a framework must fit tokens into different environments for them to function as use-cases, they must: +Such a framework must fit tokens into different environments for them to function as use-cases; they must: - Let the user interact with different IT systems and APIs @@ -87,30 +81,32 @@ Therefore the web was built as a giant library where each book is a computer wit This design has caused a lot of modern inconveniences. A user would receive an email about the shoes she ordered, she then takes the shipping tracking number, opens the Australia Post website - another book in the giant library of the web - and types in the tracking number to find the current status. On a different day, the same user might pause as she books two tickets for an opera, switch to her frequent flyer app, copy that number over and paste it into the order to collect the points. She might struggle a bit installing that frequent flyer app to start with. -Why are we doing so much copy and pasting when machines are exceptionally good at doing those? It's because the web is like a giant library by design, and we are like readers keeping notes of the index numbers under our sleeves. It's not designed like a personal assistant. +Why are we doing so much copy and pasting when machines are exceptionally good at doing this? It's because the web is like a giant library by design, and we are like readers keeping notes of the index numbers under our sleeves, and it's not designed like a personal assistant. -It's easy to see the cause of the inconvenience, the web is poorly integrated. When a user checks out on a website, she isn't sure if she has enough balance on her card, because the bank is not integrated with the shopping system. When a patient orders a service, she can't see how much the insurance can cover until the bill is settled, nor can she see whether she has reached the annual cap, because the clinic is not integrated with the health insurance company. +It's easy to see the cause of the inconvenience; the web is poorly integrated. When a user checks out on a website, she isn't sure if she has enough balance on her card, because the bank is not integrated with the shopping system. When a patient orders a service, she can't see how much the insurance can cover until the bill is settled, nor can she see whether she has reached the annual cap because the clinic is not integrated with the health insurance company. The answer to an integrated web requires a few building blocks that weren't in the blueprint: authentication, ownership, transfer of value and trading. The web doesn't have a built-in authentication mechanism[^1]. The add-on "Sign in with Facebook" merely tried to provide authentication through a trusted 3rd party, which, despite privacy and availability concerns, is only good for account authentication and not for business logic. -[^1]: Despite the excellent efforts on client/server certificates in TLS, these authentication methods are not for processes, but only for sites. It's a delegation model. Imagine a buyer not checking if a title deed is real, but only checks if the seller's name matches the one on the deed. That would be the delegation model used in TLS. In fact, TLS can't guarantee anything on the website is real, only that the website is real. The unit of trust here is certainly not fine enough for web to deliver integrated experience. +[^1]: Despite the excellent efforts on client/server certificates in TLS, these authentication methods are not for processes, but only for sites. It's a delegation model. Imagine a buyer not checking if a title deed is real, but only checks if the seller's name matches the one on the deed. That would be the delegation model used in TLS. In fact, TLS can't guarantee anything on the website is real, only that the website is real. The unit of trust here is certainly not granular enough for the web to deliver an integrated experience. + +"Account authentication" is not a substitute for web integration. For example, the simple business logic: "the owner of the property can check its easement information", doesn't require account authentication, and it would be a bad idea to add account authentication on top of it. If you force the "Account authentication" model, when the property is sold, the new property owner would now need to create a new account at the easement service website and secure it with the proof of ownership to the property. -And "Account authentication" is not a subsitute of web integration. For example, the simple business logic: "the owner of the property is able to check its easement information", doesn't require account authentication, and it would be a bad idea to add account authentication on top of it. If you force "Account authentication" model, when the property is sold, the new property owner would now need to create a new account at the easement service website and secure it with the proof of ownership to the property. This process is onerous. It's also inflexible, as it doesn't allow the owner to authorise the access to a 3rd party like a landscape planner or a pest inspector. Such integration needs, badly addressed by account authentication, are easily found in healthcare, retail and almost every web-based business. Today, we are still adding more and more accounts to address the growing integration needs. It's a case of hammering every problem down as if it is a nail. +This process is onerous and inflexible; it doesn't allow the owner to authorise the access to a 3rd party like a landscape planner or a pest inspector. Such integration needs, poorly addressed by account authentication, are easily found in healthcare, retail and almost every web-based business. Today, we are still adding more and more accounts to address the growing integration needs. It's a case of hammering every problem down as if it is a nail. -The web also doesn't have an ownership or transfer of value mechanism. If Alice is interested in a "Magic: The Gathering" card, and it popped up in the market, Alice will need to create an account on a website like mtgox.com, shorthand for "Magic The Gathering: Gox", to trade it. She might also need to sort out a payment method with a Paypal account. Properly integration is often lacking for complexity or security reasons, and the user has to do it manually. For every integration, the user needs to own two accounts and when she wants to use the card in an online game, she will need a third account to login to the game. She can't click on a link in an email and immediately use the card in a game. +The web also doesn't have an ownership or transfer of value mechanism. If Alice is interested in a "Magic: The Gathering" card, and it popped up in the market, Alice will need to create an account on a website like mtgox.com, shorthand for "Magic The Gathering: Gox", to trade it. She might also need to sort out a payment method with a Paypal account. Proper integration is often lacking for complexity or security reasons, and the user has to do it manually. For each integration, the user needs to own two accounts, and when she wants to use the card in an online game, she will need a third account to log in to the game. She can't click on a link in an email and immediately use the card in a game. It's easy to see that these building blocks are necessary for an integrated web and that blockchains can serve this need, but what's the path to get there? -The short answer is "tokenisation". We assert that the way to get there is a data processing language that defines tokens and their behaviour. In such a design, the token is the integration point and the language is the interface for the integrations. Tokens seamlessly go accross systems, examplified by a property token being used for renting, insurance, pest inspection, mortgages and many other systems. It must define its own behaviour pattern which can be used to interact with users to show the status and allow functions to be natively integrated. In other words, a token must have it's own UI and integration logic. +The short answer is "tokenisation". We assert that the way to get there is a data processing language that defines tokens and their behaviour. In such a design, the token is the integration point and the language is the interface for the integrations. Tokens seamlessly go across systems, exemplified by a property token being used for rent, insurance, pest inspection, mortgages and many other processes. It must define its own behaviour pattern which can be used to interact with users to show the status and allow functions to be natively integrated. In other words, a token must have its own UI and integration logic. -[a picture of an example of property token that has two statues side by side. The left side has an action button (among others) that says Power Connection. The right side has the same token, but with a "Leased" label on it, and the "Power Connection" action button is invalidated because now it is with the lessor] +[a picture of an example of a property token that has two statues side by side]. The left side has an action button (among others) that says Power Connection. The right side has the same token, but with a "Leased" label on it, and the "Power Connection" action button is invalidated because now it is with the lessor] ## Introducing TBML -TBML stands for Token Behaviour Markup Language and is our framework for defining such a context for dapps to integrate on their own and with other dapps. +TBML stands for Token Behaviour Markup Language and is our framework for defining such a context for dapps to integrate on their own and with other dapps. It is similar to XML and allows HTML and JavaScript to be injected into the file so that it can define it's functionality, UI and relationships to tokens and other dapps on the blockchain. @@ -118,67 +114,69 @@ It is similar to XML and allows HTML and JavaScript to be injected into the file We assert that a language for dictating the behaviour of a token is needed. Its design requirement follows its intended goal: to facilitate frictionless market and to integrate the web. -A market is a place where delivery vs payment happens. On the deliverable side, there are all sorts of things money can buy: assets, goods and services. On the payment side, there are Ether, DAI, Sovereign etc. The fact that any blockchain asset can be transacted any time, as long as it follows the rules, without middlemen being intermediary, gives us maximum market efficiency - the frictionless market. However, both the deliverables and the payment side requires a framework to "plug-in" - the TBML token behaviour language we are proposing. +A market is a place where delivery vs payment happens. On the deliverable side, there are all sorts of things money can buy: assets, goods and services. On the payment side, there are Ether, DAI, Sovereign etc. The fact that any blockchain asset can be transacted any time, as long as it follows the rules, without middlemen, gives us maximum market efficiency - the frictionless market. However, both the deliverables and the payment side requires a framework to "plug-in" - the TBML token behaviour language we are proposing. -It's easier to demonstrate the design requirements with an example. Let's imagine a market for 1% property. A property owner can issue many pieces of a token, each represents 1% ownership of the property. He can sell these tokens to obtain cash. +It's easier to demonstrate the design requirements with an example. Let's imagine a market for 1% property. A property owner can issue many pieces of a token, each representing 1% ownership of the property. He can sell these tokens to obtain cash. A buyer needs to know quite a bit of information. It's easy to understand that such a token would fetch 1% of the sales revenue if the underlying property is sold, but a lot more details are needed: -- Where is the property and how its current status is? -- Can a 1% property token owner vote? For example, on the purchase decision to insurance against bush fire? +- Where is the property and what is its current status? +- Can a 1% property token owner vote? For example, on the purchase decision to insurance against a bush fire? - Is the 1% automatically converted into currency at the time of property sales, or can the token holder elect to keep it? - Is the token properly underwritten to prevent double-collateralization? -- If the property was collateralized for a mortgage, what is the condition for a liquidation event where the tokenised share of the property is of a smaller percentage of the entire asset than the owner can rightfully issue token with? [damn, let's fix this sentence] -- Is providing identity attestation a condition of purchase? +- If the property is collateralised for a mortgage, what is the condition for a liquidation event to occur when the share of the property is a smaller percentage of the asset than the owner can rightfully issue a token with? TODO - the meaning of this point is unclear +- Is providing an identity attestation a condition of purchase? -A lot of the details are in the smart contract that holds the asset, for example, the total number of tokens issued by the issuer. Much is not, for example, how to fetch previous sales prices of the land from an online title deed database. +A lot of these details are in the smart contract that holds the asset in question, however, many details are not, such as how to fetch previous sales prices for the land from an online title deed database. -Typically, nowadays those token related information are locally coded in a Dapp in the form of a website. We envision it to be best abstracted out and placed in a token behaviour language TBML. You can imagine it works like a data processing language that for a given token: +Nowadays such token related information is typically encoded into the Dapp with a website. We envision it to be best abstracted out and placed in a token behaviour language (TBML). You can imagine it works like a data processing language for a given token that can: -- It fetches token related information from its holding smart contract and 3rd party sources. -- It has a rendering section where the token is rendered in visual or audio fashion. +- Fetch token related information from its holding smart contract and 3rd party sources. +- It has a rendering section where the token is represented in a visual or audio fashion. - It has a transaction section where the purpose and condition for trade and transactions are described (a superset of ABI). Any party is able to render and apply functions to the token using TBML, including entities like generic marketplaces, user-agents and 3rd party apps. -In general, providing a layered structure, using and reusing it, is better than having a monolithic design where a Dapp tied to an asset class and have all knowledge of the asset locally. The reasons are interoperability, scalability and security. Specifically, with the 1% property token as an example, the interoperability, scalability and security concerns are demonstrated below. +In general, providing a layered structure, using and reusing it, is better than having a static design where a Dapp is tied to an asset class and has all the knowledge of the asset locally. The reasons for this are interoperability, scalability and security. Specifically, with the 1% property token as an example, the interoperability, scalability and security concerns are demonstrated below. ### Interoperability: -Suppose a property guru Peter wish to create a website called "Peter's Pride Asset", where he selects the best property available on the market. He can create a listing of those properties with rich information of the current price, location, years of the building and even photos, which the users can purchase with a click. There is no reason that he needs permission to do so because the data of those tokens are on the blockchain and the transaction of those tokens requires no middlemen. However, he would necessarily need to obtain the knowledge local to how to render the token on his website, like how to get the expiration of a token from its holding smart contract. If the underlying smart contract has gone through changes, like adding an attribute (e.g. council rate), his website would need to upgrade. Similarly, the transaction rule might be updated to require the buyer to submit an identity attestation as part of a purchase. Without a speedy upgrade, his users would submit transactions not conforming and gets rejected later in the blockchain. In the end, he would resort to passing the rendering and trading of the token to the Dapp tied to this token, returning to a centralised status and limit the innovation and competition in this space. +Suppose a property guru named Peter wishes to create a website called "Peter's Pride Asset", where he selects the best properties available on the market. He can create a listing of those properties with rich information of the current price, location, age of the building and even photos, which the users can purchase with a click. There is no reason that he needs permission to do so because the data of those tokens are on the blockchain and the transaction of those tokens requires no middlemen. However, he would need to obtain the knowledge local to how to render the token on his website, like how to get the expiration of a token from its holding smart contract. If the underlying smart contract has gone through changes, like adding an attribute (e.g. council rate), his website would need to upgrade. + +Similarly, the transaction rule might be updated to require the buyer to submit an identity attestation as part of a purchase. Without a speedy upgrade, his users would submit transactions not conforming and get rejected later in the blockchain. In the end, he would resort to passing the rendering and trading of the token to the Dapp tied to this token, returning to a centralised status and limit the innovation and competition in this space. In a similar fashion, suppose an investors' forum where the members are allowed to login using their 1% property token, the rendering of the token, under each post, would need to be sourced from the Dapp tied to the token, since it's too much work for a forum to render the token and keep the code updated. Such sourcing would require permission and might be tied to the availability of that Dapp. ### Scalability -Horizontally, the same type of asset might have tokens across multiple networks like Plasma Chains. A buyer is likely to be interested only in assets in Australia, and therefore only connected to the Australian 1% Property network. It can be difficult to have an all-knowing node to provided rendered token information for all existing tokens, especially if a network is designed with privacy in mind. Therefore, to scale, the knowledge about token (TBML) must be detached from the access to the token. +Horizontally, the same type of asset might have tokens across multiple networks like Plasma Chains. A buyer is likely to be interested only in assets in Australia, and therefore only connected to the Australian 1% Property network. It can be difficult to have an all-knowing node to provided rendered token information for all existing tokens, especially if a network is designed with privacy in mind. Therefore, to scale, the knowledge about the token (TBML) must be detached from the access to the token. -Vertically, if we desire a token whose makeup is 1% property token from a sample of 100 global cities, for mid-big size investors to distribute the risk, a computer system that can manipulate such token must be built with the knowledge about member tokens. It again cannot depend on the availability, security and openness of the original Dapp tied to that asset. TBML would work in the middle for the making of such tokens. +Vertically, if we desire a token whose makeup is a 1% property token from a sample of 100 global cities, for mid-big size investors to distribute the risk, a computer system that can manipulate such a token must be built with the knowledge about member tokens. It again cannot depend on the availability, security and openness of the original Dapp tied to that asset. TBML would work in the middle for the making of such tokens. ### Security -It is impractical to improvise a schema where every transaction the user might sign is rendered in a user-readable format. It's easy to start with such an effort with a transaction data translation tool, translating enigmatic transaction payload to a user readable data, but ultimately system integration needs and UX needs would surpass what a translation engine can do. +It is impractical to improvise a schema where every transaction the user might sign is rendered in a user-readable format. It's easy to start with such an effort with a transaction data translation tool, translating an enigmatic transaction payload to "user-readable data", but ultimately the system integration and UX needs would surpass what a translation engine can do. -Take the 1% property token as an example, a confirmation might look like this: You are going to purchase 1% of property #802820 with 45 Ethers, are you sure? +Take the 1% property token as an example; a confirmation might look like this: You are going to purchase 1% of property #802820 with 45 Ethers, are you sure? -The user would be unsure if the glass ceiling designer 2-bedroom house he is watching is #802820. +The user will be unsure if the glass ceiling designer 2-bedroom house he is watching is #802820. -A translation tool cannot go further because properly rendering the property token requires more than word processing. This limit is easily hit even without introducing complex integration scenarios where more than one tokens are involved in a transaction (e.g. purchasing a used car and get a car token plus a warranty token). +A translation tool cannot go further because correctly rendering the property token requires more than word processing. This limit is easily hit even without introducing complex integration scenarios where more than one token is involved in a transaction (e.g. purchasing a used car and getting a car token with a warranty token). -Eventually, a transaction is generated with code, and the user would have to delegate the trust to the code. In a user's words, it's like this: I am accessing the website tied to this token, so I will trust that this transaction I am signing is generated for the intention I have while using the website. +Eventually, a transaction is generated with code, and the user would have to delegate the trust to the code. In a user's words, I am accessing the website tied to this token, so I will trust that this transaction I am signing is generated for the intention I have while using the site. -TBML is designed to separate token rendering code and transaction generating code and package them into its own container, signed by a party that the user is likely to trust. There are a few trust levels, which we will detail in the later chapters. +TBML is designed to separate token rendering code, and transaction generating code and package them into its container, signed by a party that the user is likely to trust. There are a few trust levels, which we will detail in later chapters. -A user who is purchasing a 1% property token from Peter's Pride Property recommendation website can be provided with rendering and transaction packaged and signed by the same group of people who created the holding contract of such tokens, therefore the user can purchase assets from any website with a similar level of trust, or purchase it from a WeChat or Facebook private message and know it is the real token being rendered and transacted. +A user who is purchasing a 1% property token from Peter's Pride Property recommendation website can be supplied with a rendering and transaction package, signed by the same group of people who created the holding contract of such tokens. Therefore the user can purchase assets from any website with a similar level of trust, or purchase it from a WeChat or Facebook private message and know it is the real token being rendered and transacted. -### Design requirement for frictionless market +### Design requirements for a frictionless market -TBML language has to provide: +The TBML language has to provide: -- Where to find the asset (which chain, what smart contract holds the asset) +- Where to find the asset (which chain and what smart contract holds the asset) - Vocabulary for token assets - Methods to render and translate attributes in local languages -- Methods to obtain 3rd party information and a list of what 3rd parties are trustworthy. +- Ways to obtain 3rd party information and a list of what 3rd parties are trustworthy. - A superset of ABI information that informs users the purpose of the transaction. And it should be usable by: @@ -190,23 +188,23 @@ And it should be usable by: We will proceed on addressing the need for "Integrating the Web" and come to a full picture of the design requirements of TBML in the following chapters. -## address "Integrate the web" needs +## address the "Integrate the web" need -As we explained earlier, the web is poorly integrated, as the only link between the units of the web - websites, is, frankly, links. It carries no business process, authentication or trust relationship. There is no anchoring points for integration. +As we explained earlier, the web is poorly integrated, as the only link between the units of the web, i.e. "websites" are links. It carries no business process, authentication or trust relationship. There are no anchoring points for integration. -We believe token is the anchor points for integration. Again, this is best illustrated by examples. +We believe the token is the anchor points for integration. Again, this is best illustrated by examples. -Suppose a user purchases an iPhone from Harvey Norman, an online retailer, using blockchain. The input of the transaction will be some sort of currency. The output, in this case, will be three tokens: +Suppose a user purchases an iPhone from Harvey Norman, an online retailer, using the blockchain. The input of the transaction will be a type of currency; the output, in this case, will be three tokens: - a shipping token, which can be used to redeem the product from a local pick-up station. -- a warranty token, issued by Apple, which allows the iPhone to be serviced in other shops than Harvey Norman (e.g. Apple Centre). -- a receipt token, issued by Harvey Norman, which allows the product to be returned in 90 days. It's also useful for getting Tourism Tax Refund if you want to take the phone out of Australia. +- a warranty token, issued by Apple, which allows the iPhone to be serviced in shops other than Harvey Norman (e.g. Apple Centre). +- A receipt token, issued by Harvey Norman, which allows the product to be returned in 90 days. It's also useful for getting a Tourism Tax Refund if you want to take the phone out of Australia. -If without tokens as the integration anchor, the three different services might be carried out by different means. +If without tokens as the integration anchor, the three different services might be carried out by various means. --- -#### Shipping Token +#### The Shipping Token Without it, a user might get a tracking number instead of a token, which itself carries no authentication information, so it can't be used to pick up the product unless a pickup code is provided, perhaps in SMS - even more poorly integrated with the process. @@ -214,31 +212,37 @@ With the use of a shipping token, the token status can be remotely updated by th #### Warranty Token -Without it, a user might need the serial number and an online registration process to activate the warranty. She might even need to create an account for that, whose password she might soon forget. +Without this token, a user might need the serial number and an online registration process to activate the warranty. She might even need to create an account for that, whose password she will probably soon forget. -With the use of warranty token, the terms and expiration would be easy to find, as it is token properties. The user can log in to warranty service website with the token, forgoing an account. The token can be programmed to receive messages like product call back or emergency security update. +With the use of a warranty token, the terms and expiration would be easy to find, as it is token properties. The user can log in to the warranty service website with the token, forgoing an account. The token can be programmed to receive messages like product call back or emergency security updates. #### Receipt Token -Currently, lacking a reliable way to authenticate the purchase, the online-purchased products usually can't be returned in the store, but instead must be returned by online means, like posting it back. A token carries the means for authentication sufficient for the process to be done in store. Despite such a receipt token cannot be transfered or authorised, it is still useful for 3rd party integration. The Tax office will be satisfied that the receipt can't be faked without collaboration from the seller, and allows an easier tax-refund process. If the phone is bought for work, the employee can easily reclaim the expense from an employer with trust implied. +Lacking a reliable way to authenticate the purchase, an online purchased product usually cannot be returned to the store but might be returned via online means such as a postback. A token carries the means for authentication sufficient for the process to be done in store. + +Despite such a token not being transferable or authorised, it is still useful for 3rd party integrations. The Tax office will be satisfied that the receipt can't be faked without collaboration from the seller, and allows a swift and easy tax-refund process. If the phone is purchased for work, the employee can easily reclaim the expense from an employer with the trust implied. --- -As we can observe, by the use of tokens, normally scattered business process and web experience can finally be integrated. This ties closely to the other benefit of the blockchain: frictionless market. In this example: +As we can observe by the use of tokens, normally scattered business processes and web experiences can finally be integrated. This ties closely to the other benefit of the blockchain: a frictionless market. In this example: -- When the phone is traded second hand, it would be easy to pass the warranty to the next user through a token transfer, opening the market further. +- When the phone traded is second hand, it would be easy to pass the warranty to the next user through a token transfer, opening the market further. - Since shipping can be tokenised, it would be easy for the buyer to choose his favourite shipping company without having to supply it with business context (address, product, weight, dates) manually, further opening the market for competition. -This example can be further extended to solve complicated and innovative business cases. Suppose the purchase is not made with ordinary currency, but American Express point, the iPhone purchased will be insured for screen damage. As a result, the transaction will have a 4th token as output: an insurance token. +This example can be further extended to solve complicated and innovative business cases. Suppose the purchase is not made with fiat currency but with American Express points. The iPhone purchase will be insured for screen damage, and as a result, the transaction will have a 4th insurance token as the output. + +When the mobile phone is repaired for screen damage, an invoice is issued concerning the purchase record of the phone to prove it is the same phone purchased with the points, enabling the insurance to be paid on the spot. -When the mobile phone is repaired for screen damage, an invoice is issued in relation to the purchase record of the mobile phone, to prove that it is the same mobile phone purchased with AmericanExpress points, therefore, enabling the insurance to be paid on the spot. Without those tokens, the user will have to submit a billing statement (that points are deducted), an invoice (that a phone is purchased), evidence of repair (that the same phone is repaired), in order to submit a claim. Many users will surely miss one of those documents, and the claim may take a few days, yet prone to fraud. In this insurance case, blockchain allowed business process innovation that otherwise would require the user to sacrifice convenience, for the mere fact that too many parties are involved and there lack an integration anchor. +Without such tokens, the user will have to submit a billing statement, invoice and evidence of repair in order to submit a claim. Many users will surely miss one of those documents; the claim may take a few days, and still be prone to fraud. -The power of integration is further strengthened by the use of the Internet of Things. Let's imagine a future version of AirBNB, where the bookings are tokenised. A traveller can enter a booked AirBNB house by unlocking the smart-lock with his or her token, and the smart-lock would recognise who is the current owner of the booking token. +In this insurance case, the blockchain allowed business process innovation that otherwise would require the user to sacrifice convenience, for the mere fact that too many parties are involved and there lacks an integration anchor. -If Alice owns a token that represents the right to use a room during certain time window, or "a booking" in user's terms, then the actions she could perform are: +The power of integration is further strengthened by the use of the Internet of Things. Let's imagine a future version of AirBNB, where the bookings are tokenised. A traveller can enter a booked AirBNB house by unlocking the smart-lock with his or her token, and the smart-lock would recognise who the current owner of the booking token is. -Check-in - either produce a QR code to verify the booking to the landlord, or use an NFC-enabled phone to open a smart-lock. +If Alice owns a token that represents the right to use a room during a certain time window, or "a booking" in user's terms, then the actions she could perform are: + +Check-in - either produce a QR code to verify the booking to the landlord or use an NFC-enabled phone to open a smart-lock. Singapore Telecom 13:45 31 Jan 2018 4G @@ -289,7 +293,7 @@ Check-in - either produce a QR code to verify the booking to the landlord, or us +-----------------------------------------------+ | | - | AirBnB Booking | + | AirBNB Booking | | | | 92 ELIAS ROAD, SINGAPORE, 519951 | | | @@ -323,29 +327,31 @@ Check-in - either produce a QR code to verify the booking to the landlord, or us | | +-----------------------------------------------+ - ◀ ◉ ◼ + ◀ ◉ ◼ Observing the desirable integration, we can see TBML has to satisfy the following needs: -- allow token actions to be defined. In the case of shipping token, "redeem" action, which may be done with QR code or NFC, "authorise action", for someone else to pick up a delivery. +- Allow token actions to be defined. In the case of a shipping token, there would be a "redeem" action (via a QR code or NFC) and an "authorise" action which would allow someone else to pick up a delivery. -- allow blockchain functions to be accessed in the action. +- Allow blockchain functions to be accessed in an action. -- allow web functions to be accessed in action +- Allow web functions to be accessed in an action -- allow token status to be updated, through web api or signed message (more on that later). +- Allow the token status to be updated, via a web api or signed message (more on that later). A combined example. -We have demonstrated, by the example of 1% property token, that blockchain can enable a frictionless market through tokenisation of asset; we also have demonstrated by the example of AirBNB token that tokens can have function integration like opening a smart-lock during its booking validity. Let's see an example where both uses are combined - a car token. +With the example of the 1% property token, we demonstrated that the blockchain can enable a frictionless market via tokenisation of an asset. + +With the case of the AirBNB token, we also showed that tokens can have function integration like opening a smart lock during its booking validity. Let's illustrate an example where both uses are combined - a car token. -On one side, a car is an asset, so it can be bought, sold, transferred, auctioned, collaborated, insured, all enabled by blockchain. +On the one hand, a car is an asset, that can be bought, sold, transferred, auctioned, collaborated and insured, all enabled by blockchain. -On the other side, a car has utility. A car's ownership token can convert a blockchain wallet into a car key, with additional functions like graphically represent the car's current location. Authorising someone to access your car, or renting it for profit, would be easily done by signing blockchain transactions or attestations, without passing car keys around. +On the other hand, a car also has utility. A car's ownership token can convert a blockchain wallet into a car key, with additional functions like graphically representing the car's current location. Authorising someone to access your car, or renting it for profit, would be seamlessly done by signing blockchain transactions or attestations, without passing car keys around. -The following picture illustrated the look of such a car token in user's wallet: +The following picture illustrates the look of such a car token in the user's wallet: Telstra 13:45 31 Jan 2018 4G @@ -419,50 +425,15 @@ The following picture illustrated the look of such a car token in user's wallet: ◀ ◉ ◼ +## How TBML works - - ------------- [ the following is from the old 1st chapter ] ------------- - -The world wide web was made for information sharing. - -The web lacks native support for the building blocks of today's internet economy. These are authentication, transfer of value or trusted relationship expression (facebook friends for example). Tim Berners-Lee envisioned the web as a document platform. HTML, today mostly used to represent the user interface, was originally a document format suitable for free information. The last decade saw the rise of modern programmable web browser technologies, such as JavaScript, that aimed to allow various middlemen to provide what was missing in the blueprint of the web: Facebook to be entrusted with personal trust; Paypal to be entrusted with transfer of value and Amazon to be entrusted with e-commerce trades. - - -Bitcoin, for the first time, made it possible to transfer value without an intermediary. With these principles, Ethereum and various other blockchains have enabled an expressive, trusted world computer whose computational matrix is made of value, trust relationships and business rules. Reliably providing these outputs in this current era can only be procured via a myriad of instituions, overly trusted corporations, leaky privacy potections and regulations. - -(duplicate: These fundamental technologies allowed us to build a new web without trusted middlemen - in some scenarios, even completely without middlemen, as proven in the FIFA ticket trading experiment we conducted mid-2018.) - -To participate, we need a global interface, a new world-wide-web, to the computer, but the web is not ready for the change. - -Vitalik Buterin envisioned web3, the new web with blockchain and without a lot of middlemen. It provided, for the first time, the capacity for a web application to access Ethereum nodes. - -However, Ethereum nodes are not the objects we can use to access the web. It's a tool that doesn't fit the ship of hands. - -The old world-wide-web connects people through clicks, forms and search queries. The new world-wide-web, web3, carries trust around by the use of tokens and cryptographic attestations. There lacks the technology to allow tokens to interact with web applications. Today's most popular concept, the Dapp browser, is largely just a connector to blockchain nodes. It is oblivious of what tokens the user has, in what stages the tokens are being used (e.g. collateralized), or even how to display that token in the user's language. It cannot facilitate the way of interaction demanded by web3. - -In order to overcome the missing gap, Dapps work very hard to control what belongs to the users directly. A Dapp that sells pizza, for example, will not only display the pizza and manage the shopping cart but also does a lot for the payment, it: - -- loops through a list of known tokens that can be used to purchase the pizza; -- requests the user's public key, checks the user's balance in each of those tokens and unnecessarily learns the users wealth; -- renders a selection list for the user to choose a token; -- assembles the transaction using the user's choice of token. - -This approach, if compared to the good old world-wide-web, is like having the web application access the user's CPU and keyboard, reading input directly from the user's keystrokes. If the user upgrades his keyboard to a USB model, the web application has to update their code to understand the new type of keystrokes. - -Similarly, in the current web3 model, if there is another token that becomes popular, or even if the existing one changed their contract a bit to work around a security issue, the Pizza selling website would need to update their code. - -This has the result of either making dapps expensive and hard to secure (current status) or gives rise to cloud-based web-logic code centres who can update their code frequently and securely for the much smaller pizza shops, re-introducing a third party that has to be trusted. - -Furthermore, the current status does not scale. It requires the web application to have the full view of the underlying blockchain, which can't always be provided for security, privacy or bandwidth reasons. This is a more prominent problem when scalability technologies like Plasma enable high-throughput blockchains and blockchains whose blocks are not public. It also doesn't allow the user to provide attestations(cryptographically signed directives) for use cases such as ticketing, token proofs (He is my friend for example), big proofs like Merkle-trees or serious proofs like identity (KYC). This is because such attestations behave like tokens but do not live on the blockchain for privacy, cost or bandwidth reasons. - -# Magic Links +### Magic Links Magic links are simply a signed message for an atomic swap. It facilitates one major function of traditional financial institutions, a function called "Delivery versus Payment", whereby one party, the buyer, pays in a currency and the other delivers an asset to be purchased. In today's financial world, delivery of physical goods is not a concern of the financial institutions. Once the transaction is done on paper or on a computer, it is considered done. This assumption is built on the trust towards financial institutions. (Consider deletion: If, for example, the transaction consists of a loan in the form of currency and a car the loan is used to purchase, then the actual delivery of the car is out of concern, and both the buyer and seller are expected to follow what the computer tells them to do.) -# Assets +### Assets In TBML terminology, an asset is something that can be owned and has value. This is a broad definition and doesn't require, like the financial assets, that an asset produces a return, or is anticipated to. @@ -476,7 +447,7 @@ Rental.... Airbnb ... -# Actions +### Actions Actions are things that can be done to an asset. From ede768a272e791e63607b751c11db24e60da2b37 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Sat, 23 Feb 2019 21:54:36 +1100 Subject: [PATCH 019/598] rework "design requirement" so the article flows from requirments to design --- doc/design_paper.md | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 85faf34e..64b7622a 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -89,7 +89,7 @@ The answer to an integrated web requires a few building blocks that weren't in t The web doesn't have a built-in authentication mechanism[^1]. The add-on "Sign in with Facebook" merely tried to provide authentication through a trusted 3rd party, which, despite privacy and availability concerns, is only good for account authentication and not for business logic. -[^1]: Despite the excellent efforts on client/server certificates in TLS, these authentication methods are not for processes, but only for sites. It's a delegation model. Imagine a buyer not checking if a title deed is real, but only checks if the seller's name matches the one on the deed. That would be the delegation model used in TLS. In fact, TLS can't guarantee anything on the website is real, only that the website is real. The unit of trust here is certainly not granular enough for the web to deliver an integrated experience. +[^1]: Despite the excellent efforts on client/server certificates in TLS, these authentication methods are not for processes, but only for sites. It's a delegation model. Imagine a buyer not checking if a title deed is real, but only checks if the seller's name matches the one on the deed. That would be the delegation model used in TLS. In this model, TLS can't guarantee anything on the website is real, only that the website is real. Facebook uses TLS but people put a lot of fake news on it. The unit of trust here is certainly not granular enough for the web to deliver an integrated experience. "Account authentication" is not a substitute for web integration. For example, the simple business logic: "the owner of the property can check its easement information", doesn't require account authentication, and it would be a bad idea to add account authentication on top of it. If you force the "Account authentication" model, when the property is sold, the new property owner would now need to create a new account at the easement service website and secure it with the proof of ownership to the property. @@ -104,32 +104,49 @@ The short answer is "tokenisation". We assert that the way to get there is a dat [a picture of an example of a property token that has two statues side by side]. The left side has an action button (among others) that says Power Connection. The right side has the same token, but with a "Leased" label on it, and the "Power Connection" action button is invalidated because now it is with the lessor] -## Introducing TBML +## Design requirements + +We assert that a descriptive language which we name TBML is needed to provide a pathway from blockchain technologies, most prominently Ethereum, to allowing blockchain to perform the two major functions: "Frictionless Market" and "Integrate the web". TBML stands for Token Behaviour Markup Language and is our framework for defining such a context for dapps to integrate on their own and with other dapps. -It is similar to XML and allows HTML and JavaScript to be injected into the file so that it can define it's functionality, UI and relationships to tokens and other dapps on the blockchain. +If Javascritp can be thought of as a solution technology to allow us to achieve interactive web, TBML can be similiarly thought of as a solution technology to allow blockchain to achieve "Frictionless Market" and "Integrate the Web". + +Unlike most blockchain technology paper, the authors of this paper choose to demonstrate the design by the order of requirements to solution. This is because TBML is a solution layer technology, unlike Ethereum or Plasma which serves a base layer. It's not feasible to demonstrate the works of TBML or evaluate a design decision without using use-cases as examples. + +The solution will be demonstrated in the following chatpers. -## address "Frictionless Market" needs +## address "Frictionless Market" capacity -We assert that a language for dictating the behaviour of a token is needed. Its design requirement follows its intended goal: to facilitate frictionless market and to integrate the web. +A market is not a noisy channel overloaded with information. More importantly, it is a place where delivery versus payment happens. On the deliverable side, there are all sorts of things money can buy: assets, goods and services. On the payment side, there are Ether, DAI, Sovereign etc. + +With blockchain, any tokenised asset can be transacted any time, as long as it follows the rules, without middlemen or intermediary, gives us maximum market efficiency - the frictionless market. A market is a place where delivery vs payment happens. On the deliverable side, there are all sorts of things money can buy: assets, goods and services. On the payment side, there are Ether, DAI, Sovereign etc. The fact that any blockchain asset can be transacted any time, as long as it follows the rules, without middlemen, gives us maximum market efficiency - the frictionless market. However, both the deliverables and the payment side requires a framework to "plug-in" - the TBML token behaviour language we are proposing. -It's easier to demonstrate the design requirements with an example. Let's imagine a market for 1% property. A property owner can issue many pieces of a token, each representing 1% ownership of the property. He can sell these tokens to obtain cash. +However, the tokens require a framework to be presented, indexed, traded, auctioned, combined... to suit the needs of such a market. It's easier to demonstrate the design requirements with an example + +### 1% property token + +Let's imagine a market for "1% property". A property owner can issue many pieces of a token, each represents 1% ownership of the property. He can sell these tokens to obtain cash. A buyer needs to know quite a bit of information. It's easy to understand that such a token would fetch 1% of the sales revenue if the underlying property is sold, but a lot more details are needed: -- Where is the property and what is its current status? +- Where is the property and what status is it in? + - Can a 1% property token owner vote? For example, on the purchase decision to insurance against a bush fire? -- Is the 1% automatically converted into currency at the time of property sales, or can the token holder elect to keep it? + +- Is the 1% automatically converted into currency at the time of property sales, or can the token holder elect to continue holding it? + - Is the token properly underwritten to prevent double-collateralization? -- If the property is collateralised for a mortgage, what is the condition for a liquidation event to occur when the share of the property is a smaller percentage of the asset than the owner can rightfully issue a token with? TODO - the meaning of this point is unclear -- Is providing an identity attestation a condition of purchase? + +- If the property was collateralized for a mortgage, what is the condition for a liquidation event? + +- Is providing a buyer's identity attestation a condition of purchase? A lot of these details are in the smart contract that holds the asset in question, however, many details are not, such as how to fetch previous sales prices for the land from an online title deed database. -Nowadays such token related information is typically encoded into the Dapp with a website. We envision it to be best abstracted out and placed in a token behaviour language (TBML). You can imagine it works like a data processing language for a given token that can: +Typically, nowadays those token related information are locally coded in a Dapp in the form of a website. We argue that for it to be effectively marketized, It needs to be abstracted out and placed in a token behaviour language TBML. You can imagine it works like a data processing language that for a given token - Fetch token related information from its holding smart contract and 3rd party sources. - It has a rendering section where the token is represented in a visual or audio fashion. From cd835d1616ab0ded7b8cc940cda1e4758447cb51 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Sun, 24 Feb 2019 11:29:20 +1100 Subject: [PATCH 020/598] first chapter of the design of TBML --- doc/design_paper.md | 46 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/doc/design_paper.md b/doc/design_paper.md index 64b7622a..4d9c2007 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -587,6 +587,52 @@ Attestations: crypto-kitten vouchers, FIFA ticket redeem coupons, American Expre (This section is in the early draft stage, never mind the clutter) +## The design of TBML + +We talked about the design requirements of TBML and let's step in closer to find out how would it work. + +### Relate tokens to smart contract and tokens to web services + +Early public blockchain Endeavourers attempted to implement both contractual relationship and business process into smart contracts. As an example, a smart contract would not only process an order but also manages the inventory. Such an attempt is like that a patron finds that his real-life contract with Ikea containing not only the return policy but also from which aisle and which rack should he go to fetch their furniture package. + +These attempts didn't work thanks to the lack of performance, privacy reasons, but extending them would be the wrong approach. Realising that blockchain was not fit to be a business engine, ICO hustlers in 2017 touted the idea of new generations of blockchain with tens of thousands of transactions per seconds. 2018 saw the renewal of such disinformation picturing blockchain as "the new cloud", a superset of AWS' functionalities. The underlying thinking is that blockchain as a new technology must be a faster and stronger version of the previous ones: the Cloud; much akin to the way we imagined the 2000s transportation solution being flying cars, not Uber. + +Thanks to its additional security assumption, Byzantine Fault tolerance, blockchains would never out-perform today's business engines built without such an assumption, like AWS. The openness of blockchain is another issue. Furthermore, it's not practical to build a firewall around a blockchain business process. If performance, privacy and security issues are not persuasive enough, the compelling argument this paper provides lies in the life cycle management. Since the contractual relationship, reflected by the tokens the user hold, will stay for a long time, while the business process is, ideally, perfected from day to day. For an analogy, a token is as stable as a multi-million dollar property, and business processes are as flexible as the whores coming in and out daily. They should not be the same piece of software. + +The authors of this paper advocate a method to draw the line between a smart contract and a business process. + +1. Smart contract dictates the transaction rules of tokens, not the utility of the tokens. + +2. Smart contract and business processes are integrated through the tokens. + +Going further alone the online iPhone purchase example, at the time of purchase, a shipment token is created, representing the user's right to receive the delivery. It does not imply that in the very few seconds the purchase is recorded on the blockchain, an inventory management database selected a warehouse, deducted the iPhone from its inventory count, labelled it with a shipment tracker and returned the tracker to the token. That would be a preposterous way of using blockchain like a cloud platform, and outright impossible thanks to the atomic nature of blockchain transactions. + +Preferably instead, the online retailer obtained a point of integration - the shipment token, which will allow the warehouse to find the product, label it at its own pace, inform the user that the product is ready to be shipped (the token carries the definition what communication is allowed to the holder), and send it on its way. + +As the business matures and markets become less frictional, two changes happen. We made the imaginary changes as following to illustrate the relationship between business processes and smart contracts. + +The first change is that the online retailer found a better shipment company. In this case, the new shipment company will integrate to the token, sending shipping progress information in place of the old one. The customers can still prove ownership of the shipping with his token, e.g. by using an NFC mobile phone to touch the deliverer's hand-held device. There is no need to change the smart contract transaction rules. The online retailer can even change the shippment company when the product is first under-delivered without the user changing his token. + +This change illustrated that the business process should decouple from token, instead, integrated through the token. + +Business went on for a while; then, there is an innovation from the blockchain market. Some users bulk-purchased a year's shipping from a delivery company, to enjoy the AmazonPrime-like free shipping privilege without using Amazon. Seeing the opportunity, a credit card company even went that far to provide such privilege to their card holds (which is represented by a token as well). The online retailer decided to join the game to stay competitive. This time, he would need to modify his smart contract, changing the transaction rule that a shipping token can be accepted at the time of purchase. In such a case, the output of the transaction will not have a shipping token, since one is already provided. + +The online retailer will necessarily modify his business process to expect pick-ups from any delivery company the user purchased shipping token from. It's a bit messy in the beginning, but in the end, competition is good for everyone. + +This change illustrated that a new transaction rule would result in a change of smart contract. + +To recap, business process change should not lead to a smart contract change. An improvement in a freer market, in the form of a transaction rule change, should naturally lead to a smart contract change. Blockchain serves to provide a frictionless market, not to optimise business processes[^2]. + +[^2]: Is it even possible that the market can be even less fractional than bulk-purchasing AmazonPrime-like delivery can enable? Maybe, but it would hardly be possible without blockchain technology. A sound counter-argument for blockchain naysayers. + +This vision is made possible through TBML. Without which the clear separation of integration needs and business process needs would be difficult and the result would be not interoperable. + +In the first case, TBML described shipping token to be able to receive messages. In the simple form, the message is entrusted and rendered to the user interface + +[work in prorgress] + +--- + In the traditional financial world, transactions usually involve a currency in exchange of something deliverable. From 68b9de1341732eabee14f51ba3084c07bd4409f4 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Sun, 24 Feb 2019 16:15:06 +1100 Subject: [PATCH 021/598] experiment using pictures --- doc/design_paper.md | 56 +-------------------------------------------- 1 file changed, 1 insertion(+), 55 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 4d9c2007..39f7838c 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -474,62 +474,8 @@ The other actions depend much on the utility properties of an asset, however, th Let's start with fungible tokens, as they are somewhat simpler. In the following screen mock-up, the actions are: "Pay anyone", "Request Payment", "Convert to USD". - Vodafone 13:45 31 Jan 2018 4G - +-------------------------------------------------+ - - +-------------------------------------------------+ - | | - | SOVEREIGN - cryptocurrency of Marshall Islands | - | | - | +---------------------------------------------+ | - | | | | - | | Current Balance: $314.15 ($276.15 available)| | - | | | | - | +---------------------------------------------+ | - | | - | +----------+ +---------------+ +--------------+ | - | |Pay Anyone| |Request Payment| |Convert to USD| | - | +----------+ +---------------+ +--------------+ | - | | - | Recent Transactions | - | +---------------------------------------------+ | - | | | | - | | 29 Jan BEKANT Desk - IKEA -$499.99 | | - | | +-- Delivery Token - FedEx [open] | | - | | +-- Warranty 1 year - IKEA [open] | | - | | | | - | | 28 Jan VISA Application -$80.00 | | - | | +--- Receipt Token [open] | | - | | | | - | | 26 Purchase SOVEREIGN from Ether +$800.00 | | - | | | | - | | Displaying 3 of 94 Transactions | | - | +---------------------------------------------+ | - | | - | Open Payment Channels | - | +---------------------------------------------+ | - | | GoCard: Public Transit and parking fees | | - | | | | - | | Payment Channel | | - | | Opened: 2019-04-05 Balance held: $50 | | - | | Expiry: 2019-05-05 Current balance: $38 | | - | | | | - | | [Inspect Payment Channel] | | - | +---------------------------------------------+ | - | | - | Pre-authorisations | - | +--------------------------------------------+ | - | | | | - | | - The Guardian: biweekly, $10, no expiry. | | - | | - Pablo & Rusty's: monthly, $28, till 2019 | | - | | | | - | | Displaying 2 of 5 authorisations | | - | +--------------------------------------------+ | - | | - +-------------------------------------------------+ - - ◀ ◉ ◼ +![Rendering of the sovereign token on a mobile phone. Notice the action buttons.](doc/sovereign.png) [explains the attestations associated with this token.] From 501ae41b016e3a0f531612505d3be8c3c65dc53f Mon Sep 17 00:00:00 2001 From: James Sangalli Date: Sun, 24 Feb 2019 17:38:53 +1100 Subject: [PATCH 022/598] edited design chapter --- doc/design_paper.md | 61 +++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 35 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 39f7838c..5840c050 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -106,15 +106,11 @@ The short answer is "tokenisation". We assert that the way to get there is a dat ## Design requirements -We assert that a descriptive language which we name TBML is needed to provide a pathway from blockchain technologies, most prominently Ethereum, to allowing blockchain to perform the two major functions: "Frictionless Market" and "Integrate the web". +We assert that a descriptive language (TBML) is needed to allow blockchain technology to enable "frictionless markets" and an "integrated web". TBML stands for Token Behaviour Markup Language and is our framework for defining such a context for dapps to integrate on their own and with other dapps. -If Javascritp can be thought of as a solution technology to allow us to achieve interactive web, TBML can be similiarly thought of as a solution technology to allow blockchain to achieve "Frictionless Market" and "Integrate the Web". - -Unlike most blockchain technology paper, the authors of this paper choose to demonstrate the design by the order of requirements to solution. This is because TBML is a solution layer technology, unlike Ethereum or Plasma which serves a base layer. It's not feasible to demonstrate the works of TBML or evaluate a design decision without using use-cases as examples. - -The solution will be demonstrated in the following chatpers. +Unlike most whitepapers in the space, we choose to demonstrate the design by order of requirements to make a solution; this is because TBML is a solution layer rather than Ethereum or Plasma which serves as a base layer. It's not feasible to demonstrate the works of TBML or evaluate a design decision without showing use-cases as examples. ## address "Frictionless Market" capacity @@ -522,11 +518,11 @@ To explain the use case when the *revocation* of an attestation has to happen on -- -Authori's note: +## Authors note: -Assets: crypto kitten, FIFA ticket, right to a bottle of wine, ownership of 1% of a house, a piece of armour in a video game, dice in a video game. +Examples of assets: crypto kitties, FIFA tickets, right to a bottle of wine, 1% ownership of a house, a piece of armour in a video game or dice in a video game. -Attestations: crypto-kitten vouchers, FIFA ticket redeem coupons, American Express Centurion status, Friendship Token (a signed message from Michael Jackson saying that Victor Zhang is a friend), identity proof. +Examples of attestations: crypto-kitten vouchers, FIFA ticket redeem coupons, American Express Centurion status, Friendship Tokens (a signed message from Michael Jackson saying that Victor Zhang is a friend) or proof of identity. [The concept of delivery vs payment and how it is useful in both investments and consumption.] @@ -539,52 +535,48 @@ We talked about the design requirements of TBML and let's step in closer to find ### Relate tokens to smart contract and tokens to web services -Early public blockchain Endeavourers attempted to implement both contractual relationship and business process into smart contracts. As an example, a smart contract would not only process an order but also manages the inventory. Such an attempt is like that a patron finds that his real-life contract with Ikea containing not only the return policy but also from which aisle and which rack should he go to fetch their furniture package. +Early public blockchain Endeavourers attempted to implement both a contractual relationship and business process into smart contracts. As an example, a smart contract would not only process an order but also manages the inventory. Such an attempt is like that of a patron whp finds not only his real-life contract with ikea but also the return policy and which aisle he should go to fetch the furniture package. -These attempts didn't work thanks to the lack of performance, privacy reasons, but extending them would be the wrong approach. Realising that blockchain was not fit to be a business engine, ICO hustlers in 2017 touted the idea of new generations of blockchain with tens of thousands of transactions per seconds. 2018 saw the renewal of such disinformation picturing blockchain as "the new cloud", a superset of AWS' functionalities. The underlying thinking is that blockchain as a new technology must be a faster and stronger version of the previous ones: the Cloud; much akin to the way we imagined the 2000s transportation solution being flying cars, not Uber. +These attempts didn't work thanks to the lack of performance or privacy reasons, but extending them would be the wrong approach. Realising that blockchain was not fit to be a business engine, ICO hustlers in 2017 touted the idea of new generations of blockchain with tens of thousands of transactions per seconds. 2018 saw the renewal of such disinformation picturing blockchain as "the new cloud", a superset of AWS' functionalities. The underlying thinking is that blockchain as a new technology must be a faster and stronger version of the previous ones: the Cloud; much akin to the way we imagined the 2000s transportation solution being flying cars, not Uber. -Thanks to its additional security assumption, Byzantine Fault tolerance, blockchains would never out-perform today's business engines built without such an assumption, like AWS. The openness of blockchain is another issue. Furthermore, it's not practical to build a firewall around a blockchain business process. If performance, privacy and security issues are not persuasive enough, the compelling argument this paper provides lies in the life cycle management. Since the contractual relationship, reflected by the tokens the user hold, will stay for a long time, while the business process is, ideally, perfected from day to day. For an analogy, a token is as stable as a multi-million dollar property, and business processes are as flexible as the whores coming in and out daily. They should not be the same piece of software. +Thanks to its additional security assumptions, Byzantine Fault tolerance blockchains would never outperform AWS's business engines. The openness of blockchain is another issue. Furthermore, it's not practical to build a firewall around a blockchain business process. If performance, privacy and security issues are not persuasive enough, the compelling argument this paper provides lies in the life cycle management. Since the contractual relationship, reflected by the tokens the user holds, will stay for a long time, while the business process is, ideally, perfected from day to day. The authors of this paper advocate a method to draw the line between a smart contract and a business process. -1. Smart contract dictates the transaction rules of tokens, not the utility of the tokens. - -2. Smart contract and business processes are integrated through the tokens. +1. A smart contract dictates the transaction rules of tokens, not the utility of the tokens. -Going further alone the online iPhone purchase example, at the time of purchase, a shipment token is created, representing the user's right to receive the delivery. It does not imply that in the very few seconds the purchase is recorded on the blockchain, an inventory management database selected a warehouse, deducted the iPhone from its inventory count, labelled it with a shipment tracker and returned the tracker to the token. That would be a preposterous way of using blockchain like a cloud platform, and outright impossible thanks to the atomic nature of blockchain transactions. +2. A smart contract and business process are integrated through the tokens. -Preferably instead, the online retailer obtained a point of integration - the shipment token, which will allow the warehouse to find the product, label it at its own pace, inform the user that the product is ready to be shipped (the token carries the definition what communication is allowed to the holder), and send it on its way. +Going further along the online iPhone purchase example, at the time of purchase, a shipment token is created, representing the user's right to receive the delivery. It does not imply that in the very few seconds the purchase is recorded on the blockchain, an inventory management database selected a warehouse, deducted the iPhone from its inventory count, labelled it with a shipment tracker and returned the tracker to the token. It would be absurd to use blockchain like a cloud platform and outright impossible thanks to the atomic nature of blockchain transactions. -As the business matures and markets become less frictional, two changes happen. We made the imaginary changes as following to illustrate the relationship between business processes and smart contracts. +Preferably instead, the online retailer obtained a point of integration - the shipment token, which will allow the warehouse to find the product, label it at its own pace, inform the user that the product is ready to be shipped (the token carries the definition of what communication is allowed to the holder), and send it on its way. -The first change is that the online retailer found a better shipment company. In this case, the new shipment company will integrate to the token, sending shipping progress information in place of the old one. The customers can still prove ownership of the shipping with his token, e.g. by using an NFC mobile phone to touch the deliverer's hand-held device. There is no need to change the smart contract transaction rules. The online retailer can even change the shippment company when the product is first under-delivered without the user changing his token. +As the business matures and markets become less frictional, two changes happen. The first change is that the online retailer found a better shipment company. In this case, the new shipment company will integrate the token, sending shipping progress information in place of the old one. The customers can still prove ownership of the shipping with his token, e.g. by using an NFC mobile phone to touch the deliverer's hand-held device. There is no need to change the smart contract transaction rules. The online retailer can even change the shipping company when the product is first under-delivered without the user changing his token. -This change illustrated that the business process should decouple from token, instead, integrated through the token. +This change illustrated that the business process should decouple from the token, instead, integrated through the token. -Business went on for a while; then, there is an innovation from the blockchain market. Some users bulk-purchased a year's shipping from a delivery company, to enjoy the AmazonPrime-like free shipping privilege without using Amazon. Seeing the opportunity, a credit card company even went that far to provide such privilege to their card holds (which is represented by a token as well). The online retailer decided to join the game to stay competitive. This time, he would need to modify his smart contract, changing the transaction rule that a shipping token can be accepted at the time of purchase. In such a case, the output of the transaction will not have a shipping token, since one is already provided. +Business went on for a while; then, there is an innovation from the blockchain market. Some users bulk-purchased a year's shipping from a delivery company, to enjoy the AmazonPrime-like free shipping privileges without using Amazon. Seeing an opportunity, a credit card company even went so far as to provide such a privilege to their card holders (which could also be represented by a token). The online retailer decided to join the game to stay competitive. This time, he would need to modify his smart contract, changing the transaction rule that a shipping token can be accepted at the time of purchase. In such a case, the output of the transaction will not have a shipping token, since one is already provided. -The online retailer will necessarily modify his business process to expect pick-ups from any delivery company the user purchased shipping token from. It's a bit messy in the beginning, but in the end, competition is good for everyone. +The online retailer will necessarily modify his business process to expect pick-ups from any delivery company the user purchased shipping tokens from. This change illustrated that a new transaction rule would result in a change of smart contract. -To recap, business process change should not lead to a smart contract change. An improvement in a freer market, in the form of a transaction rule change, should naturally lead to a smart contract change. Blockchain serves to provide a frictionless market, not to optimise business processes[^2]. +To recap, business process changes should not lead to a smart contract change. An improvement in a free market, in the form of a transaction rule change, should naturally lead to a smart contract change. Blockchain serves to provide a frictionless market, not to optimise business processes[^2]. -[^2]: Is it even possible that the market can be even less fractional than bulk-purchasing AmazonPrime-like delivery can enable? Maybe, but it would hardly be possible without blockchain technology. A sound counter-argument for blockchain naysayers. +[^2]: Is it even possible that the market can be even less fractional than a bulk-purchasing AmazonPrime-like delivery can enable? Maybe, but it would hardly be possible without blockchain technology. A sound counter-argument for blockchain naysayers. This vision is made possible through TBML. Without which the clear separation of integration needs and business process needs would be difficult and the result would be not interoperable. -In the first case, TBML described shipping token to be able to receive messages. In the simple form, the message is entrusted and rendered to the user interface +In the first case, TBML described a shipping token to be able to receive messages. In the simplist form, the message is entrusted and rendered to the user interface -[work in prorgress] +[work in progress] --- In the traditional financial world, transactions usually involve a currency in exchange of something deliverable. - -In the case that the deliverable is an asset, like a property or security, the transaction is considered done when the paper process or computer process is done. It's unlikely that the property owner will refuse to hand over the keys to the new owner or the company will refuse to share the dividend to an individual subscriber. - +In the case that the deliverable is an asset, like a property or security, the transaction is considered done when the paper or computer process is complete. It's unlikely that the property owner will refuse to hand over the keys to the new owner or the company will refuse to share the dividend to an individual subscriber. In the case of purchasing common goods and services, the deliverable will usually be physical. If I buy a printer online, a printer gets delivered home; if I order a massage service, someone shows up at the door. Delivery is an essential part of such transactions, and most payment processors like Paypal would not consider the transaction final unless delivery happened. @@ -603,15 +595,15 @@ We observe that when a purchase happens, the deliverable is often made up of two -In the case of purchasing a share of a company, the right to enjoy dividend is the entire delivery. There is no consumable component of that purchase. In the case of purchasing a BigMac, the consumable is the entire delivery. There is no rights component to that purchase. These are purchases purely for rights and consumables, respectively. +In the case of purchasing a share of a company, the right to enjoy the dividend is the entire delivery. There is no consumable component of that purchase. In the case of purchasing a BigMac, the consumable is the entire delivery. There is no rights component to that purchase. These are purchases purely for rights and consumables, respectively. -But most transactions fall between those two kinds. +But most transactions fall between these two kinds. -Online purchases, for example, are usually either an exchange between currency with a promise to deliver physical goods or the right to pick it up from the local post office, which is a right until redeemed. A ticket is a type of consumable that is always sold as a right because the consumable service is not available at the time of purchase. In these examples, the purchaser obtains a right as the result of the transaction which can later be redeemed for consumables. +Online purchases, for example, are usually either an exchange between currency with a promise to deliver physical goods or the right to pick it up from the local post office, which is a right until redeemed. A ticket is a type of consumable that is always sold as a right because the consumable service is not available at the time of purchase. In these examples, the purchaser obtains a right as the result of the transaction which can later be redeemed for consumables. @@ -623,11 +615,11 @@ Even the traditional purchase of an investment asset might have a consumable com -Table: examples of purchases and input / output of those purchases +Table: examples of purchases and input/output of those purchases -Typical tokens in e-commerce setting: +Typical tokens in an e-commerce setting: @@ -669,4 +661,3 @@ Product ownership token (The whole concept can be illustrated in a few examples, e.g. this car token) - From a4a95f8e9f7b9edbea708aefef722f15e42b4651 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Sun, 24 Feb 2019 18:55:49 +1100 Subject: [PATCH 023/598] clarifying after Sangalli by adding sub-titles --- doc/design_paper.md | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 5840c050..52d46c45 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -537,9 +537,9 @@ We talked about the design requirements of TBML and let's step in closer to find Early public blockchain Endeavourers attempted to implement both a contractual relationship and business process into smart contracts. As an example, a smart contract would not only process an order but also manages the inventory. Such an attempt is like that of a patron whp finds not only his real-life contract with ikea but also the return policy and which aisle he should go to fetch the furniture package. -These attempts didn't work thanks to the lack of performance or privacy reasons, but extending them would be the wrong approach. Realising that blockchain was not fit to be a business engine, ICO hustlers in 2017 touted the idea of new generations of blockchain with tens of thousands of transactions per seconds. 2018 saw the renewal of such disinformation picturing blockchain as "the new cloud", a superset of AWS' functionalities. The underlying thinking is that blockchain as a new technology must be a faster and stronger version of the previous ones: the Cloud; much akin to the way we imagined the 2000s transportation solution being flying cars, not Uber. +These attempts didn't work due to the lack of performance and privacy in current generation blockchains, but extending them would be the wrong approach. Realising that blockchain was not fit to be a business engine, ICO hustlers in 2017 touted the idea of new generations of blockchain with tens of thousands of transactions per seconds. 2018 saw the renewal of such disinformation picturing blockchain as "the new cloud", a superset of AWS' functionalities. The underlying thinking is that blockchain as a new technology must be a faster and stronger version of the previous ones: the Cloud; much akin to the way we imagined the 2000s transportation solution being flying cars, not Uber. -Thanks to its additional security assumptions, Byzantine Fault tolerance blockchains would never outperform AWS's business engines. The openness of blockchain is another issue. Furthermore, it's not practical to build a firewall around a blockchain business process. If performance, privacy and security issues are not persuasive enough, the compelling argument this paper provides lies in the life cycle management. Since the contractual relationship, reflected by the tokens the user holds, will stay for a long time, while the business process is, ideally, perfected from day to day. +Thanks to its additional security assumptions, Byzantine Fault tolerance blockchains would never outperform AWS's business engines. Furthermore, it's not practical to build a firewall around a blockchain business process. If performance, privacy and security issues are not persuasive enough, the compelling argument this paper provides lies in the life cycle management: the contractual relationship, reflected by the tokens the user holds, will stay for a long time, while the business process is, ideally, perfected from day to day. The authors of this paper advocate a method to draw the line between a smart contract and a business process. @@ -547,23 +547,37 @@ The authors of this paper advocate a method to draw the line between a smart con 2. A smart contract and business process are integrated through the tokens. -Going further along the online iPhone purchase example, at the time of purchase, a shipment token is created, representing the user's right to receive the delivery. It does not imply that in the very few seconds the purchase is recorded on the blockchain, an inventory management database selected a warehouse, deducted the iPhone from its inventory count, labelled it with a shipment tracker and returned the tracker to the token. It would be absurd to use blockchain like a cloud platform and outright impossible thanks to the atomic nature of blockchain transactions. +Going further along the online iPhone purchase example, with the purchase transaction a shipment token is created, representing the user's right to receive the delivery. It does not imply that in the very moment the purchase is recorded on the blockchain, an inventory management database selected a warehouse, deducted the iPhone from its inventory count, labelled it with a shipment tracker and returned the tracker to the token. That would be an absurd way to use blockchain and outright impossible thanks to the atomic nature of blockchain transactions. Preferably instead, the online retailer obtained a point of integration - the shipment token, which will allow the warehouse to find the product, label it at its own pace, inform the user that the product is ready to be shipped (the token carries the definition of what communication is allowed to the holder), and send it on its way. -As the business matures and markets become less frictional, two changes happen. The first change is that the online retailer found a better shipment company. In this case, the new shipment company will integrate the token, sending shipping progress information in place of the old one. The customers can still prove ownership of the shipping with his token, e.g. by using an NFC mobile phone to touch the deliverer's hand-held device. There is no need to change the smart contract transaction rules. The online retailer can even change the shipping company when the product is first under-delivered without the user changing his token. +As the business matures and markets become less frictional, two changes happen. + +#### Change in the business process + +The first change is that the online retailer found a better shipment company. In this case, the new shipment company will integrate the same shipment token, sending shipping progress information in place of the old one. The customers can still prove ownership of the shipping with his token, e.g. by using an NFC mobile phone to touch the deliverer's hand-held device. + +There is no need to change the smart contract transaction rules. The online retailer can even change the shipping company when the product is first under-delivered without the user changing his token. This change illustrated that the business process should decouple from the token, instead, integrated through the token. -Business went on for a while; then, there is an innovation from the blockchain market. Some users bulk-purchased a year's shipping from a delivery company, to enjoy the AmazonPrime-like free shipping privileges without using Amazon. Seeing an opportunity, a credit card company even went so far as to provide such a privilege to their card holders (which could also be represented by a token). The online retailer decided to join the game to stay competitive. This time, he would need to modify his smart contract, changing the transaction rule that a shipping token can be accepted at the time of purchase. In such a case, the output of the transaction will not have a shipping token, since one is already provided. +#### Change in the market + +Business went on for a while; then, there is an innovation from the blockchain market. Some users bulk-purchased a year's shipping from a delivery company, to enjoy the AmazonPrime-like free shipping privileges without using Amazon[^2]. Seeing an opportunity, a credit card company even went so far as to provide such a privilege to the subscribers of their card, which is also represented by a toke. + +[^2]: The market condition for such an innovation might exist, because only the buyer is most familiar with the last-mile delivery experience. Usually, online retailer negotiate bulk delivery contracts since they have the quantity, but they are just a proxy of the buyers' experience. Their interest is not perfectly aligned with the buyers. + +The online retailer decided to join the game to stay competitive. This time, he would need to modify his smart contract, changing the transaction rule that a shipping token can be accepted at the time of purchase. In such a case, the output of the transaction will not have a shipping token, since one is already provided.[^3] + +[^3]: In practical implementations, bulk-purchased shipping labels, if tokenised, may or may not be the same as shipping tokens, which is mapped to a specific tracking number, since there might be a case of a semi-fungible token changing into a non-fungible token. The implementors might choose to destory the former and re-create the latter. The authors of this paper decided to leave out such detail for the clarity of the text. The online retailer will necessarily modify his business process to expect pick-ups from any delivery company the user purchased shipping tokens from. This change illustrated that a new transaction rule would result in a change of smart contract. -To recap, business process changes should not lead to a smart contract change. An improvement in a free market, in the form of a transaction rule change, should naturally lead to a smart contract change. Blockchain serves to provide a frictionless market, not to optimise business processes[^2]. +#### Business processes may not change smart contract. Market condition may. -[^2]: Is it even possible that the market can be even less fractional than a bulk-purchasing AmazonPrime-like delivery can enable? Maybe, but it would hardly be possible without blockchain technology. A sound counter-argument for blockchain naysayers. +To recap, business process changes should not lead to a smart contract change. An improvement in a free market, in the form of a transaction rule change, should naturally lead to a smart contract change. Blockchain serves to provide a frictionless market, not to optimise business processes. This vision is made possible through TBML. Without which the clear separation of integration needs and business process needs would be difficult and the result would be not interoperable. From be184ab961741e04346c442d5c2031f9b4f31244 Mon Sep 17 00:00:00 2001 From: James Sangalli Date: Sun, 24 Feb 2019 22:34:19 +1100 Subject: [PATCH 024/598] slight correction in relat tokens... paragraph --- doc/design_paper.md | 30 ++++++++---------------------- 1 file changed, 8 insertions(+), 22 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 52d46c45..9a1bfedd 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -535,11 +535,11 @@ We talked about the design requirements of TBML and let's step in closer to find ### Relate tokens to smart contract and tokens to web services -Early public blockchain Endeavourers attempted to implement both a contractual relationship and business process into smart contracts. As an example, a smart contract would not only process an order but also manages the inventory. Such an attempt is like that of a patron whp finds not only his real-life contract with ikea but also the return policy and which aisle he should go to fetch the furniture package. +Early public blockchain adventurous attempted to implement both a contractual relationship and business process into smart contracts. The contract was supposed to not only process an order but also manage the inventory. Such an attempt is as unnecessary as putting the aisle for which the furniture was obtained into an IKEA contract policy statement. -These attempts didn't work due to the lack of performance and privacy in current generation blockchains, but extending them would be the wrong approach. Realising that blockchain was not fit to be a business engine, ICO hustlers in 2017 touted the idea of new generations of blockchain with tens of thousands of transactions per seconds. 2018 saw the renewal of such disinformation picturing blockchain as "the new cloud", a superset of AWS' functionalities. The underlying thinking is that blockchain as a new technology must be a faster and stronger version of the previous ones: the Cloud; much akin to the way we imagined the 2000s transportation solution being flying cars, not Uber. +These attempts didn't work thanks to the lack of performance or privacy reasons, but extending them would be the wrong approach. Realising that blockchain was not fit to be a business engine, ICO hustlers in 2017 touted the idea of new generations of blockchain with tens of thousands of transactions per second. 2018 saw the renewal of such disinformation picturing blockchain as "the new cloud", a superset of AWS' functionalities. The underlying thinking is that blockchain as a new technology must be a faster and stronger version of the previous ones: the Cloud; much akin to the way we imagined the 2000s transportation solution being flying cars, not Uber. -Thanks to its additional security assumptions, Byzantine Fault tolerance blockchains would never outperform AWS's business engines. Furthermore, it's not practical to build a firewall around a blockchain business process. If performance, privacy and security issues are not persuasive enough, the compelling argument this paper provides lies in the life cycle management: the contractual relationship, reflected by the tokens the user holds, will stay for a long time, while the business process is, ideally, perfected from day to day. +Thanks to its additional security assumptions, Byzantine Fault tolerance blockchains would never outperform AWS's business engines. The openness of blockchain is another issue. Furthermore, it's not practical to build a firewall around a blockchain business process. If performance, privacy and security issues are not persuasive enough, the compelling argument this paper provides lies in the life cycle management. Since the contractual relationship, reflected by the tokens the user holds, will stay for a long time, while the business process is, ideally, perfected from day to day. The authors of this paper advocate a method to draw the line between a smart contract and a business process. @@ -547,37 +547,23 @@ The authors of this paper advocate a method to draw the line between a smart con 2. A smart contract and business process are integrated through the tokens. -Going further along the online iPhone purchase example, with the purchase transaction a shipment token is created, representing the user's right to receive the delivery. It does not imply that in the very moment the purchase is recorded on the blockchain, an inventory management database selected a warehouse, deducted the iPhone from its inventory count, labelled it with a shipment tracker and returned the tracker to the token. That would be an absurd way to use blockchain and outright impossible thanks to the atomic nature of blockchain transactions. +Going further along the online iPhone purchase example, at the time of purchase, a shipment token is created, representing the user's right to receive the delivery. It does not imply that in the very few seconds the purchase is recorded on the blockchain, an inventory management database selected a warehouse, deducted the iPhone from its inventory count, labelled it with a shipment tracker and returned the tracker to the token. It would be absurd to use blockchain like a cloud platform and outright impossible thanks to the atomic nature of blockchain transactions. Preferably instead, the online retailer obtained a point of integration - the shipment token, which will allow the warehouse to find the product, label it at its own pace, inform the user that the product is ready to be shipped (the token carries the definition of what communication is allowed to the holder), and send it on its way. -As the business matures and markets become less frictional, two changes happen. - -#### Change in the business process - -The first change is that the online retailer found a better shipment company. In this case, the new shipment company will integrate the same shipment token, sending shipping progress information in place of the old one. The customers can still prove ownership of the shipping with his token, e.g. by using an NFC mobile phone to touch the deliverer's hand-held device. - -There is no need to change the smart contract transaction rules. The online retailer can even change the shipping company when the product is first under-delivered without the user changing his token. +As the business matures and markets become less frictional, two changes happen. The first change is that the online retailer found a better shipment company. In this case, the new shipment company will integrate the token, sending shipping progress information in place of the old one. The customers can still prove ownership of the shipping with his token, e.g. by using an NFC mobile phone to touch the deliverer's hand-held device. There is no need to change the smart contract transaction rules. The online retailer can even change the shipping company when the product is first under-delivered without the user changing his token. This change illustrated that the business process should decouple from the token, instead, integrated through the token. -#### Change in the market - -Business went on for a while; then, there is an innovation from the blockchain market. Some users bulk-purchased a year's shipping from a delivery company, to enjoy the AmazonPrime-like free shipping privileges without using Amazon[^2]. Seeing an opportunity, a credit card company even went so far as to provide such a privilege to the subscribers of their card, which is also represented by a toke. - -[^2]: The market condition for such an innovation might exist, because only the buyer is most familiar with the last-mile delivery experience. Usually, online retailer negotiate bulk delivery contracts since they have the quantity, but they are just a proxy of the buyers' experience. Their interest is not perfectly aligned with the buyers. - -The online retailer decided to join the game to stay competitive. This time, he would need to modify his smart contract, changing the transaction rule that a shipping token can be accepted at the time of purchase. In such a case, the output of the transaction will not have a shipping token, since one is already provided.[^3] - -[^3]: In practical implementations, bulk-purchased shipping labels, if tokenised, may or may not be the same as shipping tokens, which is mapped to a specific tracking number, since there might be a case of a semi-fungible token changing into a non-fungible token. The implementors might choose to destory the former and re-create the latter. The authors of this paper decided to leave out such detail for the clarity of the text. +Business went on for a while; then, there is an innovation from the blockchain market. Some users bulk-purchased a year's shipping from a delivery company, to enjoy the AmazonPrime-like free shipping privileges without using Amazon. Seeing an opportunity, a credit card company even went so far as to provide such a privilege to their card holders (which could also be represented by a token). The online retailer decided to join the game to stay competitive. This time, he would need to modify his smart contract, changing the transaction rule that a shipping token can be accepted at the time of purchase. In such a case, the output of the transaction will not have a shipping token, since one is already provided. The online retailer will necessarily modify his business process to expect pick-ups from any delivery company the user purchased shipping tokens from. This change illustrated that a new transaction rule would result in a change of smart contract. -#### Business processes may not change smart contract. Market condition may. +To recap, business process changes should not lead to a smart contract change. An improvement in a free market, in the form of a transaction rule change, should naturally lead to a smart contract change. Blockchain serves to provide a frictionless market, not to optimise business processes[^2]. -To recap, business process changes should not lead to a smart contract change. An improvement in a free market, in the form of a transaction rule change, should naturally lead to a smart contract change. Blockchain serves to provide a frictionless market, not to optimise business processes. +[^2]: Is it even possible that the market can be even less fractional than a bulk-purchasing AmazonPrime-like delivery can enable? Maybe, but it would hardly be possible without blockchain technology. A sound counter-argument for blockchain naysayers. This vision is made possible through TBML. Without which the clear separation of integration needs and business process needs would be difficult and the result would be not interoperable. From 49abc993c74885f6b3d63a66a7fcaad071f320b0 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Sun, 24 Feb 2019 23:20:27 +1100 Subject: [PATCH 025/598] complete the relating smart contract to business process chapter --- doc/design_paper.md | 49 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 39f7838c..3ea7b564 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -575,7 +575,54 @@ This vision is made possible through TBML. Without which the clear separation of In the first case, TBML described shipping token to be able to receive messages. In the simple form, the message is entrusted and rendered to the user interface -[work in prorgress] +We will demonstrate the portion of TBML related to messaging. + + + Shipment + 貨單 + Despacho + [...] + + + + + + + + + + + + + + + + + + + + + + + + [...] + + +The section between `...` gives a list of states which is the basis of defining messages the token holder is allowed to receive. + +The first `...` structure causes the user agent to accept and display any signed messages from the token issuer, in this case the online retailer, as notification and an entry in message history, when the token's state is initialised. + +The second `...` structure causes the user agent to accept and display any signed messages, whose signing verification key is certified by the issuer of the token, as notification and as an entry in message history, when the token's state is "dispatched". This effectively allows any entity the token issuer explicitly trust to issue a message at "dispatched" state. + +When the online retailer changes his delivery company, the retailer could issue a certificate on the public key of the new delivery company, thereby authorising them to send messages to the token holders (buyers) to update them the delivery status, yet restricting the messages to only certain stages of business process. + +This code snipet shows that by giving such flexibility TBML connected to a new business process without requiring change in the smart contract or affecting user experience. It also allowed communication to the token holder without sending messages through smart contracts. + +The method of actual communication is left open to be implemented by other layers of blockchain technology like a message queue or even a distributed message queue. + +It's worth noting that messaging is not the only part connected to the business process. We will explain a broader scope of integration in the "Web integration" chapter. + +It's also possible to write TBML in such a way that only messages from the online retailer is trusted and displayed, therefore, any new delivery company must send their delivery status message to the online retailer's systems to be forwarded to the buyer. There are availability and privacy reasons why this may not be a good idea. For example, a delivery company should be able to operate when the online retailer is offline; the user might send the door entrance passcode to the delivery company which the online retailer should not learn. --- From 56bf2c1309f1a627373f600e2024735bd256b612 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Sun, 24 Feb 2019 23:35:37 +1100 Subject: [PATCH 026/598] perfecting after J.S. --- doc/design_paper.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 52d46c45..96eb8ee7 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -535,11 +535,13 @@ We talked about the design requirements of TBML and let's step in closer to find ### Relate tokens to smart contract and tokens to web services -Early public blockchain Endeavourers attempted to implement both a contractual relationship and business process into smart contracts. As an example, a smart contract would not only process an order but also manages the inventory. Such an attempt is like that of a patron whp finds not only his real-life contract with ikea but also the return policy and which aisle he should go to fetch the furniture package. +Early public blockchain projects attempted to implement both token logic and business process into smart contracts. Using an online retail project as an example, such a smart contract would not only process an order but also manages the inventory. The token transaction logic, like under what condition the transaction is valid, is tied with business process, like checking inventory. This method is, naturally, inherited from the way people build websites. -These attempts didn't work due to the lack of performance and privacy in current generation blockchains, but extending them would be the wrong approach. Realising that blockchain was not fit to be a business engine, ICO hustlers in 2017 touted the idea of new generations of blockchain with tens of thousands of transactions per seconds. 2018 saw the renewal of such disinformation picturing blockchain as "the new cloud", a superset of AWS' functionalities. The underlying thinking is that blockchain as a new technology must be a faster and stronger version of the previous ones: the Cloud; much akin to the way we imagined the 2000s transportation solution being flying cars, not Uber. +Using an analogy to demonstrate the inappropriate method, suppose an IKEA manager decides to format the furniture sales contract to include information like which aisle a patron should go to fetch the furniture package, would it work in real life? Of course not, the contract would have to be modified too many times to reflect Ikea warehouse management; which aisle has the product has no impact on the validity of the trade. -Thanks to its additional security assumptions, Byzantine Fault tolerance blockchains would never outperform AWS's business engines. Furthermore, it's not practical to build a firewall around a blockchain business process. If performance, privacy and security issues are not persuasive enough, the compelling argument this paper provides lies in the life cycle management: the contractual relationship, reflected by the tokens the user holds, will stay for a long time, while the business process is, ideally, perfected from day to day. +When these attempts failed to work, developers, in a resolved effort pounding heads against the wall, complained about the performance and privacy issues in current generation blockchains. It is true that the current generation blockchains lack greatly in performance and privacy, but extending them would be the wrong approach to address business process problems. Realising that current Ethereum does not fit to be a business engine, ICO hustlers in 2017 touted the idea of new generations of blockchains with tens of thousands of transactions per seconds. 2018 saw the renewal of such disinformation picturing blockchain as "the new cloud", a superset of AWS' functionalities. The underlying thinking is that blockchain as a new technology must be a faster and stronger version of the previous ones: the Cloud; much akin to the way we imagined the 2000s transportation solution being flying cars, not Uber. + +Thanks to its additional security assumptions, Byzantine Fault tolerance blockchains would never outperform AWS's business engines. Furthermore, it's not practical to build a firewall around a blockchain business process. If performance, privacy and security reasons are not persuasive enough, the compelling argument this paper provides lies in the life cycle management: the contractual relationship, reflected by the tokens the user holds, will stay for a long time, while the business process is, ideally, perfected from day to day. The authors of this paper advocate a method to draw the line between a smart contract and a business process. From 09024c51e01ead9655d2940e136b32d68cf4f031 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Sun, 24 Feb 2019 23:52:20 +1100 Subject: [PATCH 027/598] redo: clarifying after Sangalli by adding sub-titles --- doc/design_paper.md | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index c929178a..39bf2533 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -553,19 +553,34 @@ Going further along the online iPhone purchase example, at the time of purchase, Preferably instead, the online retailer obtained a point of integration - the shipment token, which will allow the warehouse to find the product, label it at its own pace, inform the user that the product is ready to be shipped (the token carries the definition of what communication is allowed to the holder), and send it on its way. -As the business matures and markets become less frictional, two changes happen. The first change is that the online retailer found a better shipment company. In this case, the new shipment company will integrate the token, sending shipping progress information in place of the old one. The customers can still prove ownership of the shipping with his token, e.g. by using an NFC mobile phone to touch the deliverer's hand-held device. There is no need to change the smart contract transaction rules. The online retailer can even change the shipping company when the product is first under-delivered without the user changing his token. +As the business matures and markets become less frictional, two changes happen. + +### Change in the business process + +The first change is that the online retailer found a better shipment company. In this case, the new shipment company will integrate the same shipment token, sending shipping progress information in place of the old one. The customers can still prove ownership of the shipping with his token, e.g. by using an NFC mobile phone to touch the deliverer's hand-held device. + +There is no need to change the smart contract transaction rules. The online retailer can even change the shipping company when the product is first under-delivered without the user changing his token. This change illustrated that the business process should decouple from the token, instead, integrated through the token. -Business went on for a while; then, there is an innovation from the blockchain market. Some users bulk-purchased a year's shipping from a delivery company, to enjoy the AmazonPrime-like free shipping privileges without using Amazon. Seeing an opportunity, a credit card company even went so far as to provide such a privilege to their card holders (which could also be represented by a token). The online retailer decided to join the game to stay competitive. This time, he would need to modify his smart contract, changing the transaction rule that a shipping token can be accepted at the time of purchase. In such a case, the output of the transaction will not have a shipping token, since one is already provided. +### Change in the market + +Business went on for a while; then, there is an innovation from the blockchain market. Some users bulk-purchased a year's shipping from a delivery company, to enjoy the AmazonPrime-like free shipping privileges without using Amazon[^2]. Seeing an opportunity, a credit card company even went so far as to provide such a privilege to the subscribers of their card, which is also represented by a toke. + +[^2]: The market condition for such an innovation might exist, because only the buyer is most familiar with the last-mile delivery experience. Usually, online retailer negotiate bulk delivery contracts since they have the quantity, but they are just a proxy of the buyers' experience. Their interest is not perfectly aligned with the buyers. + + +The online retailer decided to join the game to stay competitive. This time, he would need to modify his smart contract, changing the transaction rule that a shipping token can be accepted at the time of purchase. In such a case, the output of the transaction will not have a shipping token, since one is already provided.[^3] + +[^3]: In practical implementations, bulk-purchased shipping labels, if tokenised, may or may not be the same as shipping tokens, which is mapped to a specific tracking number, since there might be a case of a semi-fungible token changing into a non-fungible token. The implementors might choose to destory the former and re-create the latter. The authors of this paper decided to leave out such detail for the clarity of the text. The online retailer will necessarily modify his business process to expect pick-ups from any delivery company the user purchased shipping tokens from. This change illustrated that a new transaction rule would result in a change of smart contract. -To recap, business process changes should not lead to a smart contract change. An improvement in a free market, in the form of a transaction rule change, should naturally lead to a smart contract change. Blockchain serves to provide a frictionless market, not to optimise business processes[^2]. +### Business processes may not change smart contract. Market condition may. -[^2]: Is it even possible that the market can be even less fractional than a bulk-purchasing AmazonPrime-like delivery can enable? Maybe, but it would hardly be possible without blockchain technology. A sound counter-argument for blockchain naysayers. +To recap, business process changes should not lead to a smart contract change. An improvement in a free market, in the form of a transaction rule change, should naturally lead to a smart contract change. Blockchain serves to provide a frictionless market, not to optimise business processes. This vision is made possible through TBML. Without which the clear separation of integration needs and business process needs would be difficult and the result would be not interoperable. From c8c9913b10295a1f7a18a203c655d7b97d23dd19 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Sun, 24 Feb 2019 23:53:45 +1100 Subject: [PATCH 028/598] amend the picture missing in the last commit --- doc/sovereign.png | Bin 0 -> 70646 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/sovereign.png diff --git a/doc/sovereign.png b/doc/sovereign.png new file mode 100644 index 0000000000000000000000000000000000000000..19b24c5db781bdced8a946ba3f1041578f31d7cc GIT binary patch literal 70646 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 literal 0 HcmV?d00001 From 592854b075afe6fc091fb3e55a41299fd25f099b Mon Sep 17 00:00:00 2001 From: colourful-land Date: Sun, 24 Feb 2019 23:53:54 +1100 Subject: [PATCH 029/598] amend the picture missing in the last commit --- doc/design_paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 39bf2533..d8f99b95 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -471,7 +471,7 @@ The other actions depend much on the utility properties of an asset, however, th Let's start with fungible tokens, as they are somewhat simpler. In the following screen mock-up, the actions are: "Pay anyone", "Request Payment", "Convert to USD". -![Rendering of the sovereign token on a mobile phone. Notice the action buttons.](doc/sovereign.png) +![Rendering of the sovereign token on a mobile phone. Notice the action buttons.](sovereign.png) [explains the attestations associated with this token.] From 0d1f9fa5e3eb1e340629352c3d0ec7fa31e24c82 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Mon, 25 Feb 2019 00:03:49 +1100 Subject: [PATCH 030/598] I hope using SMS as an example shows the bad integration of the web better than email --- doc/design_paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index d8f99b95..24a6cc24 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -79,7 +79,7 @@ In the computer-human interaction model, two players are having a conversation - Therefore the web was built as a giant library where each book is a computer with whom one can have a conversation. It's probably where Facebook got its namesake inspiration - a website that is a book. -This design has caused a lot of modern inconveniences. A user would receive an email about the shoes she ordered, she then takes the shipping tracking number, opens the Australia Post website - another book in the giant library of the web - and types in the tracking number to find the current status. On a different day, the same user might pause as she books two tickets for an opera, switch to her frequent flyer app, copy that number over and paste it into the order to collect the points. She might struggle a bit installing that frequent flyer app to start with. +This design has caused a lot of modern inconveniences. A user would one day order a pair of shoes. In another day, receives an SMS about an upcoming delivery; she then takes the shipping tracking number, opens the Australia Post website - another book in the giant library of the web - and types in the tracking number to find the current status. She might still not evne know it is the shoes. In another occasion, the same user might pause as she books two tickets for an opera, switch to her frequent flyer app, copy that number over and paste it into the order to collect the points. She might struggle a bit installing that frequent flyer app to start with. Why are we doing so much copy and pasting when machines are exceptionally good at doing this? It's because the web is like a giant library by design, and we are like readers keeping notes of the index numbers under our sleeves, and it's not designed like a personal assistant. From 0c23eda02bb645445b0d052cea7b37e1299fb8a0 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Mon, 25 Feb 2019 00:07:59 +1100 Subject: [PATCH 031/598] ease the wording in a footnote --- doc/design_paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 24a6cc24..8797104d 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -572,7 +572,7 @@ Business went on for a while; then, there is an innovation from the blockchain m The online retailer decided to join the game to stay competitive. This time, he would need to modify his smart contract, changing the transaction rule that a shipping token can be accepted at the time of purchase. In such a case, the output of the transaction will not have a shipping token, since one is already provided.[^3] -[^3]: In practical implementations, bulk-purchased shipping labels, if tokenised, may or may not be the same as shipping tokens, which is mapped to a specific tracking number, since there might be a case of a semi-fungible token changing into a non-fungible token. The implementors might choose to destory the former and re-create the latter. The authors of this paper decided to leave out such detail for the clarity of the text. +[^3]: In practical implementations, bulk-purchased shipping labels, if tokenised, may or may not be the same as shipping tokens. The first might be designed as a semi-fungible token, while the latter must be non-fungible, each mapped to a specific tracking number. The authors of this paper decided to leave out such detail for the clarity of the text. The online retailer will necessarily modify his business process to expect pick-ups from any delivery company the user purchased shipping tokens from. From 45951faa9946fa9de71e38caf2eea95a3157f2a5 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Mon, 25 Feb 2019 00:17:26 +1100 Subject: [PATCH 032/598] re-order chapters and putting titles in correct level --- doc/design_paper.md | 211 ++++++++++++++++++++++---------------------- 1 file changed, 104 insertions(+), 107 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 8797104d..798a51dd 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -1,6 +1,6 @@ # TBML Design Paper -# Author's note +## Author's note The remarkable crypto speculations that took place in 2017 - 2018 brought our attention to tokens. As we bought and sold them, we forgot their intended purpose was to be used; this is analogous to the housing bubble in which people forgot that houses were not merely speculative assets but rather a place to live. @@ -19,7 +19,7 @@ Blockchain technology has two primary functions that serve essential purposes fo This paper will address the vision of where we can be and follow up with the design and reasoning behind the architecture needed on top of the blockchain. We will then explain TBML which is a critical missing layer and go over its design principles and how we are building it. -## Frictionless markets +### Frictionless markets The 80s' "Back to the Future" featured a world of powerful machines filled with hovering boards and flying cars. It didn't happen. As Peter Thiel once famously lamented, "we were promised flying cars; instead, we got 140 characters". The technological advancement of our time is beyond the imagination of the 80s science fiction movies, albeit not through more powerful machinery, but more efficient use of information. @@ -27,7 +27,7 @@ Ride-sharing revolutionised the way we organise our daily lives, and AirBNB chan But despite this web 2.0 revolution, the majority of markets still operate with high costs. The stock market, for example, has so much overhead that it is only justifiable for multi-million dollar businesses which rely on the trust of rules and regulations to operate. -### Can we create a frictionless market through tokenisation? +#### Can we create a frictionless market through tokenisation? Can we tokenise, for example, 1% of a property, so that the property market can react faster than the typical month-long property purchase-sales cycle? @@ -43,7 +43,7 @@ Blockchain technology can provide the foundational layer to achieve these. A lot This paper does not intend to provide a full solution; instead, it focuses on the last part, on quality methods to define how tokens should be used and traded. -### The challenge of tokenisation +#### The challenge of tokenisation Tokens have different properties. Do tokens expire? AirBNB booking tokens certainly do, but 1% ownership of property tokens probably don't. Should the token owner receive a notification on a specific event? Power tokens certainly need that, for the change in the power supply is dynamic. Is a token stream-able? @@ -69,7 +69,7 @@ Such a framework must fit tokens into different environments for them to functio - Allow new protocols to be developed on top of them (streaming, communication, staking, collateralization, etc.) -## Integrate the web. +### Integrate the web. Tim Berners-Lee and the innovators of the world wide web modelled the web primarily on a public library model and computer-human interaction model. @@ -112,7 +112,7 @@ TBML stands for Token Behaviour Markup Language and is our framework for definin Unlike most whitepapers in the space, we choose to demonstrate the design by order of requirements to make a solution; this is because TBML is a solution layer rather than Ethereum or Plasma which serves as a base layer. It's not feasible to demonstrate the works of TBML or evaluate a design decision without showing use-cases as examples. -## address "Frictionless Market" capacity +### address "Frictionless Market" capacity A market is not a noisy channel overloaded with information. More importantly, it is a place where delivery versus payment happens. On the deliverable side, there are all sorts of things money can buy: assets, goods and services. On the payment side, there are Ether, DAI, Sovereign etc. @@ -122,7 +122,7 @@ A market is a place where delivery vs payment happens. On the deliverable side, However, the tokens require a framework to be presented, indexed, traded, auctioned, combined... to suit the needs of such a market. It's easier to demonstrate the design requirements with an example -### 1% property token +#### 1% property token Let's imagine a market for "1% property". A property owner can issue many pieces of a token, each represents 1% ownership of the property. He can sell these tokens to obtain cash. @@ -152,7 +152,7 @@ Any party is able to render and apply functions to the token using TBML, includi In general, providing a layered structure, using and reusing it, is better than having a static design where a Dapp is tied to an asset class and has all the knowledge of the asset locally. The reasons for this are interoperability, scalability and security. Specifically, with the 1% property token as an example, the interoperability, scalability and security concerns are demonstrated below. -### Interoperability: +#### Interoperability: Suppose a property guru named Peter wishes to create a website called "Peter's Pride Asset", where he selects the best properties available on the market. He can create a listing of those properties with rich information of the current price, location, age of the building and even photos, which the users can purchase with a click. There is no reason that he needs permission to do so because the data of those tokens are on the blockchain and the transaction of those tokens requires no middlemen. However, he would need to obtain the knowledge local to how to render the token on his website, like how to get the expiration of a token from its holding smart contract. If the underlying smart contract has gone through changes, like adding an attribute (e.g. council rate), his website would need to upgrade. @@ -160,13 +160,13 @@ Similarly, the transaction rule might be updated to require the buyer to submit In a similar fashion, suppose an investors' forum where the members are allowed to login using their 1% property token, the rendering of the token, under each post, would need to be sourced from the Dapp tied to the token, since it's too much work for a forum to render the token and keep the code updated. Such sourcing would require permission and might be tied to the availability of that Dapp. -### Scalability +#### Scalability Horizontally, the same type of asset might have tokens across multiple networks like Plasma Chains. A buyer is likely to be interested only in assets in Australia, and therefore only connected to the Australian 1% Property network. It can be difficult to have an all-knowing node to provided rendered token information for all existing tokens, especially if a network is designed with privacy in mind. Therefore, to scale, the knowledge about the token (TBML) must be detached from the access to the token. Vertically, if we desire a token whose makeup is a 1% property token from a sample of 100 global cities, for mid-big size investors to distribute the risk, a computer system that can manipulate such a token must be built with the knowledge about member tokens. It again cannot depend on the availability, security and openness of the original Dapp tied to that asset. TBML would work in the middle for the making of such tokens. -### Security +#### Security It is impractical to improvise a schema where every transaction the user might sign is rendered in a user-readable format. It's easy to start with such an effort with a transaction data translation tool, translating an enigmatic transaction payload to "user-readable data", but ultimately the system integration and UX needs would surpass what a translation engine can do. @@ -182,7 +182,7 @@ TBML is designed to separate token rendering code, and transaction generating co A user who is purchasing a 1% property token from Peter's Pride Property recommendation website can be supplied with a rendering and transaction package, signed by the same group of people who created the holding contract of such tokens. Therefore the user can purchase assets from any website with a similar level of trust, or purchase it from a WeChat or Facebook private message and know it is the real token being rendered and transacted. -### Design requirements for a frictionless market +#### Design requirements for a frictionless market The TBML language has to provide: @@ -201,7 +201,7 @@ And it should be usable by: We will proceed on addressing the need for "Integrating the Web" and come to a full picture of the design requirements of TBML in the following chapters. -## address the "Integrate the web" need +### address the "Integrate the web" need As we explained earlier, the web is poorly integrated, as the only link between the units of the web, i.e. "websites" are links. It carries no business process, authentication or trust relationship. There are no anchoring points for integration. @@ -437,98 +437,6 @@ The following picture illustrates the look of such a car token in the user's wal ◀ ◉ ◼ - -## How TBML works - -### Magic Links - -Magic links are simply a signed message for an atomic swap. It facilitates one major function of traditional financial institutions, a function called "Delivery versus Payment", whereby one party, the buyer, pays in a currency and the other delivers an asset to be purchased. In today's financial world, delivery of physical goods is not a concern of the financial institutions. Once the transaction is done on paper or on a computer, it is considered done. This assumption is built on the trust towards financial institutions. - -(Consider deletion: If, for example, the transaction consists of a loan in the form of currency and a car the loan is used to purchase, then the actual delivery of the car is out of concern, and both the buyer and seller are expected to follow what the computer tells them to do.) - -### Assets - -In TBML terminology, an asset is something that can be owned and has value. This is a broad definition and doesn't require, like the financial assets, that an asset produces a return, or is anticipated to. - -Attestations are like Tokens except that they are not transferable, in the case that a smart contract allows them to be transferred, the original attestation is render invalid after the transfer. This makes it possible for things like friendship to be defined in a way similar to the token, and therefore, we may as well call such attestations "tokens". A token of friendship would be a signed message from someone, recognising someone else as a friend, and it would be an asset in TBML terminology. Apparently a token of friendship from Michael Jackson can be of high value, especially since he cannot produce any more of these tokens, but even a humble token like "Friend of Weiwu" has some value. It, for example, allows a friend of Weiwu to sign a delivery recipt for him, or allows such a friend to get a mate-rate for signing up in the same dojo Weiwu practises in. There is even a neat trick, which, by using secret sharing protocols, having Weiwu's friendship token allows one to learn common friends shared with Weiwu. Notice that this definition does not require the asset to be a blockchain token, nor that it even exists on the blockchain. More on that in the latter chapter "attestation". - -Assets and attestations (tokens in general) can have financial value and utility value. - -Examples of Assets with financial value: - -Rental.... - -Airbnb ... - -### Actions - -Actions are things that can be done to an asset. - -Regarding the financial properties of an asset, typical actions are transfer, sell, buy, collateralise, combine (e.g. in the case of cross-collateralization), insure, auction and testify (obtain a signature of someone in order to satisfy certain trading requirements). - -The other actions depend much on the utility properties of an asset, however, this varies from one type of asset to another. AirBNB token, for example, would allow a user to open the smart-lock of their AirBNB room at the time it is reserved for. That's probably all the utility you can get from the AirBNB token, but game assets, for example, can be equipped, unequipped, transmuted, transmogrified, enchanted, disenchanted, cursed, purged, socketed, unsocketed, broken-down, recycled, consecrated... Imagination is the limit. - -Let's start with fungible tokens, as they are somewhat simpler. In the following screen mock-up, the actions are: "Pay anyone", "Request Payment", "Convert to USD". - - -![Rendering of the sovereign token on a mobile phone. Notice the action buttons.](sovereign.png) - -[explains the attestations associated with this token.] - -The case with non-fungible tokens are more complicated. Let's continue with the AirBNB example. - -## Types of tokens - -## Types of tokens - -Since 2018, Ethereum community has roughly categorised tokens as fungible tokens and non-fungible tokens. - -Fungible tokens refer to the currency-like token with a balance, typically implemented in ERC20, although in practice currency functions like pre-authorisation and setting up of state channel requires richer functions than typical ERC20. - -Non-fungible tokens refer to crypto-kittens and typically have one unit per token. - -The categorisation isn't capturing the full spectrum of the tokens we could and may overlap in some cases. Taking the 1% per cent property token we demonstrated earlier as an example, each of such token is fungible with another issued by the same issuer for the same property. Maybe with the exception of the Chinese community which usually overvalue the token with a sequence number of 88, but if we allow any percentage number to be tokenised, say, allowing one to purchase 0.88%, then the sequence number will be refactored out of the way too, making each partial ownership token of the same property strictly fungible. However, apparently, a percentage of ownership of property A and a percentage of ownership of property B are not fungible with each other. - -This paper re-introduces the concept of attestations - it has been there for decades but wasn't fully utilized. From there, this paper categorises tokens as "blockchain token" and "attestation". The former type includes both fungible and non-fungible tokens. The latter type "attestation" will be explained here. - -### Attestations - -Attestation is a cryptographically signed message testifying something on a subject - a person, a token, or another attestation. Since it is specific to that subject being attested, it is not transferrable on its own on the blockchain. - -In our previous car ownership token example, the car ownership token would be a blockchain token, where the typical buy, sell and transfer rules can apply. The insurance token on it, however, is not a blockchain token. If the insurance is compulsory, it is an attestation on that car, therefore cannot be transferred on its own. If the insurance is comprehensive, it is an attestation on the car and the driver, and cannot be seamlessly transferred even if the car is transferred. - -If an attestation is not transferrable, then why does it have to be on the blockchain? The answer is it doesn't. - -Take a person identity attestation for example. Unless it is used for a blockchain transaction or revoked for some reason, there is no reason that it should have any trace on blockchains like public Ethereum. They are, still, an item in the user's wallet, since they might need to be prolonged, re-attested due to change of a person's identity or used to login to services the same way Estonian e-residency attestation can be used to login to web services. - -An attestation can affect transactions. For example, a VIP member can enjoy a 10% discount on services - such business rule would require a VIP member attestation to be used for the cryptocurrency transaction for purchasing the service. An attestation of Holden Capped Car services, which is valid for 5 years, allow the car to be serviced with the bill capped to a certain amount before its expiry. - -Sometimes, an attestation dictates what transactions can happen. - -As a subscriber of *The Economist*, I commit to paying for each issue as they are published. This is done by me sending a pre-authorisation to withdraw a subscription fee bi-weekly from my Ethereum account. Such a pre-authorisation would be an attestation in the wallet of The Economist, which provides a "charge" action that The Economist could use bi-weekly. - -For privacy reasons, or to combat linkability (the subject of an attestation being identified by the public use of such an attestation), the attestation used in transactions is of a different form than the one that lies in a user's wallet. The authors of this paper addressed this issue in another paper [cite]. - -In all of the previous examples, attestations only leave traces when a transaction needs it. There are cases when attestations leave traces on the blockchain when they are created, or revoked. - -To explain the use case where the *issuing* of attestation has to happen on the blockchain or with blockchain trace, take the aeroplane engine for example, with a substantial resale value, the repair facts of this engine, in the form of attestations, affects valuation significantly. Such attestations are in the seller's wallet, but an aeroplane service provider must add a hash of such an attestation each time the engine undergoes maintenance. The buyers would not purchase if they are not presented with these attestations that match the blockchain records. - -To explain the use case when the *revocation* of an attestation has to happen on the blockchain, let's consider an attestation called FIFA ticket. Issued by the event's organiser, it attests the owner's right to enter the venue, usually after the user has paid or was gifted the ticket. Let's assume 90% of the tickets are purchased with non-crypto currency, therefore these tickets would not have a trace on the blockchain. However, if a ticket's owner decides to sell his tickets on the blockchain following the corresponding smart contract rules, the ticket has to be used as the input of such a transaction and considered consumed, while a blockchain token representing the same entitlement would be created and traded. The writes of this paper organised a FIFA ticket experiment in mid-2018 to test the concepts, and internally we call such an attestation "a spawnable" as its use spawns a blockchain token. The detail of that experiment can be found in another paper [cite]. - - --- - -## Authors note: - -Examples of assets: crypto kitties, FIFA tickets, right to a bottle of wine, 1% ownership of a house, a piece of armour in a video game or dice in a video game. - -Examples of attestations: crypto-kitten vouchers, FIFA ticket redeem coupons, American Express Centurion status, Friendship Tokens (a signed message from Michael Jackson saying that Victor Zhang is a friend) or proof of identity. - - -[The concept of delivery vs payment and how it is useful in both investments and consumption.] - -(This section is in the early draft stage, never mind the clutter) - ## The design of TBML We talked about the design requirements of TBML and let's step in closer to find out how would it work. @@ -555,7 +463,7 @@ Preferably instead, the online retailer obtained a point of integration - the sh As the business matures and markets become less frictional, two changes happen. -### Change in the business process +#### Change in the business process The first change is that the online retailer found a better shipment company. In this case, the new shipment company will integrate the same shipment token, sending shipping progress information in place of the old one. The customers can still prove ownership of the shipping with his token, e.g. by using an NFC mobile phone to touch the deliverer's hand-held device. @@ -563,7 +471,7 @@ There is no need to change the smart contract transaction rules. The online reta This change illustrated that the business process should decouple from the token, instead, integrated through the token. -### Change in the market +#### Change in the market Business went on for a while; then, there is an innovation from the blockchain market. Some users bulk-purchased a year's shipping from a delivery company, to enjoy the AmazonPrime-like free shipping privileges without using Amazon[^2]. Seeing an opportunity, a credit card company even went so far as to provide such a privilege to the subscribers of their card, which is also represented by a toke. @@ -578,7 +486,7 @@ The online retailer will necessarily modify his business process to expect pick- This change illustrated that a new transaction rule would result in a change of smart contract. -### Business processes may not change smart contract. Market condition may. +#### Business processes may not change smart contract. Market condition may. To recap, business process changes should not lead to a smart contract change. An improvement in a free market, in the form of a transaction rule change, should naturally lead to a smart contract change. Blockchain serves to provide a frictionless market, not to optimise business processes. @@ -635,7 +543,96 @@ It's worth noting that messaging is not the only part connected to the business It's also possible to write TBML in such a way that only messages from the online retailer is trusted and displayed, therefore, any new delivery company must send their delivery status message to the online retailer's systems to be forwarded to the buyer. There are availability and privacy reasons why this may not be a good idea. For example, a delivery company should be able to operate when the online retailer is offline; the user might send the door entrance passcode to the delivery company which the online retailer should not learn. +### Types of tokens + +Since 2018, Ethereum community has roughly categorised tokens as fungible tokens and non-fungible tokens. + +Fungible tokens refer to the currency-like token with a balance, typically implemented in ERC20, although in practice currency functions like pre-authorisation and setting up of state channel requires richer functions than typical ERC20. + +Non-fungible tokens refer to crypto-kittens and typically have one unit per token. + +The categorisation isn't capturing the full spectrum of the tokens we could and may overlap in some cases. Taking the 1% per cent property token we demonstrated earlier as an example, each of such token is fungible with another issued by the same issuer for the same property. Maybe with the exception of the Chinese community which usually overvalue the token with a sequence number of 88, but if we allow any percentage number to be tokenised, say, allowing one to purchase 0.88%, then the sequence number will be refactored out of the way too, making each partial ownership token of the same property strictly fungible. However, apparently, a percentage of ownership of property A and a percentage of ownership of property B are not fungible with each other. + +This paper re-introduces the concept of attestations - it has been there for decades but wasn't fully utilized. From there, this paper categorises tokens as "blockchain token" and "attestation". The former type includes both fungible and non-fungible tokens. The latter type "attestation" will be explained here. + +### Attestations + +Attestation is a cryptographically signed message testifying something on a subject - a person, a token, or another attestation. Since it is specific to that subject being attested, it is not transferrable on its own on the blockchain. + +In our previous car ownership token example, the car ownership token would be a blockchain token, where the typical buy, sell and transfer rules can apply. The insurance token on it, however, is not a blockchain token. If the insurance is compulsory, it is an attestation on that car, therefore cannot be transferred on its own. If the insurance is comprehensive, it is an attestation on the car and the driver, and cannot be seamlessly transferred even if the car is transferred. + +If an attestation is not transferrable, then why does it have to be on the blockchain? The answer is it doesn't. + +Take a person identity attestation for example. Unless it is used for a blockchain transaction or revoked for some reason, there is no reason that it should have any trace on blockchains like public Ethereum. They are, still, an item in the user's wallet, since they might need to be prolonged, re-attested due to change of a person's identity or used to login to services the same way Estonian e-residency attestation can be used to login to web services. + +An attestation can affect transactions. For example, a VIP member can enjoy a 10% discount on services - such business rule would require a VIP member attestation to be used for the cryptocurrency transaction for purchasing the service. An attestation of Holden Capped Car services, which is valid for 5 years, allow the car to be serviced with the bill capped to a certain amount before its expiry. + +Sometimes, an attestation dictates what transactions can happen. + +As a subscriber of *The Economist*, I commit to paying for each issue as they are published. This is done by me sending a pre-authorisation to withdraw a subscription fee bi-weekly from my Ethereum account. Such a pre-authorisation would be an attestation in the wallet of The Economist, which provides a "charge" action that The Economist could use bi-weekly. + +For privacy reasons, or to combat linkability (the subject of an attestation being identified by the public use of such an attestation), the attestation used in transactions is of a different form than the one that lies in a user's wallet. The authors of this paper addressed this issue in another paper [cite]. + +In all of the previous examples, attestations only leave traces when a transaction needs it. There are cases when attestations leave traces on the blockchain when they are created, or revoked. + +To explain the use case where the *issuing* of attestation has to happen on the blockchain or with blockchain trace, take the aeroplane engine for example, with a substantial resale value, the repair facts of this engine, in the form of attestations, affects valuation significantly. Such attestations are in the seller's wallet, but an aeroplane service provider must add a hash of such an attestation each time the engine undergoes maintenance. The buyers would not purchase if they are not presented with these attestations that match the blockchain records. + +To explain the use case when the *revocation* of an attestation has to happen on the blockchain, let's consider an attestation called FIFA ticket. Issued by the event's organiser, it attests the owner's right to enter the venue, usually after the user has paid or was gifted the ticket. Let's assume 90% of the tickets are purchased with non-crypto currency, therefore these tickets would not have a trace on the blockchain. However, if a ticket's owner decides to sell his tickets on the blockchain following the corresponding smart contract rules, the ticket has to be used as the input of such a transaction and considered consumed, while a blockchain token representing the same entitlement would be created and traded. The writes of this paper organised a FIFA ticket experiment in mid-2018 to test the concepts, and internally we call such an attestation "a spawnable" as its use spawns a blockchain token. The detail of that experiment can be found in another paper [cite]. + +## The components of TBML + +### Magic Links + +Magic links are simply a signed message for an atomic swap. It facilitates one major function of traditional financial institutions, a function called "Delivery versus Payment", whereby one party, the buyer, pays in a currency and the other delivers an asset to be purchased. In today's financial world, delivery of physical goods is not a concern of the financial institutions. Once the transaction is done on paper or on a computer, it is considered done. This assumption is built on the trust towards financial institutions. + +(Consider deletion: If, for example, the transaction consists of a loan in the form of currency and a car the loan is used to purchase, then the actual delivery of the car is out of concern, and both the buyer and seller are expected to follow what the computer tells them to do.) + +### Assets + +In TBML terminology, an asset is something that can be owned and has value. This is a broad definition and doesn't require, like the financial assets, that an asset produces a return, or is anticipated to. + +Attestations are like Tokens except that they are not transferable, in the case that a smart contract allows them to be transferred, the original attestation is render invalid after the transfer. This makes it possible for things like friendship to be defined in a way similar to the token, and therefore, we may as well call such attestations "tokens". A token of friendship would be a signed message from someone, recognising someone else as a friend, and it would be an asset in TBML terminology. Apparently a token of friendship from Michael Jackson can be of high value, especially since he cannot produce any more of these tokens, but even a humble token like "Friend of Weiwu" has some value. It, for example, allows a friend of Weiwu to sign a delivery recipt for him, or allows such a friend to get a mate-rate for signing up in the same dojo Weiwu practises in. There is even a neat trick, which, by using secret sharing protocols, having Weiwu's friendship token allows one to learn common friends shared with Weiwu. Notice that this definition does not require the asset to be a blockchain token, nor that it even exists on the blockchain. More on that in the latter chapter "attestation". + +Assets and attestations (tokens in general) can have financial value and utility value. + +Examples of Assets with financial value: + +Rental.... + +Airbnb ... + +### Actions + +Actions are things that can be done to an asset. + +Regarding the financial properties of an asset, typical actions are transfer, sell, buy, collateralise, combine (e.g. in the case of cross-collateralization), insure, auction and testify (obtain a signature of someone in order to satisfy certain trading requirements). + +The other actions depend much on the utility properties of an asset, however, this varies from one type of asset to another. AirBNB token, for example, would allow a user to open the smart-lock of their AirBNB room at the time it is reserved for. That's probably all the utility you can get from the AirBNB token, but game assets, for example, can be equipped, unequipped, transmuted, transmogrified, enchanted, disenchanted, cursed, purged, socketed, unsocketed, broken-down, recycled, consecrated... Imagination is the limit. + +Let's start with fungible tokens, as they are somewhat simpler. In the following screen mock-up, the actions are: "Pay anyone", "Request Payment", "Convert to USD". + + +![Rendering of the sovereign token on a mobile phone. Notice the action buttons.](sovereign.png) + +[explains the attestations associated with this token.] + +The case with non-fungible tokens are more complicated. Let's continue with the AirBNB example. + + + +## Examples of TBML + --- +Authors note: + +Examples of assets: crypto kitties, FIFA tickets, right to a bottle of wine, 1% ownership of a house, a piece of armour in a video game or dice in a video game. + +Examples of attestations: crypto-kitten vouchers, FIFA ticket redeem coupons, American Express Centurion status, Friendship Tokens (a signed message from Michael Jackson saying that Victor Zhang is a friend) or proof of identity. + + +[The concept of delivery vs payment and how it is useful in both investments and consumption.] + +(This section is in the early draft stage, never mind the clutter) In the traditional financial world, transactions usually involve a currency in exchange of something deliverable. From 3cc477255f98cb41b6a4c211ce83a3bf2b9975cf Mon Sep 17 00:00:00 2001 From: colourful-land Date: Mon, 25 Feb 2019 11:42:49 +1100 Subject: [PATCH 033/598] initially addressing #4 but now an overall editing of the first a few pages --- doc/design_paper.md | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 798a51dd..c4b1c7e1 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -2,31 +2,40 @@ ## Author's note -The remarkable crypto speculations that took place in 2017 - 2018 brought our attention to tokens. As we bought and sold them, we forgot their intended purpose was to be used; this is analogous to the housing bubble in which people forgot that houses were not merely speculative assets but rather a place to live. +The remarkable blockchain speculations that took place in 2017 - 2018 brought our attention to crypto tokens. As we bought and sold them, we forgot their intended purpose was to be used; this is analogous to the housing bubble in which people forgot that houses were not merely speculative assets but rather a place to live. -To provide a practical use of the blockchain, we must understand its utility to the world economy and the internet. The authors of this paper are technical experts who went through years of study and exploration into its applications in cryptocurrency and finance both via financial institutions and startups. With this experience, we came to realise that the blockchain has two primary functions to which we will elaborate further in this paper. +To provide a practical use of the blockchain, we must understand its utility to the world economy and the internet. The authors of this paper are technical experts who went through years of study and exploration into its applications both via financial institutions and startups. With this experience, we came to realise that the blockchain has **two primary functions** which we will elaborate further in this paper. Despite the great folly in 2017-2018, it is not a bad thing to initially focus on tokens. Tokens, as the authors will elaborate, are the enabler of the two primary functions. We define the technique to make it happen in "Tokenisation". -Previous efforts in this industry primarily focused on enriching the capacity of the technology. This paper will focus on tokenisation and provide a standardisation effort known as TBML (Token Behaviour Markup Language) which will make the blockchain technical stack complete and useful for the economy and the internet. +Previous efforts in this industry primarily focused on enriching the capacity of the technology. This paper will focus on tokenisation and introduce a standardisation effort known as TBML (Token Behaviour Markup Language) which will make the blockchain technical stack complete, providing utility for the economy and the internet. + +Just like a house providing a place to live. \pagebreak ## Introduction -Blockchain technology has two primary functions that serve essential purposes for the future economy and the future Internet. These are providing a frictionless market and integrating the web. +Blockchain technology has **two primary functions** that serve essential purposes for the future economy and the future Internet: + +- providing a frictionless market; and +- integrating the web. This paper will address the vision of where we can be and follow up with the design and reasoning behind the architecture needed on top of the blockchain. We will then explain TBML which is a critical missing layer and go over its design principles and how we are building it. ### Frictionless markets -The 80s' "Back to the Future" featured a world of powerful machines filled with hovering boards and flying cars. It didn't happen. As Peter Thiel once famously lamented, "we were promised flying cars; instead, we got 140 characters". The technological advancement of our time is beyond the imagination of the 80s science fiction movies, albeit not through more powerful machinery, but more efficient use of information. +The 80s' "Back to the Future" featured a world of powerful machines filled with hovering boards and flying cars. It didn't happen. As Peter Thiel once famously lamented, "we were promised flying cars; instead, we got 140 characters". The technological advancement of our time is beyond the imagination of the 80s science fiction movies, albeit not through more powerful machinery, but efficient use of Internet. Ride-sharing revolutionised the way we organise our daily lives, and AirBNB changed the way we travel. These are the new, less frictional markets. They incur less cost to operate, are more accessible and have finer operational units. But despite this web 2.0 revolution, the majority of markets still operate with high costs. The stock market, for example, has so much overhead that it is only justifiable for multi-million dollar businesses which rely on the trust of rules and regulations to operate. +With blockchain, any tokenised asset can be transacted any time, as long as it follows the rules, without middlemen or intermediary, gives us maximum market efficiency - the frictionless market. On top of the benifit of not relying on an intermediary, in a tokenised market model, the buyers and sellers do not need to "enter" the market, instead, tokens are *always on the market*[^market-model], making such a model better than intermediaries. + +[^market-model]: With the traditional intermediary-operated market model, a trade is made in two stages: entering the market, making a deal. Blockchain can simplify that into a protocol; therefore the blockchain token assets can be considered always on the market. + #### Can we create a frictionless market through tokenisation? Can we tokenise, for example, 1% of a property, so that the property market can react faster than the typical month-long property purchase-sales cycle? @@ -39,9 +48,15 @@ Can we tokenise the risk and reward of international trades, so that small impor Can we create an insurance token that depends on cryptographic proofs, so that the insurer can remove from their pricing, the costs incurred by fraudulent documents? Can we decentralise the insurers altogether? -Blockchain technology can provide the foundational layer to achieve these. A lot of work needs to be done to ensure scalability, privacy and quality methods to define how tokens should be used and traded. +Blockchain can provide the foundational layer to achieve these. A lot of work needs to be done to ensure scalability, privacy and quality methods to define how tokens should be used and traded, but we see the biggest hurdle lies in tokenisation. + +Tokenisation requires bundling a token with its transaction rules and behaviour patterns, taking them off the system where they initially grew in, free them to be traded or used in different context. -This paper does not intend to provide a full solution; instead, it focuses on the last part, on quality methods to define how tokens should be used and traded. +Taking property as an example, its existance as a record in the title deeds office is not useful to an open market, since it's only valid in that database. Tokenising property would require a crypto-record on a blockchain not owned by the title deeds office[^in-house-blockchain]. + +This paper focuses on the missing layer in the technical stak for tokenisation to happen. + +[^in-house-blockchain]: There is the biggest misconception in the traditional government and business sector, that in order to use blockchain, one has to own it in house. TV serie IT Crowds famousely joked such misconception by having a few IT guys presenting to management the Internet as a physical box, fittingly owned in a house. #### The challenge of tokenisation @@ -99,7 +114,12 @@ The web also doesn't have an ownership or transfer of value mechanism. If Alice It's easy to see that these building blocks are necessary for an integrated web and that blockchains can serve this need, but what's the path to get there? -The short answer is "tokenisation". We assert that the way to get there is a data processing language that defines tokens and their behaviour. In such a design, the token is the integration point and the language is the interface for the integrations. Tokens seamlessly go across systems, exemplified by a property token being used for rent, insurance, pest inspection, mortgages and many other processes. It must define its own behaviour pattern which can be used to interact with users to show the status and allow functions to be natively integrated. In other words, a token must have its own UI and integration logic. +Tokens seamlessly go across systems, exemplified by a property token being used for rent, insurance, pest inspection, mortgages and many other markets. It must define its own behaviour pattern which can be used to interact with users to show the status and allow functions to be accessible from its integration environment. In other words, a token must have its own UI and integration logic. + +We assert that the way to get there is a data processing language that defines tokens and their behaviour. In such a design, the token is the integration point and the language is the interface for the integrations. Tokens seamlessly go across systems, exemplified by a property token being used for rent, insurance, pest inspection, mortgages and many other processes. + + +It must define its own behaviour pattern which can be used to interact with users to show the status and allow functions to be natively integrated. In other words, a token must have its own UI and integration logic. [a picture of an example of a property token that has two statues side by side]. The left side has an action button (among others) that says Power Connection. The right side has the same token, but with a "Leased" label on it, and the "Power Connection" action button is invalidated because now it is with the lessor] @@ -114,13 +134,13 @@ Unlike most whitepapers in the space, we choose to demonstrate the design by ord ### address "Frictionless Market" capacity -A market is not a noisy channel overloaded with information. More importantly, it is a place where delivery versus payment happens. On the deliverable side, there are all sorts of things money can buy: assets, goods and services. On the payment side, there are Ether, DAI, Sovereign etc. +Taking a closer look at market, a market is not a noisy channel overloaded with information. More importantly, it is a place where delivery versus payment happens. With less reliance on the middlemen, our focus is turned into the tokens being traded, that is, deliverables and payments. On the deliverable side, there are all sorts of things money can buy: assets, goods and services. On the payment side, there are Ether, DAI, Sovereign etc. -With blockchain, any tokenised asset can be transacted any time, as long as it follows the rules, without middlemen or intermediary, gives us maximum market efficiency - the frictionless market. +Both the deliverables and the payment side requires a framework for tokens to "plug-in" - the TBML token behaviour language we are proposing. -A market is a place where delivery vs payment happens. On the deliverable side, there are all sorts of things money can buy: assets, goods and services. On the payment side, there are Ether, DAI, Sovereign etc. The fact that any blockchain asset can be transacted any time, as long as it follows the rules, without middlemen, gives us maximum market efficiency - the frictionless market. However, both the deliverables and the payment side requires a framework to "plug-in" - the TBML token behaviour language we are proposing. +Such a framework is essential for tokens to be presented, indexed, traded, auctioned, combined... to form a frictionless market. -However, the tokens require a framework to be presented, indexed, traded, auctioned, combined... to suit the needs of such a market. It's easier to demonstrate the design requirements with an example +To demonstrate the design requirements we improvised an example of "1% property token". #### 1% property token From 7ac5795389eff36e019e221101394e6d854d7ea6 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Mon, 25 Feb 2019 12:05:52 +1100 Subject: [PATCH 034/598] editing foot notes using the new markdown --- doc/design_paper.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index c4b1c7e1..19b55e2a 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -102,9 +102,9 @@ It's easy to see the cause of the inconvenience; the web is poorly integrated. W The answer to an integrated web requires a few building blocks that weren't in the blueprint: authentication, ownership, transfer of value and trading. -The web doesn't have a built-in authentication mechanism[^1]. The add-on "Sign in with Facebook" merely tried to provide authentication through a trusted 3rd party, which, despite privacy and availability concerns, is only good for account authentication and not for business logic. +The web doesn't have a built-in authentication mechanism[^tls]. The add-on "Sign in with Facebook" merely tried to provide authentication through a trusted 3rd party, which, despite privacy and availability concerns, is only good for account authentication and not for business logic. -[^1]: Despite the excellent efforts on client/server certificates in TLS, these authentication methods are not for processes, but only for sites. It's a delegation model. Imagine a buyer not checking if a title deed is real, but only checks if the seller's name matches the one on the deed. That would be the delegation model used in TLS. In this model, TLS can't guarantee anything on the website is real, only that the website is real. Facebook uses TLS but people put a lot of fake news on it. The unit of trust here is certainly not granular enough for the web to deliver an integrated experience. +[^tls]: Despite the excellent efforts on client/server certificates in TLS, these authentication methods are not for processes, but only for sites. It's a delegation model. Imagine a buyer not checking if a title deed is real, but only checks if the seller's name matches the one on the deed. That would be the delegation model used in TLS. In this model, TLS can't guarantee anything on the website is real, only that the website is real. Facebook uses TLS but people put a lot of fake news on it. The unit of trust here is certainly not granular enough for the web to deliver an integrated experience. "Account authentication" is not a substitute for web integration. For example, the simple business logic: "the owner of the property can check its easement information", doesn't require account authentication, and it would be a bad idea to add account authentication on top of it. If you force the "Account authentication" model, when the property is sold, the new property owner would now need to create a new account at the easement service website and secure it with the proof of ownership to the property. @@ -134,7 +134,7 @@ Unlike most whitepapers in the space, we choose to demonstrate the design by ord ### address "Frictionless Market" capacity -Taking a closer look at market, a market is not a noisy channel overloaded with information. More importantly, it is a place where delivery versus payment happens. With less reliance on the middlemen, our focus is turned into the tokens being traded, that is, deliverables and payments. On the deliverable side, there are all sorts of things money can buy: assets, goods and services. On the payment side, there are Ether, DAI, Sovereign etc. +Taking a closer look at "market", a market is not a noisy channel overloaded with information; more importantly, it is a place where delivery versus payment happens. With less reliance on the middlemen, our focus is turned into the tokens being traded, that is, deliverables and payments. On the deliverable side, there are all sorts of things money can buy: assets, goods and services. On the payment side, there are Ether, DAI, Sovereign etc. Both the deliverables and the payment side requires a framework for tokens to "plug-in" - the TBML token behaviour language we are proposing. @@ -493,14 +493,13 @@ This change illustrated that the business process should decouple from the token #### Change in the market -Business went on for a while; then, there is an innovation from the blockchain market. Some users bulk-purchased a year's shipping from a delivery company, to enjoy the AmazonPrime-like free shipping privileges without using Amazon[^2]. Seeing an opportunity, a credit card company even went so far as to provide such a privilege to the subscribers of their card, which is also represented by a toke. +Business went on for a while; then, there is an innovation from the blockchain market. Some users bulk-purchased a year's shipping from a delivery company, to enjoy the AmazonPrime-like free shipping privileges without using Amazon[^last-mile-market]. Seeing an opportunity, a credit card company even went so far as to provide such a privilege to the subscribers of their card, which is also represented by a toke. -[^2]: The market condition for such an innovation might exist, because only the buyer is most familiar with the last-mile delivery experience. Usually, online retailer negotiate bulk delivery contracts since they have the quantity, but they are just a proxy of the buyers' experience. Their interest is not perfectly aligned with the buyers. +[^last-mile-market]: The market condition for such an innovation might exist, because only the buyer is most familiar with the last-mile delivery experience. Usually, an online retailer negotiates a higher bulk delivery discount than their buyers could, but they are just a proxy of the buyers' experience. Their interest is not perfectly aligned with the buyers. A buyer driving 30 minutes to pick up a parcel knows that the discount is no match for her time. The delivery company can also optimise the process better than the online retailer, for example, by requesting access to the buyer's calendar, which the online retailer couldn't do safely. Ultimately, more value can be created with the collaboration between buyer and the delivery company. +The online retailer decided to join the game to stay competitive. This time, he would need to modify his smart contract, changing the transaction rule that a shipping token can be accepted at the time of purchase. In such a case, the output of the transaction will not have a shipping token, since one is already provided.[^fungible-shipping-token] -The online retailer decided to join the game to stay competitive. This time, he would need to modify his smart contract, changing the transaction rule that a shipping token can be accepted at the time of purchase. In such a case, the output of the transaction will not have a shipping token, since one is already provided.[^3] - -[^3]: In practical implementations, bulk-purchased shipping labels, if tokenised, may or may not be the same as shipping tokens. The first might be designed as a semi-fungible token, while the latter must be non-fungible, each mapped to a specific tracking number. The authors of this paper decided to leave out such detail for the clarity of the text. +[^fungible-shipping-token]: In practical implementations, bulk-purchased shipping labels, if tokenised, may or may not be used as shipment tokens. Shipping labels can be designed as a semi-fungible token, while the shipment token must be non-fungible, each mapped to a specific parcel. The authors of this paper decided to leave out such implementation detail for clarity. The online retailer will necessarily modify his business process to expect pick-ups from any delivery company the user purchased shipping tokens from. From 822414ca2cf1baeb5fbcb988d497c316b4af5c87 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Mon, 25 Feb 2019 17:54:42 +1100 Subject: [PATCH 035/598] reordering paragraphs to make the introduction chatper clean --- doc/design_paper.md | 66 ++++++++++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 28 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 19b55e2a..ca59caf0 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -24,7 +24,7 @@ Blockchain technology has **two primary functions** that serve essential purpose This paper will address the vision of where we can be and follow up with the design and reasoning behind the architecture needed on top of the blockchain. We will then explain TBML which is a critical missing layer and go over its design principles and how we are building it. -### Frictionless markets +### First primary function of the blockchain: Frictionless markets The 80s' "Back to the Future" featured a world of powerful machines filled with hovering boards and flying cars. It didn't happen. As Peter Thiel once famously lamented, "we were promised flying cars; instead, we got 140 characters". The technological advancement of our time is beyond the imagination of the 80s science fiction movies, albeit not through more powerful machinery, but efficient use of Internet. @@ -48,17 +48,7 @@ Can we tokenise the risk and reward of international trades, so that small impor Can we create an insurance token that depends on cryptographic proofs, so that the insurer can remove from their pricing, the costs incurred by fraudulent documents? Can we decentralise the insurers altogether? -Blockchain can provide the foundational layer to achieve these. A lot of work needs to be done to ensure scalability, privacy and quality methods to define how tokens should be used and traded, but we see the biggest hurdle lies in tokenisation. - -Tokenisation requires bundling a token with its transaction rules and behaviour patterns, taking them off the system where they initially grew in, free them to be traded or used in different context. - -Taking property as an example, its existance as a record in the title deeds office is not useful to an open market, since it's only valid in that database. Tokenising property would require a crypto-record on a blockchain not owned by the title deeds office[^in-house-blockchain]. - -This paper focuses on the missing layer in the technical stak for tokenisation to happen. - -[^in-house-blockchain]: There is the biggest misconception in the traditional government and business sector, that in order to use blockchain, one has to own it in house. TV serie IT Crowds famousely joked such misconception by having a few IT guys presenting to management the Internet as a physical box, fittingly owned in a house. - -#### The challenge of tokenisation +Blockchain can provide the foundational layer to achieve these. While blockchain scalability and privacy will improve, to make frictionless market work we also need quality methods to define how tokens should be used and transacted - the focus of our work on TBML. Tokens have different properties. Do tokens expire? AirBNB booking tokens certainly do, but 1% ownership of property tokens probably don't. Should the token owner receive a notification on a specific event? Power tokens certainly need that, for the change in the power supply is dynamic. Is a token stream-able? @@ -68,23 +58,13 @@ If a buyer wants to purchase a tokenised country estate from a seller, how do th If a token entitles the user to do specific actions online, how can the user login to the web services with that token? -We have done very little on making the tokens interoperable with different methods of trading, listing and rating; there is nearly zero effort devoted to making tokens represent *goods and services* - a basic need for an efficient market. +It's easy to see the need of a framework defining tokens and making them interoperable with different methods of trading, listing and rating. We did end up having hundreds of tokens in 2017-2018, but they are uniformly on the payment side - currency like, ERC20 tokens. There is nearly zero effort devoted to making tokens represent *goods and services* - a basic need for an efficient market. -During the speculative bubble of 2017, a power token ICO does not need to provide any explanation of how the tokens can be used. All speculators need to know is that they represent a "stake in the future tokenised electricity". As long as the token can fill investors with imagination, it's good enough for an ICO. There is, no more functionality needed other than an ERC20 interface. Such a speculative token doesn't depend on attestations - the proof of actual power production - nor does it need properties like where the energy is provided or for how long it is available. There is no need to do actual work besides the marketing and creation of an ERC20 token. +During the speculative bubble of 2017, a power token ICO does not need to provide any explanation of how the tokens can be used. All speculators need to know is that they represent a "stake in the future world of tokenised electricity". As long as the token can inspire investors with imagination, it's good enough for an ICO. There is, no more functionality needed other than an ERC20 interface. Such a speculative token doesn't depend on attestations - the proof of actual power production - nor does it need properties like where the energy is provided or for how long it is available. -With the madness over, it is time to present a framework for describing such token behaviours. +Now the madness is over, it's time to present the technical framework to make market work. -Such a framework must fit tokens into different environments for them to function as use-cases; they must: - -- Let the user interact with different IT systems and APIs - -- Make them render-able and associated with the actions they can perform in the user's wallet - -- Making them fit into listing or auction based general-purpose markets; building one marketplace for one token type would be too inefficient. - -- Allow new protocols to be developed on top of them (streaming, communication, staking, collateralization, etc.) - -### Integrate the web. +### Second primary function of the blockchain: Integrate the web. Tim Berners-Lee and the innovators of the world wide web modelled the web primarily on a public library model and computer-human interaction model. @@ -112,9 +92,13 @@ This process is onerous and inflexible; it doesn't allow the owner to authorise The web also doesn't have an ownership or transfer of value mechanism. If Alice is interested in a "Magic: The Gathering" card, and it popped up in the market, Alice will need to create an account on a website like mtgox.com, shorthand for "Magic The Gathering: Gox", to trade it. She might also need to sort out a payment method with a Paypal account. Proper integration is often lacking for complexity or security reasons, and the user has to do it manually. For each integration, the user needs to own two accounts, and when she wants to use the card in an online game, she will need a third account to log in to the game. She can't click on a link in an email and immediately use the card in a game. -It's easy to see that these building blocks are necessary for an integrated web and that blockchains can serve this need, but what's the path to get there? +It's easy to see that these missing features are necessary for an integrated web and that blockchains can serve this need, but how to provide them? Again, the answer is "tokenisation". + +Tokens seamlessly go across systems, carries their trading rules and user interfaces. -Tokens seamlessly go across systems, exemplified by a property token being used for rent, insurance, pest inspection, mortgages and many other markets. It must define its own behaviour pattern which can be used to interact with users to show the status and allow functions to be accessible from its integration environment. In other words, a token must have its own UI and integration logic. +-- + +exemplified by a property token being used for rent, insurance, pest inspection, mortgages and many other markets. It must define its own behaviour pattern which can be used to interact with users to show the status and allow functions to be accessible from its integration environment. In other words, a token must have its own UI and integration logic. We assert that the way to get there is a data processing language that defines tokens and their behaviour. In such a design, the token is the integration point and the language is the interface for the integrations. Tokens seamlessly go across systems, exemplified by a property token being used for rent, insurance, pest inspection, mortgages and many other processes. @@ -123,6 +107,32 @@ It must define its own behaviour pattern which can be used to interact with user [a picture of an example of a property token that has two statues side by side]. The left side has an action button (among others) that says Power Connection. The right side has the same token, but with a "Leased" label on it, and the "Power Connection" action button is invalidated because now it is with the lessor] +#### The challenge of tokenisation + +Tokenisation requires bundling a token with its transaction rules and behaviour patterns, taking them off the system where they initially grew in, free them to be traded or used in different context. + +Taking property as an example, its existance as a record in the title deeds office is not useful to an open market, since it's only valid in that +database. Tokenising property would require a crypto-record on a blockchain not owned by the title deeds office[^in-house-blockchain]. + +This paper focuses on the missing layer in the technical stak for tokenisation to happen. + +[^in-house-blockchain]: There is the biggest misconception in the traditional government and business sector, that in order to use blockchain, one has to own it in house. TV serie IT Crowds famousely joked such misconception by having a few IT guys presenting to management the Internet as a physical box, fittingly owned in a house. + + +[ these paragraphs should move to the lower level] + +With the madness over, it is time to present a framework for describing such token behaviours. + +Such a framework must fit tokens into different environments for them to function as use-cases; they must: + +- Let the user interact with different IT systems and APIs + +- Make them render-able and associated with the actions they can perform in the user's wallet + +- Making them fit into listing or auction based general-purpose markets; building one marketplace for one token type would be too inefficient. + +- Allow new protocols to be developed on top of them (streaming, communication, staking, collateralization, etc.) + ## Design requirements From 8b8ed7168d42f47bcdf8fd312ca66f0b636602ef Mon Sep 17 00:00:00 2001 From: colourful-land Date: Mon, 25 Feb 2019 18:03:07 +1100 Subject: [PATCH 036/598] redo the hier of the titles --- doc/design_paper.md | 61 ++++++++++++++++++++++++--------------------- 1 file changed, 32 insertions(+), 29 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index ca59caf0..75eb68f2 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -12,10 +12,13 @@ Previous efforts in this industry primarily focused on enriching the capacity of Just like a house providing a place to live. -\pagebreak +## Advertisement + +Please join our work at xxx. A yellowpaper will be produced to guide implementors to use TBML for their tokens and dapps, but a work in progress is always availble online. +\pagebreak -## Introduction +# Introduction Blockchain technology has **two primary functions** that serve essential purposes for the future economy and the future Internet: @@ -24,7 +27,7 @@ Blockchain technology has **two primary functions** that serve essential purpose This paper will address the vision of where we can be and follow up with the design and reasoning behind the architecture needed on top of the blockchain. We will then explain TBML which is a critical missing layer and go over its design principles and how we are building it. -### First primary function of the blockchain: Frictionless markets +## Blockchain provides a frictionless market The 80s' "Back to the Future" featured a world of powerful machines filled with hovering boards and flying cars. It didn't happen. As Peter Thiel once famously lamented, "we were promised flying cars; instead, we got 140 characters". The technological advancement of our time is beyond the imagination of the 80s science fiction movies, albeit not through more powerful machinery, but efficient use of Internet. @@ -36,7 +39,7 @@ With blockchain, any tokenised asset can be transacted any time, as long as it f [^market-model]: With the traditional intermediary-operated market model, a trade is made in two stages: entering the market, making a deal. Blockchain can simplify that into a protocol; therefore the blockchain token assets can be considered always on the market. -#### Can we create a frictionless market through tokenisation? +### Can we create a frictionless market through tokenisation? Can we tokenise, for example, 1% of a property, so that the property market can react faster than the typical month-long property purchase-sales cycle? @@ -64,7 +67,7 @@ During the speculative bubble of 2017, a power token ICO does not need to provid Now the madness is over, it's time to present the technical framework to make market work. -### Second primary function of the blockchain: Integrate the web. +## Blockchain integrates the web Tim Berners-Lee and the innovators of the world wide web modelled the web primarily on a public library model and computer-human interaction model. @@ -107,7 +110,7 @@ It must define its own behaviour pattern which can be used to interact with user [a picture of an example of a property token that has two statues side by side]. The left side has an action button (among others) that says Power Connection. The right side has the same token, but with a "Leased" label on it, and the "Power Connection" action button is invalidated because now it is with the lessor] -#### The challenge of tokenisation +### The challenge of tokenisation Tokenisation requires bundling a token with its transaction rules and behaviour patterns, taking them off the system where they initially grew in, free them to be traded or used in different context. @@ -134,7 +137,7 @@ Such a framework must fit tokens into different environments for them to functio - Allow new protocols to be developed on top of them (streaming, communication, staking, collateralization, etc.) -## Design requirements +# Design requirements We assert that a descriptive language (TBML) is needed to allow blockchain technology to enable "frictionless markets" and an "integrated web". @@ -142,7 +145,7 @@ TBML stands for Token Behaviour Markup Language and is our framework for definin Unlike most whitepapers in the space, we choose to demonstrate the design by order of requirements to make a solution; this is because TBML is a solution layer rather than Ethereum or Plasma which serves as a base layer. It's not feasible to demonstrate the works of TBML or evaluate a design decision without showing use-cases as examples. -### address "Frictionless Market" capacity +## address "Frictionless Market" capacity Taking a closer look at "market", a market is not a noisy channel overloaded with information; more importantly, it is a place where delivery versus payment happens. With less reliance on the middlemen, our focus is turned into the tokens being traded, that is, deliverables and payments. On the deliverable side, there are all sorts of things money can buy: assets, goods and services. On the payment side, there are Ether, DAI, Sovereign etc. @@ -152,7 +155,7 @@ Such a framework is essential for tokens to be presented, indexed, traded, aucti To demonstrate the design requirements we improvised an example of "1% property token". -#### 1% property token +### 1% property token Let's imagine a market for "1% property". A property owner can issue many pieces of a token, each represents 1% ownership of the property. He can sell these tokens to obtain cash. @@ -182,7 +185,7 @@ Any party is able to render and apply functions to the token using TBML, includi In general, providing a layered structure, using and reusing it, is better than having a static design where a Dapp is tied to an asset class and has all the knowledge of the asset locally. The reasons for this are interoperability, scalability and security. Specifically, with the 1% property token as an example, the interoperability, scalability and security concerns are demonstrated below. -#### Interoperability: +### Interoperability: Suppose a property guru named Peter wishes to create a website called "Peter's Pride Asset", where he selects the best properties available on the market. He can create a listing of those properties with rich information of the current price, location, age of the building and even photos, which the users can purchase with a click. There is no reason that he needs permission to do so because the data of those tokens are on the blockchain and the transaction of those tokens requires no middlemen. However, he would need to obtain the knowledge local to how to render the token on his website, like how to get the expiration of a token from its holding smart contract. If the underlying smart contract has gone through changes, like adding an attribute (e.g. council rate), his website would need to upgrade. @@ -190,13 +193,13 @@ Similarly, the transaction rule might be updated to require the buyer to submit In a similar fashion, suppose an investors' forum where the members are allowed to login using their 1% property token, the rendering of the token, under each post, would need to be sourced from the Dapp tied to the token, since it's too much work for a forum to render the token and keep the code updated. Such sourcing would require permission and might be tied to the availability of that Dapp. -#### Scalability +### Scalability Horizontally, the same type of asset might have tokens across multiple networks like Plasma Chains. A buyer is likely to be interested only in assets in Australia, and therefore only connected to the Australian 1% Property network. It can be difficult to have an all-knowing node to provided rendered token information for all existing tokens, especially if a network is designed with privacy in mind. Therefore, to scale, the knowledge about the token (TBML) must be detached from the access to the token. Vertically, if we desire a token whose makeup is a 1% property token from a sample of 100 global cities, for mid-big size investors to distribute the risk, a computer system that can manipulate such a token must be built with the knowledge about member tokens. It again cannot depend on the availability, security and openness of the original Dapp tied to that asset. TBML would work in the middle for the making of such tokens. -#### Security +### Security It is impractical to improvise a schema where every transaction the user might sign is rendered in a user-readable format. It's easy to start with such an effort with a transaction data translation tool, translating an enigmatic transaction payload to "user-readable data", but ultimately the system integration and UX needs would surpass what a translation engine can do. @@ -212,7 +215,7 @@ TBML is designed to separate token rendering code, and transaction generating co A user who is purchasing a 1% property token from Peter's Pride Property recommendation website can be supplied with a rendering and transaction package, signed by the same group of people who created the holding contract of such tokens. Therefore the user can purchase assets from any website with a similar level of trust, or purchase it from a WeChat or Facebook private message and know it is the real token being rendered and transacted. -#### Design requirements for a frictionless market +### Design requirements for a frictionless market The TBML language has to provide: @@ -231,7 +234,7 @@ And it should be usable by: We will proceed on addressing the need for "Integrating the Web" and come to a full picture of the design requirements of TBML in the following chapters. -### address the "Integrate the web" need +## address the "Integrate the web" need As we explained earlier, the web is poorly integrated, as the only link between the units of the web, i.e. "websites" are links. It carries no business process, authentication or trust relationship. There are no anchoring points for integration. @@ -247,19 +250,19 @@ If without tokens as the integration anchor, the three different services might --- -#### The Shipping Token +### The Shipping Token Without it, a user might get a tracking number instead of a token, which itself carries no authentication information, so it can't be used to pick up the product unless a pickup code is provided, perhaps in SMS - even more poorly integrated with the process. With the use of a shipping token, the token status can be remotely updated by the shipping company, even messaging to users to inform an upcoming delivery (if the token is held in a mobile wallet). With a bit of cryptography, it's easy to authorise someone else to pick up a product. -#### Warranty Token +### Warranty Token Without this token, a user might need the serial number and an online registration process to activate the warranty. She might even need to create an account for that, whose password she will probably soon forget. With the use of a warranty token, the terms and expiration would be easy to find, as it is token properties. The user can log in to the warranty service website with the token, forgoing an account. The token can be programmed to receive messages like product call back or emergency security updates. -#### Receipt Token +### Receipt Token Lacking a reliable way to authenticate the purchase, an online purchased product usually cannot be returned to the store but might be returned via online means such as a postback. A token carries the means for authentication sufficient for the process to be done in store. @@ -467,11 +470,11 @@ The following picture illustrates the look of such a car token in the user's wal ◀ ◉ ◼ -## The design of TBML +# The design of TBML We talked about the design requirements of TBML and let's step in closer to find out how would it work. -### Relate tokens to smart contract and tokens to web services +## Relate tokens to smart contract and tokens to web services Early public blockchain projects attempted to implement both token logic and business process into smart contracts. Using an online retail project as an example, such a smart contract would not only process an order but also manages the inventory. The token transaction logic, like under what condition the transaction is valid, is tied with business process, like checking inventory. This method is, naturally, inherited from the way people build websites. @@ -493,7 +496,7 @@ Preferably instead, the online retailer obtained a point of integration - the sh As the business matures and markets become less frictional, two changes happen. -#### Change in the business process +### Change in the business process The first change is that the online retailer found a better shipment company. In this case, the new shipment company will integrate the same shipment token, sending shipping progress information in place of the old one. The customers can still prove ownership of the shipping with his token, e.g. by using an NFC mobile phone to touch the deliverer's hand-held device. @@ -501,7 +504,7 @@ There is no need to change the smart contract transaction rules. The online reta This change illustrated that the business process should decouple from the token, instead, integrated through the token. -#### Change in the market +### Change in the market Business went on for a while; then, there is an innovation from the blockchain market. Some users bulk-purchased a year's shipping from a delivery company, to enjoy the AmazonPrime-like free shipping privileges without using Amazon[^last-mile-market]. Seeing an opportunity, a credit card company even went so far as to provide such a privilege to the subscribers of their card, which is also represented by a toke. @@ -515,7 +518,7 @@ The online retailer will necessarily modify his business process to expect pick- This change illustrated that a new transaction rule would result in a change of smart contract. -#### Business processes may not change smart contract. Market condition may. +### Business processes may not change smart contract. Market condition may. To recap, business process changes should not lead to a smart contract change. An improvement in a free market, in the form of a transaction rule change, should naturally lead to a smart contract change. Blockchain serves to provide a frictionless market, not to optimise business processes. @@ -572,7 +575,7 @@ It's worth noting that messaging is not the only part connected to the business It's also possible to write TBML in such a way that only messages from the online retailer is trusted and displayed, therefore, any new delivery company must send their delivery status message to the online retailer's systems to be forwarded to the buyer. There are availability and privacy reasons why this may not be a good idea. For example, a delivery company should be able to operate when the online retailer is offline; the user might send the door entrance passcode to the delivery company which the online retailer should not learn. -### Types of tokens +## Types of tokens Since 2018, Ethereum community has roughly categorised tokens as fungible tokens and non-fungible tokens. @@ -584,7 +587,7 @@ The categorisation isn't capturing the full spectrum of the tokens we could and This paper re-introduces the concept of attestations - it has been there for decades but wasn't fully utilized. From there, this paper categorises tokens as "blockchain token" and "attestation". The former type includes both fungible and non-fungible tokens. The latter type "attestation" will be explained here. -### Attestations +## Attestations Attestation is a cryptographically signed message testifying something on a subject - a person, a token, or another attestation. Since it is specific to that subject being attested, it is not transferrable on its own on the blockchain. @@ -608,15 +611,15 @@ To explain the use case where the *issuing* of attestation has to happen on the To explain the use case when the *revocation* of an attestation has to happen on the blockchain, let's consider an attestation called FIFA ticket. Issued by the event's organiser, it attests the owner's right to enter the venue, usually after the user has paid or was gifted the ticket. Let's assume 90% of the tickets are purchased with non-crypto currency, therefore these tickets would not have a trace on the blockchain. However, if a ticket's owner decides to sell his tickets on the blockchain following the corresponding smart contract rules, the ticket has to be used as the input of such a transaction and considered consumed, while a blockchain token representing the same entitlement would be created and traded. The writes of this paper organised a FIFA ticket experiment in mid-2018 to test the concepts, and internally we call such an attestation "a spawnable" as its use spawns a blockchain token. The detail of that experiment can be found in another paper [cite]. -## The components of TBML +# The components of TBML -### Magic Links +## Magic Links Magic links are simply a signed message for an atomic swap. It facilitates one major function of traditional financial institutions, a function called "Delivery versus Payment", whereby one party, the buyer, pays in a currency and the other delivers an asset to be purchased. In today's financial world, delivery of physical goods is not a concern of the financial institutions. Once the transaction is done on paper or on a computer, it is considered done. This assumption is built on the trust towards financial institutions. (Consider deletion: If, for example, the transaction consists of a loan in the form of currency and a car the loan is used to purchase, then the actual delivery of the car is out of concern, and both the buyer and seller are expected to follow what the computer tells them to do.) -### Assets +## Assets In TBML terminology, an asset is something that can be owned and has value. This is a broad definition and doesn't require, like the financial assets, that an asset produces a return, or is anticipated to. @@ -630,7 +633,7 @@ Rental.... Airbnb ... -### Actions +## Actions Actions are things that can be done to an asset. @@ -649,7 +652,7 @@ The case with non-fungible tokens are more complicated. Let's continue with the -## Examples of TBML +# Examples of TBML --- Authors note: From b405c1f1879174db5d0a4977ddd1398c737be01e Mon Sep 17 00:00:00 2001 From: colourful-land Date: Mon, 25 Feb 2019 19:26:16 +1100 Subject: [PATCH 037/598] nth attempt to get the first chapter straight --- doc/design_paper.md | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 75eb68f2..4f5b432d 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -77,25 +77,37 @@ In the computer-human interaction model, two players are having a conversation - Therefore the web was built as a giant library where each book is a computer with whom one can have a conversation. It's probably where Facebook got its namesake inspiration - a website that is a book. -This design has caused a lot of modern inconveniences. A user would one day order a pair of shoes. In another day, receives an SMS about an upcoming delivery; she then takes the shipping tracking number, opens the Australia Post website - another book in the giant library of the web - and types in the tracking number to find the current status. She might still not evne know it is the shoes. In another occasion, the same user might pause as she books two tickets for an opera, switch to her frequent flyer app, copy that number over and paste it into the order to collect the points. She might struggle a bit installing that frequent flyer app to start with. +This design has caused a lot of modern inconveniences. A user would one day order a pair of shoes. In another day, receives an SMS about an upcoming delivery; she then takes the shipping tracking number, opens the Australia Post website - another book in the giant library of the web - and types in the tracking number to find the current status. She might still not even know what's in the parcel. In another occasion, the same user might pause as she books two tickets for an opera, switch to her frequent flyer app, copy that number over and paste it into the order to collect the points. She might struggle a bit installing that frequent flyer app to start with. Why are we doing so much copy and pasting when machines are exceptionally good at doing this? It's because the web is like a giant library by design, and we are like readers keeping notes of the index numbers under our sleeves, and it's not designed like a personal assistant. -It's easy to see the cause of the inconvenience; the web is poorly integrated. When a user checks out on a website, she isn't sure if she has enough balance on her card, because the bank is not integrated with the shopping system. When a patient orders a service, she can't see how much the insurance can cover until the bill is settled, nor can she see whether she has reached the annual cap because the clinic is not integrated with the health insurance company. +It's easy to see the cause of the inconvenience; the web is poorly integrated. -The answer to an integrated web requires a few building blocks that weren't in the blueprint: authentication, ownership, transfer of value and trading. +- When a user checks out on the web, she isn't sure if she has enough balance on her card, because the bank is not integrated with the shopping system. + +- When a patient orders a service, she can't see how much the insurance can cover until the bill is settled, nor can she see whether she has reached the annual cap because the clinic is not integrated with the health insurance company. + +The answer to integrate the web requires a few building blocks that weren't in the blueprint: authentication, ownership, transfer of value and trading. The web doesn't have a built-in authentication mechanism[^tls]. The add-on "Sign in with Facebook" merely tried to provide authentication through a trusted 3rd party, which, despite privacy and availability concerns, is only good for account authentication and not for business logic. [^tls]: Despite the excellent efforts on client/server certificates in TLS, these authentication methods are not for processes, but only for sites. It's a delegation model. Imagine a buyer not checking if a title deed is real, but only checks if the seller's name matches the one on the deed. That would be the delegation model used in TLS. In this model, TLS can't guarantee anything on the website is real, only that the website is real. Facebook uses TLS but people put a lot of fake news on it. The unit of trust here is certainly not granular enough for the web to deliver an integrated experience. -"Account authentication" is not a substitute for web integration. For example, the simple business logic: "the owner of the property can check its easement information", doesn't require account authentication, and it would be a bad idea to add account authentication on top of it. If you force the "Account authentication" model, when the property is sold, the new property owner would now need to create a new account at the easement service website and secure it with the proof of ownership to the property. +### "Account authentication" is not a substitute for web integration. + +For example, the simple business logic: "the owner of the property can check its service history", doesn't require an account. If you force the "Account authentication" model, bad things happens: + +- When the car is sold, the new car owner would now need to create a new account at the service website and secure it with the proof of ownership to the car. This is onerous, a hidden cost to the car market. + +- When a 3rd party like a Vehicle Modification workshop or an insurer needs to access the repair history, there is no easy way to authorise them without giving away the account. This is inflexible. + +Such integration needs, poorly addressed by adding accounts, are easily found in healthcare, retail and almost every web-based business. Today, we are still adding more and more accounts to address the growing integration needs. It's a case of hammering every problem down as if it is a nail. -This process is onerous and inflexible; it doesn't allow the owner to authorise the access to a 3rd party like a landscape planner or a pest inspector. Such integration needs, poorly addressed by account authentication, are easily found in healthcare, retail and almost every web-based business. Today, we are still adding more and more accounts to address the growing integration needs. It's a case of hammering every problem down as if it is a nail. +Similiarly, the web doesn't have a builtin mechanism for ownership, transfer of value and trading. -The web also doesn't have an ownership or transfer of value mechanism. If Alice is interested in a "Magic: The Gathering" card, and it popped up in the market, Alice will need to create an account on a website like mtgox.com, shorthand for "Magic The Gathering: Gox", to trade it. She might also need to sort out a payment method with a Paypal account. Proper integration is often lacking for complexity or security reasons, and the user has to do it manually. For each integration, the user needs to own two accounts, and when she wants to use the card in an online game, she will need a third account to log in to the game. She can't click on a link in an email and immediately use the card in a game. +Taking the car story further, a car seller would need to post the car information on a website, creating yet another account on the way. The buyer cannot buy it and acquire automatically the ownership proof, compulsory insurance, unused service quota and so like, with not much defence on fraud. These has to be done separately. Even payment has to be done separately. The process starts at web and ends somewhere else. -It's easy to see that these missing features are necessary for an integrated web and that blockchains can serve this need, but how to provide them? Again, the answer is "tokenisation". +These missing features of the web is provided by blockchains. The key to such a connection is "tokenisation". Tokens seamlessly go across systems, carries their trading rules and user interfaces. From fa7169027377ce2b70994a0be0391701e43fb7fa Mon Sep 17 00:00:00 2001 From: colourful-land Date: Mon, 25 Feb 2019 20:55:18 +1100 Subject: [PATCH 038/598] more editing for consistacny and dropping the shoe purchase example --- doc/design_paper.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 4f5b432d..fe5b9be4 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -77,17 +77,19 @@ In the computer-human interaction model, two players are having a conversation - Therefore the web was built as a giant library where each book is a computer with whom one can have a conversation. It's probably where Facebook got its namesake inspiration - a website that is a book. -This design has caused a lot of modern inconveniences. A user would one day order a pair of shoes. In another day, receives an SMS about an upcoming delivery; she then takes the shipping tracking number, opens the Australia Post website - another book in the giant library of the web - and types in the tracking number to find the current status. She might still not even know what's in the parcel. In another occasion, the same user might pause as she books two tickets for an opera, switch to her frequent flyer app, copy that number over and paste it into the order to collect the points. She might struggle a bit installing that frequent flyer app to start with. +This design has caused a lot of modern inconveniences. A user would one day receive an email on her monthly statement, yet she couldn't recognise a few entires on them. It says "Amazon". Was it about ordering a pair of shoes? She has to copy the order number and look it up in Amazon. In another occasion, the same user might pause as she books two tickets for an opera, switch to her frequent flyer app, copy that number over and paste it into the order to collect the points. She might struggle a bit installing that frequent flyer app to start with. -Why are we doing so much copy and pasting when machines are exceptionally good at doing this? It's because the web is like a giant library by design, and we are like readers keeping notes of the index numbers under our sleeves, and it's not designed like a personal assistant. +Why are we doing so much copy and pasting when machines are exceptionally good at doing this? It's because the web is like a giant library by design, and we are like readers keeping notes of the index numbers under our sleeves. It's not, as we would hope to have, designed like a personal assistant.[^smart-phone] -It's easy to see the cause of the inconvenience; the web is poorly integrated. +[^smart-phone]: Surprisingly, even the technology that was created to fill the role of a personal assitant, the Smart Phone, still failed, for the same reason: a Web not integratable can't be integrated by the efforts from client side alone. The infrastructure has to support integration. A smart phone is modeled like a dial-up Internet connection, with each app representing a website. The users stil need to figure out whom to talk to before talking, and still copies information around. It's not possible, for example, to ask your smart phone to sum up all the money one may access by his online banking apps. + +It's easy to see the cause of the inconvenience; the web is poorly integrated. The bad examples go on and on: - When a user checks out on the web, she isn't sure if she has enough balance on her card, because the bank is not integrated with the shopping system. - When a patient orders a service, she can't see how much the insurance can cover until the bill is settled, nor can she see whether she has reached the annual cap because the clinic is not integrated with the health insurance company. -The answer to integrate the web requires a few building blocks that weren't in the blueprint: authentication, ownership, transfer of value and trading. +The answer to integrate the web requires a few building blocks that weren't in the Web's blueprint: authentication, ownership, transfer of value and trading. The web doesn't have a built-in authentication mechanism[^tls]. The add-on "Sign in with Facebook" merely tried to provide authentication through a trusted 3rd party, which, despite privacy and availability concerns, is only good for account authentication and not for business logic. @@ -95,7 +97,7 @@ The web doesn't have a built-in authentication mechanism[^tls]. The add-on "Sign ### "Account authentication" is not a substitute for web integration. -For example, the simple business logic: "the owner of the property can check its service history", doesn't require an account. If you force the "Account authentication" model, bad things happens: +For example, the simple business logic: "the owner of a car can check its service history", doesn't require an account. If you force the "Account authentication" model, bad things happens: - When the car is sold, the new car owner would now need to create a new account at the service website and secure it with the proof of ownership to the car. This is onerous, a hidden cost to the car market. From a1d0c2bcf3c2d352b6225c70cc330b3bce21ed29 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Mon, 25 Feb 2019 21:05:53 +1100 Subject: [PATCH 039/598] wording --- doc/design_paper.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index fe5b9be4..93effec5 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -91,7 +91,7 @@ It's easy to see the cause of the inconvenience; the web is poorly integrated. T The answer to integrate the web requires a few building blocks that weren't in the Web's blueprint: authentication, ownership, transfer of value and trading. -The web doesn't have a built-in authentication mechanism[^tls]. The add-on "Sign in with Facebook" merely tried to provide authentication through a trusted 3rd party, which, despite privacy and availability concerns, is only good for account authentication and not for business logic. +The web doesn't have a built-in authentication mechanism[^tls]. The add-on "Sign in with Facebook" merely tried to provide authentication through a trusted 3rd party, which, despite privacy and availability concerns, is only good for account authentication and not for integration. [^tls]: Despite the excellent efforts on client/server certificates in TLS, these authentication methods are not for processes, but only for sites. It's a delegation model. Imagine a buyer not checking if a title deed is real, but only checks if the seller's name matches the one on the deed. That would be the delegation model used in TLS. In this model, TLS can't guarantee anything on the website is real, only that the website is real. Facebook uses TLS but people put a lot of fake news on it. The unit of trust here is certainly not granular enough for the web to deliver an integrated experience. @@ -99,17 +99,19 @@ The web doesn't have a built-in authentication mechanism[^tls]. The add-on "Sign For example, the simple business logic: "the owner of a car can check its service history", doesn't require an account. If you force the "Account authentication" model, bad things happens: -- When the car is sold, the new car owner would now need to create a new account at the service website and secure it with the proof of ownership to the car. This is onerous, a hidden cost to the car market. +- When the car is sold, the new car owner would now need to create a new account at the service website and secure it with the proof of ownership to the car. This is onerous and unreliable. - When a 3rd party like a Vehicle Modification workshop or an insurer needs to access the repair history, there is no easy way to authorise them without giving away the account. This is inflexible. -Such integration needs, poorly addressed by adding accounts, are easily found in healthcare, retail and almost every web-based business. Today, we are still adding more and more accounts to address the growing integration needs. It's a case of hammering every problem down as if it is a nail. +Such integration needs, poorly addressed by adding accounts, are easily found in healthcare, retail and almost every web-based business. Today, we are still adding more and more accounts to address the growing integration needs. It's a case of hammering every problem down as if it is a nail. The following chapters will demonstrate that integration through token, not account, is the solution. Similiarly, the web doesn't have a builtin mechanism for ownership, transfer of value and trading. -Taking the car story further, a car seller would need to post the car information on a website, creating yet another account on the way. The buyer cannot buy it and acquire automatically the ownership proof, compulsory insurance, unused service quota and so like, with not much defence on fraud. These has to be done separately. Even payment has to be done separately. The process starts at web and ends somewhere else. +Taking the car story further, a car seller would need to post the car information on a website, creating yet another account on the way. The buyer cannot buy it and acquire automatically (and atomically[^atomatic]) the ownership proof, compulsory insurance, unused service quota and so like, yet defenceless to frauds. These has to be done separately. Even payment has to be done separately. The process starts at web and ends somewhere else. -These missing features of the web is provided by blockchains. The key to such a connection is "tokenisation". +[^atomatic]: In blockchain terms, an atomatic transaction either happens or not. If well defined, it's not impossible for a buyer to have successfully paid for a car yet not getting the ownership token, or only have transferred the car's ownership but not the compulsory insurance on it. + +These missing features of the web are the well known functions of blockchain. The key to pair the Web with blockchain, is "tokenisation". Tokens seamlessly go across systems, carries their trading rules and user interfaces. From 052d192050bdb77ec19e351a5a6d7638b5e596aa Mon Sep 17 00:00:00 2001 From: colourful-land Date: Mon, 25 Feb 2019 21:13:28 +1100 Subject: [PATCH 040/598] wording --- doc/design_paper.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 93effec5..151b67c0 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -107,13 +107,17 @@ Such integration needs, poorly addressed by adding accounts, are easily found in Similiarly, the web doesn't have a builtin mechanism for ownership, transfer of value and trading. -Taking the car story further, a car seller would need to post the car information on a website, creating yet another account on the way. The buyer cannot buy it and acquire automatically (and atomically[^atomatic]) the ownership proof, compulsory insurance, unused service quota and so like, yet defenceless to frauds. These has to be done separately. Even payment has to be done separately. The process starts at web and ends somewhere else. +Taking the car story further, a car seller would need to post the car information on a website, creating yet another account on the way. The buyer cannot click "buy" and acquire the ownership proof, compulsory insurance, unused service quota and so like in one go. These has to be done separately, using easily tampered paper proofs and forms. Even payment has to be done separately. The process starts at web and ends somewhere else. -[^atomatic]: In blockchain terms, an atomatic transaction either happens or not. If well defined, it's not impossible for a buyer to have successfully paid for a car yet not getting the ownership token, or only have transferred the car's ownership but not the compulsory insurance on it. +In contrast, the same process on blockchain would be automatic, fraud-proof[^attestations] and atomic[^atomic]. -These missing features of the web are the well known functions of blockchain. The key to pair the Web with blockchain, is "tokenisation". +[^attestations]: the method to provide cryptographically signed attestations as a condition for transaction is discussed later in the "Attestation" chapter. -Tokens seamlessly go across systems, carries their trading rules and user interfaces. +[^atomic]: In blockchain terms, an atomatic transaction either happens or not. If well defined, it's not impossible for a buyer to have successfully paid for a car yet not getting the ownership token, or only have transferred the car's ownership but not the compulsory insurance on it. + +These missing features of the web are the well known functions of blockchain. This seemingly perfect-fit pair's wedding requires the exchange of tokens, or what this paper call "tokenisation". + +Tokens seamlessly go across systems, carries their trading rules and user interfaces and business context. -- From dccbfa693b705fe46640d7444d0b3a1ac3c037af Mon Sep 17 00:00:00 2001 From: colourful-land Date: Mon, 25 Feb 2019 21:48:47 +1100 Subject: [PATCH 041/598] wording --- doc/design_paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 151b67c0..335603d9 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -115,7 +115,7 @@ In contrast, the same process on blockchain would be automatic, fraud-proof[^att [^atomic]: In blockchain terms, an atomatic transaction either happens or not. If well defined, it's not impossible for a buyer to have successfully paid for a car yet not getting the ownership token, or only have transferred the car's ownership but not the compulsory insurance on it. -These missing features of the web are the well known functions of blockchain. This seemingly perfect-fit pair's wedding requires the exchange of tokens, or what this paper call "tokenisation". +These missing features of the web are the well known functions of blockchain. The virtual wedding of this perfect fit couple requires a virtual exchange of tokens, or what this paper call "tokenisation". Tokens seamlessly go across systems, carries their trading rules and user interfaces and business context. From 602889544c74330d43f0b54632c6adec63fe8195 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Mon, 25 Feb 2019 22:46:16 +1100 Subject: [PATCH 042/598] adapt car token example to be used in the begining chapter, and move it there. --- doc/design_paper.md | 143 ++++++++++++++++++++++---------------------- 1 file changed, 71 insertions(+), 72 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 335603d9..d42e2fe0 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -18,7 +18,7 @@ Please join our work at xxx. A yellowpaper will be produced to guide implementor \pagebreak -# Introduction +# Introduction: What does blockchain *do*? Blockchain technology has **two primary functions** that serve essential purposes for the future economy and the future Internet: @@ -119,6 +119,74 @@ These missing features of the web are the well known functions of blockchain. Th Tokens seamlessly go across systems, carries their trading rules and user interfaces and business context. +## Example: Car Ownership Token + +The following example, a car ownership, is a successfully tokenised .... [Edit: explain the elements] + + +----------------------------------------------------------+ + | | + | Holden Barina 2012 Ownership Token | + | | + | Make: Holden Year: 2013 Colour: Black | + | VIN: KL3TA48E9EB541191 | + | | + | +--------+ +--------------------+ +------------------+ | + | | Open | | Authorise use | | List for sale | | + | +--------+ +--------------------+ +------------------+ | + | | + | +--------+ +--------------------+ +------------------+ | + | | Start | | Lend | | Auction | | + | +--------+ +--------------------+ +------------------+ | + | | + | +--------+ +--------------------+ +------------------+ | + | | Lock | | Transfer Ownership | | Collateralise | | + | +--------+ +--------------------+ +------------------+ | + | | + | +--------+ +------------------+ | + | | Locate | | List for sharing | | + | +--------+ +------------------+ | + | | + | Registration: | + | | + | +------------------------------------+ | + | | | | +-----------------------------+ + | | Issuer: Roads & Maritime Services | | | | + | | Rego: CJ41HL Expiry: 2017+12+03 | | +-> | Access rego attestation | + | | | | | | + | +------------------------------------+ | +-----------------------------+ + | | + | Holden Capped Service | + | | + | +------------------------------------+ | + | | | | + | | Issuer: Holden Australia | | +-----------------------------+ + | | Expiry: 2020-12-09 | | | | + | | Last served: 180 days ago | | +-> | Access Invoice Token | + | | (due for a service) | | | | + | | | | +-----------------------------+ + | +------------------------------------+ | + | | + | Insurance | +------------------------------+ + | | | | + | +------------------------------------+ | | Access insurance token | + | | | | | functions: | + | | Issuer: Virgin Car Insurance | | +-> | | + | | Start Date: 2017 12 30 | | | · Claim | + | | | | | · Lump sum discount payment | + | +------------------------------------+ | | · Upgrade / downgrade | + | | | · Suspend policy | + | Purchase: | | · Access Roadside Assistance | + | | | | + | +------------------------------------+ | +------------------------------+ + | | | | + | | Issuer: Manheim Auctions | | + | | Date: 2015+12+09 Price: $4724.83 | | + | | | | + | +------------------------------------+ | + | | + +----------------------------------------------------------+ + + -- exemplified by a property token being used for rent, insurance, pest inspection, mortgages and many other markets. It must define its own behaviour pattern which can be used to interact with users to show the status and allow functions to be accessible from its integration environment. In other words, a token must have its own UI and integration logic. @@ -413,83 +481,14 @@ With the example of the 1% property token, we demonstrated that the blockchain c With the case of the AirBNB token, we also showed that tokens can have function integration like opening a smart lock during its booking validity. Let's illustrate an example where both uses are combined - a car token. +------------------ + On the one hand, a car is an asset, that can be bought, sold, transferred, auctioned, collaborated and insured, all enabled by blockchain. On the other hand, a car also has utility. A car's ownership token can convert a blockchain wallet into a car key, with additional functions like graphically representing the car's current location. Authorising someone to access your car, or renting it for profit, would be seamlessly done by signing blockchain transactions or attestations, without passing car keys around. The following picture illustrates the look of such a car token in the user's wallet: - - Telstra 13:45 31 Jan 2018 4G - +-----------------------------------------+ - | | - | Holden Barina 2012 Ownership Token | - | | - | Make: Holden Year: 2013 Colour: Black | - | VIN: KL3TA48E9EB541191 | - | | - | +------+ +-------+ +------+ +--------+ | - | | Open | | Start | | Lock | | Locate | | - | +------+ +-------+ +------+ +--------+ | - | | - | +---------------+ | - | | Authorise use | | - | +---------------+ | - | | - | +-------------+ +--------------------+ | - | | Maintenance | | Roadside Assitance | | - | +-------------+ +--------------------+ | - | | - | +---------------+ | - | | Collateralise | | - | +---------------+ | - | | - | Registration: | - | | - | +------------------------------------+ | - | | | | +-----------------------------+ - | | Issuer: Roads & Maritime Services | | | | - | | Rego: CJ41HL Expiry: 2017-12-03 | | ------> | Access rego attestation | - | | | | | | - | +------------------------------------+ | +-----------------------------+ - | | - | Purchase: | - | | - | +------------------------------------+ | - | | | | - | | Issuer: Manheim Auctions | | +-----------------------------+ - | | Date: 2015+12+09 Price: $4724.83 | | | | - | | | | ------> | Access Invoice Token | - | +------------------------------------+ | | | - | | +-----------------------------+ - | Insurance | - | | - | +------------------------------------+ | +-----------------------------+ - | | | | | | - | | Issuer: Virgin Car Insurance | | | Access insurance token | - | | Start Date: 2017 12 30 | | | functions: | - | | | | ------> | | - | +------------------------------------+ | | · Claim | - | | | · Lump sum discount payment | - | Services: | | · Upgrade / downgrade | - | | | · Suspend policy | - | +------------------------------------+ | | | - | | | | +-----------------------------+ - | | 2016+06+01 Holden Capped Service | | - | | | | - | | 2016+12+15 Holden Capped Service | | - | | + | | - | | +--+ Tire replacement | | - | | | | - | | 2017+06+15 Holden Capped Service | | - | | | | - | +------------------------------------+ | - | | - +-----------------------------------------+ - - - ◀ ◉ ◼ - # The design of TBML We talked about the design requirements of TBML and let's step in closer to find out how would it work. From 626f7c34c11892d5fb472d2b03fabf3f23ff9312 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Mon, 25 Feb 2019 23:03:32 +1100 Subject: [PATCH 043/598] Grammarly complained a lot. Fixed --- doc/design_paper.md | 48 ++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index d42e2fe0..6b9d3bec 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -14,7 +14,7 @@ Just like a house providing a place to live. ## Advertisement -Please join our work at xxx. A yellowpaper will be produced to guide implementors to use TBML for their tokens and dapps, but a work in progress is always availble online. +Please join our work at xxx. A yellow paper will be produced to guide implementors to use TBML for their tokens and dapps, but a work in progress is always available online. \pagebreak @@ -29,13 +29,13 @@ This paper will address the vision of where we can be and follow up with the des ## Blockchain provides a frictionless market -The 80s' "Back to the Future" featured a world of powerful machines filled with hovering boards and flying cars. It didn't happen. As Peter Thiel once famously lamented, "we were promised flying cars; instead, we got 140 characters". The technological advancement of our time is beyond the imagination of the 80s science fiction movies, albeit not through more powerful machinery, but efficient use of Internet. +The 80s' "Back to the Future" featured a world of powerful machines filled with hovering boards and flying cars. It didn't happen. As Peter Thiel once famously lamented, "we were promised flying cars; instead, we got 140 characters". The technological advancement of our time is beyond the imagination of the 80s science fiction movies, albeit not through more powerful machinery, but efficient use of the Internet. Ride-sharing revolutionised the way we organise our daily lives, and AirBNB changed the way we travel. These are the new, less frictional markets. They incur less cost to operate, are more accessible and have finer operational units. -But despite this web 2.0 revolution, the majority of markets still operate with high costs. The stock market, for example, has so much overhead that it is only justifiable for multi-million dollar businesses which rely on the trust of rules and regulations to operate. +However, despite this web 2.0 revolution, the majority of markets still operate with high costs. The stock market, for example, has so much overhead that it is only justifiable for multi-million dollar businesses which rely on the trust of rules and regulations to operate. -With blockchain, any tokenised asset can be transacted any time, as long as it follows the rules, without middlemen or intermediary, gives us maximum market efficiency - the frictionless market. On top of the benifit of not relying on an intermediary, in a tokenised market model, the buyers and sellers do not need to "enter" the market, instead, tokens are *always on the market*[^market-model], making such a model better than intermediaries. +With blockchain, any tokenised asset can be transacted any time, as long as it follows the rules, without middlemen or intermediary, gives us maximum market efficiency - the frictionless market. On top of the benefits of not relying on an intermediary, in a tokenised market model, the buyers and sellers do not need to "enter" the market; instead, tokens are *always on the market*[^market-model], making such a model better than intermediaries. [^market-model]: With the traditional intermediary-operated market model, a trade is made in two stages: entering the market, making a deal. Blockchain can simplify that into a protocol; therefore the blockchain token assets can be considered always on the market. @@ -51,7 +51,7 @@ Can we tokenise the risk and reward of international trades, so that small impor Can we create an insurance token that depends on cryptographic proofs, so that the insurer can remove from their pricing, the costs incurred by fraudulent documents? Can we decentralise the insurers altogether? -Blockchain can provide the foundational layer to achieve these. While blockchain scalability and privacy will improve, to make frictionless market work we also need quality methods to define how tokens should be used and transacted - the focus of our work on TBML. +Blockchain can provide the foundational layer to achieve these. While blockchain scalability and privacy will improve, a working, frictionless market also depends on quality methods to define how tokens should be used and transacted - the focus of our work on TBML. Tokens have different properties. Do tokens expire? AirBNB booking tokens certainly do, but 1% ownership of property tokens probably don't. Should the token owner receive a notification on a specific event? Power tokens certainly need that, for the change in the power supply is dynamic. Is a token stream-able? @@ -61,11 +61,11 @@ If a buyer wants to purchase a tokenised country estate from a seller, how do th If a token entitles the user to do specific actions online, how can the user login to the web services with that token? -It's easy to see the need of a framework defining tokens and making them interoperable with different methods of trading, listing and rating. We did end up having hundreds of tokens in 2017-2018, but they are uniformly on the payment side - currency like, ERC20 tokens. There is nearly zero effort devoted to making tokens represent *goods and services* - a basic need for an efficient market. +It's easy to see the need for a framework defining tokens and making them interoperable with different methods of trading, listing and rating. We did end up having hundreds of tokens in 2017-2018, but they are uniformly on the payment side - currency-like, ERC20 tokens. There is nearly zero effort devoted to making tokens represent *goods and services* - a basic need for an efficient market. During the speculative bubble of 2017, a power token ICO does not need to provide any explanation of how the tokens can be used. All speculators need to know is that they represent a "stake in the future world of tokenised electricity". As long as the token can inspire investors with imagination, it's good enough for an ICO. There is, no more functionality needed other than an ERC20 interface. Such a speculative token doesn't depend on attestations - the proof of actual power production - nor does it need properties like where the energy is provided or for how long it is available. -Now the madness is over, it's time to present the technical framework to make market work. +Now that the madness is over, it's time to present the technical framework to make the market work. ## Blockchain integrates the web @@ -75,29 +75,29 @@ In the library model, information is freely available, indexed and cross-referen In the computer-human interaction model, two players are having a conversation - the human asks and the machine answers. A computer has limited knowledge, but it can help the user to reach the right computer. -Therefore the web was built as a giant library where each book is a computer with whom one can have a conversation. It's probably where Facebook got its namesake inspiration - a website that is a book. +Therefore the web was built as a giant library where each book is a computer with whom one can have a conversation. The analogy probably is where Facebook got its namesake inspiration - a website is a book after all. -This design has caused a lot of modern inconveniences. A user would one day receive an email on her monthly statement, yet she couldn't recognise a few entires on them. It says "Amazon". Was it about ordering a pair of shoes? She has to copy the order number and look it up in Amazon. In another occasion, the same user might pause as she books two tickets for an opera, switch to her frequent flyer app, copy that number over and paste it into the order to collect the points. She might struggle a bit installing that frequent flyer app to start with. +This design has caused a lot of modern inconveniences. A user would one day receive an email on her monthly statement, yet she couldn't recognise a few entries on them. It says "Amazon". Was it about ordering a pair of shoes? She has to copy the order number and look it up in Amazon. In another occasion, the same user might pause as she books two tickets for an opera, switch to her frequent flyer app, copy that number over and paste it into the order to collect the points. She might struggle a bit installing that frequent flyer app at the outset. Why are we doing so much copy and pasting when machines are exceptionally good at doing this? It's because the web is like a giant library by design, and we are like readers keeping notes of the index numbers under our sleeves. It's not, as we would hope to have, designed like a personal assistant.[^smart-phone] -[^smart-phone]: Surprisingly, even the technology that was created to fill the role of a personal assitant, the Smart Phone, still failed, for the same reason: a Web not integratable can't be integrated by the efforts from client side alone. The infrastructure has to support integration. A smart phone is modeled like a dial-up Internet connection, with each app representing a website. The users stil need to figure out whom to talk to before talking, and still copies information around. It's not possible, for example, to ask your smart phone to sum up all the money one may access by his online banking apps. +[^smart-phone]: Surprisingly, even the technology that was created to fill the role of a personal assistant, the Smart Phone, still failed, for the same reason: the efforts from client side alone can't integrate a Web that is not designed to integrate. The infrastructure has to support integration. A smartphone is modelled like a dial-up Internet connection, with each app representing a website. The users still need to figure out which computer (app) to talk to before entering the conversation, and still copies information around as he swaps apps around. It's not possible, for example, to ask your smartphone to sum up all the money one may access by his online banking apps. It's easy to see the cause of the inconvenience; the web is poorly integrated. The bad examples go on and on: -- When a user checks out on the web, she isn't sure if she has enough balance on her card, because the bank is not integrated with the shopping system. +- When a user checks out on the web, she isn't sure if she has enough balance on her card, since the bank is not integrated with the shopping system. -- When a patient orders a service, she can't see how much the insurance can cover until the bill is settled, nor can she see whether she has reached the annual cap because the clinic is not integrated with the health insurance company. +- When a patient orders a service, she can't see how much the insurance can cover until the bill settles, nor can she know whether she has reached the annual cap since the clinic is not integrated with the health insurance company. -The answer to integrate the web requires a few building blocks that weren't in the Web's blueprint: authentication, ownership, transfer of value and trading. +The answer to integrating the web requires a few building blocks that weren't in the Web's blueprint: authentication, ownership, transfer of value and trading. The web doesn't have a built-in authentication mechanism[^tls]. The add-on "Sign in with Facebook" merely tried to provide authentication through a trusted 3rd party, which, despite privacy and availability concerns, is only good for account authentication and not for integration. -[^tls]: Despite the excellent efforts on client/server certificates in TLS, these authentication methods are not for processes, but only for sites. It's a delegation model. Imagine a buyer not checking if a title deed is real, but only checks if the seller's name matches the one on the deed. That would be the delegation model used in TLS. In this model, TLS can't guarantee anything on the website is real, only that the website is real. Facebook uses TLS but people put a lot of fake news on it. The unit of trust here is certainly not granular enough for the web to deliver an integrated experience. +[^tls]: Despite the excellent efforts on client/server certificates in TLS, these authentication methods are not for processes, but only for sites. It's a delegation model. Imagine a buyer not checking if a title deed is real, but only checks if the seller's name matches the one on the deed. That would be the delegation model used in TLS. In this model, TLS can't guarantee anything on the website is real; only that the website itself is. Facebook uses TLS, but people put much fake news on it. The unit of trust here is undoubtedly not granular enough for the web to deliver an integrated experience. ### "Account authentication" is not a substitute for web integration. -For example, the simple business logic: "the owner of a car can check its service history", doesn't require an account. If you force the "Account authentication" model, bad things happens: +For example, the simple business logic: "the owner of a car can check its service history", doesn't require an account. If you force the "Account authentication" model, bad things happen: - When the car is sold, the new car owner would now need to create a new account at the service website and secure it with the proof of ownership to the car. This is onerous and unreliable. @@ -105,23 +105,23 @@ For example, the simple business logic: "the owner of a car can check its servic Such integration needs, poorly addressed by adding accounts, are easily found in healthcare, retail and almost every web-based business. Today, we are still adding more and more accounts to address the growing integration needs. It's a case of hammering every problem down as if it is a nail. The following chapters will demonstrate that integration through token, not account, is the solution. -Similiarly, the web doesn't have a builtin mechanism for ownership, transfer of value and trading. +Similarly, the web doesn't have a built-in mechanism for ownership, transfer of value and trading. -Taking the car story further, a car seller would need to post the car information on a website, creating yet another account on the way. The buyer cannot click "buy" and acquire the ownership proof, compulsory insurance, unused service quota and so like in one go. These has to be done separately, using easily tampered paper proofs and forms. Even payment has to be done separately. The process starts at web and ends somewhere else. +Taking the car story further, a car seller would need to post the car information on a website, creating yet another account on the way. The buyer cannot click "buy" and acquire the ownership proof, compulsory insurance, unused service quota and so like in one go, and have payment processed. All these actions have to be done separately, using easily-tampered paper proofs and forms. The process starts at the web and ends somewhere else. In contrast, the same process on blockchain would be automatic, fraud-proof[^attestations] and atomic[^atomic]. -[^attestations]: the method to provide cryptographically signed attestations as a condition for transaction is discussed later in the "Attestation" chapter. +[^attestations]: the method to provide cryptographically signed attestations as a condition for a transaction is discussed later in the "Attestation" chapter. -[^atomic]: In blockchain terms, an atomatic transaction either happens or not. If well defined, it's not impossible for a buyer to have successfully paid for a car yet not getting the ownership token, or only have transferred the car's ownership but not the compulsory insurance on it. +[^atomic]: In blockchain terms, an atomic transaction either happens or not. If well defined, it's not impossible for a buyer to have successfully paid for a car yet not getting the ownership token, or only have transferred the car's ownership but not the compulsory insurance on it. -These missing features of the web are the well known functions of blockchain. The virtual wedding of this perfect fit couple requires a virtual exchange of tokens, or what this paper call "tokenisation". +These missing features of the web are the well-known functions of the blockchain. The virtual wedding of this perfect fit couple requires a virtual exchange of tokens, or what this paper called "tokenisation". Tokens seamlessly go across systems, carries their trading rules and user interfaces and business context. ## Example: Car Ownership Token -The following example, a car ownership, is a successfully tokenised .... [Edit: explain the elements] +The following example, a car ownership token, is a successfully tokenised .... [Edit: explain the elements] +----------------------------------------------------------+ | | @@ -202,7 +202,7 @@ It must define its own behaviour pattern which can be used to interact with user Tokenisation requires bundling a token with its transaction rules and behaviour patterns, taking them off the system where they initially grew in, free them to be traded or used in different context. -Taking property as an example, its existance as a record in the title deeds office is not useful to an open market, since it's only valid in that +Taking property as an example, its existence as a record in the title deeds office is not useful to an open market, since it's only valid in that database. Tokenising property would require a crypto-record on a blockchain not owned by the title deeds office[^in-house-blockchain]. This paper focuses on the missing layer in the technical stak for tokenisation to happen. @@ -259,9 +259,9 @@ A buyer needs to know quite a bit of information. It's easy to understand that s - If the property was collateralized for a mortgage, what is the condition for a liquidation event? -- Is providing a buyer's identity attestation a condition of purchase? +- Is providing a buyer's identity attestation a condition of a purchase? -A lot of these details are in the smart contract that holds the asset in question, however, many details are not, such as how to fetch previous sales prices for the land from an online title deed database. +A lot of these details are in the smart contract that holds the asset in question; however, many details are not, such as how to fetch previous sales prices for the land from an online title deed database. Typically, nowadays those token related information are locally coded in a Dapp in the form of a website. We argue that for it to be effectively marketized, It needs to be abstracted out and placed in a token behaviour language TBML. You can imagine it works like a data processing language that for a given token From 91660b8f927dd69ede8e11f25872279ad4dd0526 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Tue, 26 Feb 2019 11:43:26 +1100 Subject: [PATCH 044/598] finished "Challenges of tokenisation" --- doc/design_paper.md | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 6b9d3bec..39d825d1 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -202,28 +202,19 @@ It must define its own behaviour pattern which can be used to interact with user Tokenisation requires bundling a token with its transaction rules and behaviour patterns, taking them off the system where they initially grew in, free them to be traded or used in different context. -Taking property as an example, its existence as a record in the title deeds office is not useful to an open market, since it's only valid in that -database. Tokenising property would require a crypto-record on a blockchain not owned by the title deeds office[^in-house-blockchain]. +Allow users to interact with different systems through the tokens +: In the car example, the car token is issued by Holden, the maker, and necessarily so because it contains code to interact with a smart lock (the *Open*, *Start*, *Lock* actions) and Holden's own web service (the *Locate* action), yet it needs to work in other environments. The *Auction* action, for example, is provided by a third party auction web service. The user access auction service through the token without the need of signing up and proving ownership. The *List for sharing* is provided by a third party service which tokenises the usage of the car by hours or days and sells them piecemeal. The owner can access such a market through this Token. The buyers will have information about the car's GPS location, the capacity to unlock the door and use it, through this token as well. -This paper focuses on the missing layer in the technical stak for tokenisation to happen. +Rendering a token and associate it with the actions they can perform in the user's wallet +: In the car example, if the registration expired, the web component at work would paint the Registration Token red or display a warning. Actions like *List for sharing* will not be available if the car's rego has expired, and the integrated token interface should clearly pass that message to the user. -[^in-house-blockchain]: There is the biggest misconception in the traditional government and business sector, that in order to use blockchain, one has to own it in house. TV serie IT Crowds famousely joked such misconception by having a few IT guys presenting to management the Internet as a physical box, fittingly owned in a house. +Allow new protocols to be developed on tokens +: In the car example, collateralization might be an additional protocol, an ERC in Ethereum context. The protocol might have its own implementation and the car token might pre-date it. Similarly, there are streaming, communication, staking or other protocols (See "Magic" chapter). The framework must allow them to exist and work with tokens. +Carry trust relationship and business context to 3rd parties +: In the car example, the insurance token provides Roadside Assistance service through NRMA, another company not directly contracted by the driver. Yet the driver might access this function through the insurance token and immediately be identified as qualified for help. In this example, *Trust relationship* means that the user indirectly trusts NRMA to provide roadside assistance, to obtain the user's GPS location and identity information at the time of emergency. *Business context* means the customer's qualification for roadside assistance, like insurance not expired, service not reached annual cap etc. In this story both *trust relationship* and *business context* has to be in the token, not centralised through the insurance company's web service since the two have different a) availability, b) privacy and c) integration requirements[^abc]. -[ these paragraphs should move to the lower level] - -With the madness over, it is time to present a framework for describing such token behaviours. - -Such a framework must fit tokens into different environments for them to function as use-cases; they must: - -- Let the user interact with different IT systems and APIs - -- Make them render-able and associated with the actions they can perform in the user's wallet - -- Making them fit into listing or auction based general-purpose markets; building one marketplace for one token type would be too inefficient. - -- Allow new protocols to be developed on top of them (streaming, communication, staking, collateralization, etc.) - +[^abc]: Availability: NRMA is online 24/7 but Virgin Insurance can suspend their services in public holidays or at night. Privacy: NRMA can learn user's GPS location but Virgin Insurance isn't legally allowed to learn it. Integration: Most of NRMA's customers are not obtained through Virgin Insurance, so it would be an additional system to integrate and extra security concern for NRMA to integrate to Virgain Insurance's web service. Of all three, availability might be the most visible. Just imagine how angry a customer will be, having his car breaking down in the middle of the baren outback, and learn that road-side assistance can't be authorised because the insurer's website is upgrading. # Design requirements From 729c2293cb30b507a73e4fd09035b527f3aa3198 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Tue, 26 Feb 2019 11:47:48 +1100 Subject: [PATCH 045/598] finished "Challenges of tokenisation" --- doc/design_paper.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 39d825d1..b0a2f328 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -212,9 +212,9 @@ Allow new protocols to be developed on tokens : In the car example, collateralization might be an additional protocol, an ERC in Ethereum context. The protocol might have its own implementation and the car token might pre-date it. Similarly, there are streaming, communication, staking or other protocols (See "Magic" chapter). The framework must allow them to exist and work with tokens. Carry trust relationship and business context to 3rd parties -: In the car example, the insurance token provides Roadside Assistance service through NRMA, another company not directly contracted by the driver. Yet the driver might access this function through the insurance token and immediately be identified as qualified for help. In this example, *Trust relationship* means that the user indirectly trusts NRMA to provide roadside assistance, to obtain the user's GPS location and identity information at the time of emergency. *Business context* means the customer's qualification for roadside assistance, like insurance not expired, service not reached annual cap etc. In this story both *trust relationship* and *business context* has to be in the token, not centralised through the insurance company's web service since the two have different a) availability, b) privacy and c) integration requirements[^abc]. +: In the car example, the insurance token provides Roadside Assistance service through NRMA, another company not directly contracted by the driver. Yet the driver might access this function through the insurance token and immediately be identified as qualified for help. In this example, *Trust relationship* means that the user indirectly trusts NRMA to provide roadside assistance, to obtain the user's GPS location and identity information at the time of emergency. *Business context* means the customer's qualification for roadside assistance, like insurance paid, location in the range of service and annual cap not reached etc. In this story both *trust relationship* and *business context* has to be in the token, not centralised through the insurance company's web service since the two have different a) availability, b) privacy and c) integration requirements[^abc]. -[^abc]: Availability: NRMA is online 24/7 but Virgin Insurance can suspend their services in public holidays or at night. Privacy: NRMA can learn user's GPS location but Virgin Insurance isn't legally allowed to learn it. Integration: Most of NRMA's customers are not obtained through Virgin Insurance, so it would be an additional system to integrate and extra security concern for NRMA to integrate to Virgain Insurance's web service. Of all three, availability might be the most visible. Just imagine how angry a customer will be, having his car breaking down in the middle of the baren outback, and learn that road-side assistance can't be authorised because the insurer's website is upgrading. +[^abc]: Availability: NRMA is online 24/7 but Virgin Insurance can suspend their services in public holidays or at night. Privacy: NRMA can learn user's GPS location but Virgin Insurance isn't legally allowed to learn it. Integration: Most of NRMA's customers are not obtained through Virgin Insurance, so it would be an additional system to integrate and extra security concern for NRMA to integrate to Virgain Insurance's web service. Of all three, availability might be the most visible. Just imagine how angry a customer will be, having his car breaking down in the middle of the barren Australian outback, and learn that the road-side assistance can't be authorised because the insurer's web service is upgrading "For a better user experience". # Design requirements From ab941d8d03b00ce2d4d897b6fbc0c1ca1652c085 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Tue, 26 Feb 2019 12:02:43 +1100 Subject: [PATCH 046/598] Replace Virgin with Qantas, to look Australian --- doc/design_paper.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index b0a2f328..f635a90c 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -170,7 +170,7 @@ The following example, a car ownership token, is a successfully tokenised .... [ | | | | | +------------------------------------+ | | Access insurance token | | | | | | functions: | - | | Issuer: Virgin Car Insurance | | +-> | | + | | Issuer: Qantas Car Insurance | | +-> | | | | Start Date: 2017 12 30 | | | · Claim | | | | | | · Lump sum discount payment | | +------------------------------------+ | | · Upgrade / downgrade | @@ -214,7 +214,7 @@ Allow new protocols to be developed on tokens Carry trust relationship and business context to 3rd parties : In the car example, the insurance token provides Roadside Assistance service through NRMA, another company not directly contracted by the driver. Yet the driver might access this function through the insurance token and immediately be identified as qualified for help. In this example, *Trust relationship* means that the user indirectly trusts NRMA to provide roadside assistance, to obtain the user's GPS location and identity information at the time of emergency. *Business context* means the customer's qualification for roadside assistance, like insurance paid, location in the range of service and annual cap not reached etc. In this story both *trust relationship* and *business context* has to be in the token, not centralised through the insurance company's web service since the two have different a) availability, b) privacy and c) integration requirements[^abc]. -[^abc]: Availability: NRMA is online 24/7 but Virgin Insurance can suspend their services in public holidays or at night. Privacy: NRMA can learn user's GPS location but Virgin Insurance isn't legally allowed to learn it. Integration: Most of NRMA's customers are not obtained through Virgin Insurance, so it would be an additional system to integrate and extra security concern for NRMA to integrate to Virgain Insurance's web service. Of all three, availability might be the most visible. Just imagine how angry a customer will be, having his car breaking down in the middle of the barren Australian outback, and learn that the road-side assistance can't be authorised because the insurer's web service is upgrading "For a better user experience". +[^abc]: Availability: NRMA is online 24/7 but Qantas Insurance can suspend their services in public holidays or at night. Privacy: NRMA can learn user's GPS location but Qantas Insurance isn't legally allowed to learn it. Integration: Most of NRMA's customers are not obtained through Qantas Insurance, so it would be an additional system to integrate and extra security concern for NRMA to integrate to Virgain Insurance's web service. Of all three, availability might be the most visible. Just imagine how angry a customer will be, having his car breaking down in the middle of the barren Australian outback, and learn that the road-side assistance can't be authorised because the insurer's web service is upgrading "For a better user experience". # Design requirements From b498c842f1da61ad72e33c5dc77dfc90b3959b4d Mon Sep 17 00:00:00 2001 From: colourful-land Date: Tue, 26 Feb 2019 12:05:02 +1100 Subject: [PATCH 047/598] change advertisement to join-the-game --- doc/design_paper.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index f635a90c..18c966d3 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -12,9 +12,9 @@ Previous efforts in this industry primarily focused on enriching the capacity of Just like a house providing a place to live. -## Advertisement +## Join the game -Please join our work at xxx. A yellow paper will be produced to guide implementors to use TBML for their tokens and dapps, but a work in progress is always available online. +Please join our work at xxx. A Yellow Paper to guide implementors to use TBML for their tokens and dapps will take months to make, but a work in progress is always available online. Participate now to avoid the draft language specification being made without consideration your token model. \pagebreak From 2240beeb1d47bcfa2d0eecad137473c1fd4df325 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Tue, 26 Feb 2019 12:09:41 +1100 Subject: [PATCH 048/598] wording --- doc/design_paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 18c966d3..abf9712b 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -206,7 +206,7 @@ Allow users to interact with different systems through the tokens : In the car example, the car token is issued by Holden, the maker, and necessarily so because it contains code to interact with a smart lock (the *Open*, *Start*, *Lock* actions) and Holden's own web service (the *Locate* action), yet it needs to work in other environments. The *Auction* action, for example, is provided by a third party auction web service. The user access auction service through the token without the need of signing up and proving ownership. The *List for sharing* is provided by a third party service which tokenises the usage of the car by hours or days and sells them piecemeal. The owner can access such a market through this Token. The buyers will have information about the car's GPS location, the capacity to unlock the door and use it, through this token as well. Rendering a token and associate it with the actions they can perform in the user's wallet -: In the car example, if the registration expired, the web component at work would paint the Registration Token red or display a warning. Actions like *List for sharing* will not be available if the car's rego has expired, and the integrated token interface should clearly pass that message to the user. +: In the car example, if the registration expired, the web component at work would paint the Registration Token red or display a warning. Actions like *List for sharing* will not be available with an expired car rego, and the integrated token interface should clearly pass that message to the user. Allow new protocols to be developed on tokens : In the car example, collateralization might be an additional protocol, an ERC in Ethereum context. The protocol might have its own implementation and the car token might pre-date it. Similarly, there are streaming, communication, staking or other protocols (See "Magic" chapter). The framework must allow them to exist and work with tokens. From 8983818b1068ff29067b3579939dfd536c1b27e5 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Tue, 26 Feb 2019 19:38:50 +1100 Subject: [PATCH 049/598] deliverable side example: 1% property token --- doc/design_paper.md | 170 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 135 insertions(+), 35 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index abf9712b..af89d5ef 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -189,15 +189,6 @@ The following example, a car ownership token, is a successfully tokenised .... [ -- -exemplified by a property token being used for rent, insurance, pest inspection, mortgages and many other markets. It must define its own behaviour pattern which can be used to interact with users to show the status and allow functions to be accessible from its integration environment. In other words, a token must have its own UI and integration logic. - -We assert that the way to get there is a data processing language that defines tokens and their behaviour. In such a design, the token is the integration point and the language is the interface for the integrations. Tokens seamlessly go across systems, exemplified by a property token being used for rent, insurance, pest inspection, mortgages and many other processes. - - -It must define its own behaviour pattern which can be used to interact with users to show the status and allow functions to be natively integrated. In other words, a token must have its own UI and integration logic. - -[a picture of an example of a property token that has two statues side by side]. The left side has an action button (among others) that says Power Connection. The right side has the same token, but with a "Leased" label on it, and the "Power Connection" action button is invalidated because now it is with the lessor] - ### The challenge of tokenisation Tokenisation requires bundling a token with its transaction rules and behaviour patterns, taking them off the system where they initially grew in, free them to be traded or used in different context. @@ -218,53 +209,148 @@ Carry trust relationship and business context to 3rd parties # Design requirements -We assert that a descriptive language (TBML) is needed to allow blockchain technology to enable "frictionless markets" and an "integrated web". - -TBML stands for Token Behaviour Markup Language and is our framework for defining such a context for dapps to integrate on their own and with other dapps. +We assert that a descriptive language (TBML) is needed to allow blockchain technology to enable "frictionless markets" and an "integrated web". TBML stands for Token Behaviour Markup Language. -Unlike most whitepapers in the space, we choose to demonstrate the design by order of requirements to make a solution; this is because TBML is a solution layer rather than Ethereum or Plasma which serves as a base layer. It's not feasible to demonstrate the works of TBML or evaluate a design decision without showing use-cases as examples. +Unlike most whitepapers in the space, we choose to introduce the technology by example. This is because TBML is a solution layer rather than base-layer technologies like Ethereum and Plasma. It's not feasible to demonstrate the works of TBML or evaluate a design decision without showing use-cases as examples. ## address "Frictionless Market" capacity -Taking a closer look at "market", a market is not a noisy channel overloaded with information; more importantly, it is a place where delivery versus payment happens. With less reliance on the middlemen, our focus is turned into the tokens being traded, that is, deliverables and payments. On the deliverable side, there are all sorts of things money can buy: assets, goods and services. On the payment side, there are Ether, DAI, Sovereign etc. +Taking a closer look at "market", a market is not a noisy channel overloaded with information; more importantly, it is a place where delivery versus payment happens. With less reliance on the middlemen, our focus is turned into the tokens being traded, that is, *deliverables* and *payments*. -Both the deliverables and the payment side requires a framework for tokens to "plug-in" - the TBML token behaviour language we are proposing. +deliverables +: All sorts of things money can buy: assets, goods and services. -Such a framework is essential for tokens to be presented, indexed, traded, auctioned, combined... to form a frictionless market. +payment +: Ether, DAI, Sovereign. Anything currency-like. Only programmable currencies are relevant to this paper. -To demonstrate the design requirements we improvised an example of "1% property token". +market +: Market is where delivery versus payment happens. *Market* is an concept, not a marketplace. A user who checks out on a website is accessing a market. She doesn't have to be in a marketplace (e.g. Amazon) to do so. -### 1% property token +TMML provides both *the deliverable* and *the payment* side tokens to "plug-in" to the *market*. + +Such a framework is essential for tokens to be presented, indexed, transacted, traded, auctioned, combined... to form a frictionless market. + +We will introduce TBML through an example on each of the *deliverable* side and on *payment* side. + +### deliverable side example: 1% property token Let's imagine a market for "1% property". A property owner can issue many pieces of a token, each represents 1% ownership of the property. He can sell these tokens to obtain cash. A buyer needs to know quite a bit of information. It's easy to understand that such a token would fetch 1% of the sales revenue if the underlying property is sold, but a lot more details are needed: -- Where is the property and what status is it in? +1. Where is the property and what status is it in? + +2. Can a 1% property token owner vote? For example, on the purchase decision to insurance against a bush fire? + +3. Is the 1% automatically converted into currency at the time of property sales, or can the token holder elect to continue holding it? + +4. Is the token properly underwritten to prevent double-collateralization? + +5. If the property was collateralized for a mortgage, what is the condition for a liquidation event? + +6. Is providing a buyer's identity attestation a condition of a purchase? + +7. Is the seller the actual owner of the property? + +8. What was the performance of similar properties in the region in the past years? + +9. What was the historical sales price of this property? + +Specific to blockchain, we also have: + +10. How to correctly and securely construct a transaction for the assiet (purchase, voting etc) + +We categorise these trade-sensitive information into three categories: + +- product description. Item 2, 3, 5, 6 are in PD +- attested information. Item 1, 4, 6, 7 are in Attestations. +- reference information. Item 8, 9. +- action information (how to perform an asset action). Item 10. + +Understandablly, the buyers need to access all these for an informed decision. + +#### Product description -- Can a 1% property token owner vote? For example, on the purchase decision to insurance against a bush fire? +Product description information is typically in the smart contract. In Ethereum cases, these can be obtained by making a few Smart Contract function calls, therefore, the only needed work is to convert them into presentation - usually it means translating to the language user speaks and converting "True" value into a nicely ticked checkbox. This serve to introduce the first functionality of TBML: acting as a presentation layer for smart-contracts. -- Is the 1% automatically converted into currency at the time of property sales, or can the token holder elect to continue holding it? + + Voting right + 投標權 + + + + + + + + + + + + + -- Is the token properly underwritten to prevent double-collateralization? +This simplified `attribute-type` code snippet allows the value for Voting Right to be fetched from `holding-contract`, which is a smart contract defined somewhere else in the TBML, and present it in one of a few languages. -- If the property was collateralized for a mortgage, what is the condition for a liquidation event? +#### Attested information -- Is providing a buyer's identity attestation a condition of a purchase? +Attestation is just a signed message stating a fact. Attestations are often used to satify the conditions of the transactions. More on that in the chapter Attestations. -A lot of these details are in the smart contract that holds the asset in question; however, many details are not, such as how to fetch previous sales prices for the land from an online title deed database. +In the 1% property token example, the involved attestations are: -Typically, nowadays those token related information are locally coded in a Dapp in the form of a website. We argue that for it to be effectively marketized, It needs to be abstracted out and placed in a token behaviour language TBML. You can imagine it works like a data processing language that for a given token +- by identity authority and title deeds office, to attest the issuer's ownership of the property. +- by collatorisation authority[^set-operation] to prevent double collatorisation +- by buyers, for providing identity or capacity to invest in this type of asset -- Fetch token related information from its holding smart contract and 3rd party sources. -- It has a rendering section where the token is represented in a visual or audio fashion. -- It has a transaction section where the purpose and condition for trade and transactions are described (a superset of ABI). +[^set-operation]: Eventually, this could be a cryptographic set operation, but even if that happens, the metadata directing the context (user-agent) to proform the computation still needs to be described in TBML. -Any party is able to render and apply functions to the token using TBML, including entities like generic marketplaces, user-agents and 3rd party apps. +The first two attestations are not stored in smart contract for cost (size and number of transactions) and privacy reasons. It's possible to utilise zero knowledge proof to provide a generic proof that the attestation is for the said property and said owner, and it has not expired. What proofs are expected and can be validated is also described in TBML. -In general, providing a layered structure, using and reusing it, is better than having a static design where a Dapp is tied to an asset class and has all the knowledge of the asset locally. The reasons for this are interoperability, scalability and security. Specifically, with the 1% property token as an example, the interoperability, scalability and security concerns are demonstrated below. +Furthermore, the fact that the transaction requires an identity attestation or investment capacity attestation from the buyers. These are described in TBML as well so the context (e.g. user-agent) can prevent the user to submit a transaction without qualifying proof or help the user to select suitable attestations for a purchase transaction. -### Interoperability: +#### Reference information + +Reference information is what relevant to the token and provided by web services, typically through a RESTful API call.[^trusted-information] + +[^trusted-information] Originally we call it "Trusted information", meaning data such as previous property sales price or regional property performance data is just "provided", without blockchain proofs or attestations, hence, it has to be explicitly trusted by the user. As it turned out, this term misfired as some developers think it means "proven information" and provided as trusted already. So we used a less precise term "Reference information", which, unfortunately, feels like a catch-all phrase. + +Since TBML is signed by the token issuer (not token owner - the token issuer is often entity that deployed the smart contrat), the reference information sourced from the web apis specified in TBML is assumed trusted. The security chapter will detail different levels of trust. + +Today, all such information related to a token is usually held together on a DAPP website made by the same entity that deployed the token. We argue that for tokens to be effectively marketized, It needs to be abstracted out and placed in the token behaviour language TBML. + +#### Action information + +Dictates the correct method to construct a blockchain transaction, like: + +- What attestations are needed to prove the buyer's capacity to purchase. +- What parameters are needed for a purchase (e.g. number of 1% shares). +- How to render the purchase form and translate to user's local language. +- Is the condition all met (e.g. a purchase isn't possible after the underlying property is liquidated). + +In Ethereum context, this information is a superset of ABI (the smart contract function call signatures), with the additional part being business logic (property must be still valid and seller still have it) and presentation logic (like the message "The property is liquidated. Purchase no longer possible."). + +In conclusion, TBML allows the context (user-agent or trading engine) to: + +- Fetch token related information from its holding smart contract, attestations and references. +- Produce a visual or audio rendering of the token +- Produce a list of actions that can be performed and how to constrct the transactions. + +Any party is able to render and apply functions to the token using TBML, including entities like generic marketplaces, user-agents and 3rd party apps. We call these parties "context" in general. + +### Why TBML + +With the first example demonstrated, we use the opportunity to articulate why TBML is needed, over the current prevailing way of providing asset access with a host DApp. We argue that the current prevailing method is not suitable for creating a frictionless market, while TBML could, by providing reasons in the areas of *interoperability*, *scalability* and *security*. + +#### Interoperability: Suppose a property guru named Peter wishes to create a website called "Peter's Pride Asset", where he selects the best properties available on the market. He can create a listing of those properties with rich information of the current price, location, age of the building and even photos, which the users can purchase with a click. There is no reason that he needs permission to do so because the data of those tokens are on the blockchain and the transaction of those tokens requires no middlemen. However, he would need to obtain the knowledge local to how to render the token on his website, like how to get the expiration of a token from its holding smart contract. If the underlying smart contract has gone through changes, like adding an attribute (e.g. council rate), his website would need to upgrade. @@ -272,13 +358,13 @@ Similarly, the transaction rule might be updated to require the buyer to submit In a similar fashion, suppose an investors' forum where the members are allowed to login using their 1% property token, the rendering of the token, under each post, would need to be sourced from the Dapp tied to the token, since it's too much work for a forum to render the token and keep the code updated. Such sourcing would require permission and might be tied to the availability of that Dapp. -### Scalability +#### Scalability Horizontally, the same type of asset might have tokens across multiple networks like Plasma Chains. A buyer is likely to be interested only in assets in Australia, and therefore only connected to the Australian 1% Property network. It can be difficult to have an all-knowing node to provided rendered token information for all existing tokens, especially if a network is designed with privacy in mind. Therefore, to scale, the knowledge about the token (TBML) must be detached from the access to the token. Vertically, if we desire a token whose makeup is a 1% property token from a sample of 100 global cities, for mid-big size investors to distribute the risk, a computer system that can manipulate such a token must be built with the knowledge about member tokens. It again cannot depend on the availability, security and openness of the original Dapp tied to that asset. TBML would work in the middle for the making of such tokens. -### Security +#### Security It is impractical to improvise a schema where every transaction the user might sign is rendered in a user-readable format. It's easy to start with such an effort with a transaction data translation tool, translating an enigmatic transaction payload to "user-readable data", but ultimately the system integration and UX needs would surpass what a translation engine can do. @@ -294,7 +380,17 @@ TBML is designed to separate token rendering code, and transaction generating co A user who is purchasing a 1% property token from Peter's Pride Property recommendation website can be supplied with a rendering and transaction package, signed by the same group of people who created the holding contract of such tokens. Therefore the user can purchase assets from any website with a similar level of trust, or purchase it from a WeChat or Facebook private message and know it is the real token being rendered and transacted. -### Design requirements for a frictionless market +## payment side example: DAI token + +We decide to use a real token in this example thanks to our recent collaboration with MakerDAO project, the issuer of DAI token. + +[TODO: fill this chapter before 27th Feb] + +--- + +[Editor: the following served as an outline of the entire chatper and should be checked then safely removed now that the chapter is nearly fully written.] + +Design requirements for a frictionless market The TBML language has to provide: @@ -313,6 +409,8 @@ And it should be usable by: We will proceed on addressing the need for "Integrating the Web" and come to a full picture of the design requirements of TBML in the following chapters. +--- + ## address the "Integrate the web" need As we explained earlier, the web is poorly integrated, as the only link between the units of the web, i.e. "websites" are links. It carries no business process, authentication or trust relationship. There are no anchoring points for integration. @@ -347,6 +445,8 @@ Lacking a reliable way to authenticate the purchase, an online purchased product Despite such a token not being transferable or authorised, it is still useful for 3rd party integrations. The Tax office will be satisfied that the receipt can't be faked without collaboration from the seller, and allows a swift and easy tax-refund process. If the phone is purchased for work, the employee can easily reclaim the expense from an employer with the trust implied. +[TODO: Farrah is working on an illustration, should be fit here by 26th Feb.] + --- As we can observe by the use of tokens, normally scattered business processes and web experiences can finally be integrated. This ties closely to the other benefit of the blockchain: a frictionless market. In this example: From 23b9355b555576e6ae2fedc5424a931e7b47e220 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Wed, 27 Feb 2019 10:46:07 +1100 Subject: [PATCH 050/598] bridge text between vision and design requirement, plus editing --- doc/design_paper.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index af89d5ef..c48aa64c 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -211,7 +211,7 @@ Carry trust relationship and business context to 3rd parties We assert that a descriptive language (TBML) is needed to allow blockchain technology to enable "frictionless markets" and an "integrated web". TBML stands for Token Behaviour Markup Language. -Unlike most whitepapers in the space, we choose to introduce the technology by example. This is because TBML is a solution layer rather than base-layer technologies like Ethereum and Plasma. It's not feasible to demonstrate the works of TBML or evaluate a design decision without showing use-cases as examples. +By virtue of TBML being a solution layer rather than base-layer technologies like Ethereum and Plasma, we choose to introduce the technology by example, and provide rich business-context based discussion for a boarder specturm of audience. ## address "Frictionless Market" capacity @@ -321,7 +321,7 @@ Furthermore, the fact that the transaction requires an identity attestation or i Reference information is what relevant to the token and provided by web services, typically through a RESTful API call.[^trusted-information] -[^trusted-information] Originally we call it "Trusted information", meaning data such as previous property sales price or regional property performance data is just "provided", without blockchain proofs or attestations, hence, it has to be explicitly trusted by the user. As it turned out, this term misfired as some developers think it means "proven information" and provided as trusted already. So we used a less precise term "Reference information", which, unfortunately, feels like a catch-all phrase. +[^trusted-information]: Originally we call it "Trusted information", meaning data such as previous property sales price or regional property performance data is just "provided", without blockchain proofs or attestations, hence, it has to be explicitly trusted by the user. As it turned out, this term misfired as some developers think it means "proven information" and provided as trusted already. So we used a less precise term "Reference information", which, unfortunately, feels like a catch-all phrase. Since TBML is signed by the token issuer (not token owner - the token issuer is often entity that deployed the smart contrat), the reference information sourced from the web apis specified in TBML is assumed trusted. The security chapter will detail different levels of trust. @@ -336,7 +336,7 @@ Dictates the correct method to construct a blockchain transaction, like: - How to render the purchase form and translate to user's local language. - Is the condition all met (e.g. a purchase isn't possible after the underlying property is liquidated). -In Ethereum context, this information is a superset of ABI (the smart contract function call signatures), with the additional part being business logic (property must be still valid and seller still have it) and presentation logic (like the message "The property is liquidated. Purchase no longer possible."). +These information is a super-set of smart contract programmable interface (In Ethereum, called ABI), with the additional part being business logic (e.g. property must be still valid and seller still have it) and presentation logic (e.g. the message "The property is liquidated. Purchase no longer possible"). In conclusion, TBML allows the context (user-agent or trading engine) to: From d8baa755ad666f359bffab61c3ce21a54aa5606a Mon Sep 17 00:00:00 2001 From: colourful-land Date: Wed, 27 Feb 2019 10:48:05 +1100 Subject: [PATCH 051/598] make life easier with a Makefile, otherwise ideographs may disappear --- doc/Makefile | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 doc/Makefile diff --git a/doc/Makefile b/doc/Makefile new file mode 100644 index 00000000..dc61d71c --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,2 @@ +design_paper.pdf : design_paper.md + pandoc -V CJKmainfont='AR PL UMing TW' -V geometry:margin=1in --latex-engine=xelatex -o design_paper.pdf design_paper.md From 2ed7b7219f0909bfb64712fab180e4c5cc05b591 Mon Sep 17 00:00:00 2001 From: James Sangalli Date: Tue, 26 Feb 2019 10:46:50 +1100 Subject: [PATCH 052/598] added description of car example corresponding to design template --- doc/design_paper.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/doc/design_paper.md b/doc/design_paper.md index c48aa64c..7d4eff16 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -186,6 +186,17 @@ The following example, a car ownership token, is a successfully tokenised .... [ | | +----------------------------------------------------------+ +In the web 2.0 model, you are restricted to handling every element on its own, if you want to register the car that is a separate process which involves creating an account with the DMV and proving ownership manually. When you want to provide insurance to the car you have to create another account and manually provide proof of its registration to that new service. Likewise, if you want to prove to Uber that your car is fit enough to be used then that is another process requiring you to prove yourself again with many forms, legal documents and new accounts. If you want to forget Uber all together and rent your car to anybody, good luck vetting them separately without huge amounts of evidence needed to validate them. + +Now let's reimagine this in the web3 world whereby such elements can be tokenised. Toyota provides an ownership token to the new owner which can be used to operate the car. The DMV issues another token to provide the registration for the car and sends the token to the new owner so that she can prove it is registered. An inbuilt IoT device allows the car to be operated with proof of ownership via a token. + +The owner, wishing to purchase insurance, only needs to provide the proof of ownership and registration token to be qualified to fulfil the requirements with the insurance company. The insurance companies standards are met automatically by matching the tokens to their requirements and once validated, the insurance company can send the owner an insurance token in exchange for payment. + +If the owner would like to become an Uber driver, she can easily prove her vehicle is good enough by providing proof of ownership, insurance and registration with her tokens. Uber then automatically provides her with an Uber token which can be used to get started as an Uber driver. None of these processes requires manual verification or account creation. + +Taking this even further, the owner can skip Uber all together and rent her car directly to strangers. Not wanting her car to be trashed by some random stranger, she can restrict her renters to those who have an attestation token issued by the 'better drivers bureau'. The renter proves they have this token, pays a sum to the owner and is atomically issued with a temporary token that allows them to unlock and use the car for a certain period of time. This is done without the creation of an account or need to submit tons of documents to be validated manually by the owner. + +If the owner wishes to sell the car, she only has to list it on any website with a price. The ownership token and payment can be swapped atomically (ensuring neither the buyer or seller is cheated) and the new owner can drive away with the car without even meeting the original owner face to face. The new buyer knows in advance whether the car has been registered and is legally owned by merely validating the original owner's ownership token in their wallet. The original owner's token is invalidated once the swap occurs and she can no longer operate the car. It is also possible to automatically void the insurance policy once the exchange has occurred and provide the original owner with a rebate for premature cancellation. -- From 09bdf4afa72c27acda4baabca1c747c52b28faef Mon Sep 17 00:00:00 2001 From: colourful-land Date: Wed, 27 Feb 2019 11:59:13 +1100 Subject: [PATCH 053/598] improve James introductio of car token --- doc/design_paper.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 7d4eff16..61051253 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -186,17 +186,21 @@ The following example, a car ownership token, is a successfully tokenised .... [ | | +----------------------------------------------------------+ -In the web 2.0 model, you are restricted to handling every element on its own, if you want to register the car that is a separate process which involves creating an account with the DMV and proving ownership manually. When you want to provide insurance to the car you have to create another account and manually provide proof of its registration to that new service. Likewise, if you want to prove to Uber that your car is fit enough to be used then that is another process requiring you to prove yourself again with many forms, legal documents and new accounts. If you want to forget Uber all together and rent your car to anybody, good luck vetting them separately without huge amounts of evidence needed to validate them. +At first glance, it is just a handy portal to do everything about the car, including market functions and utility. However, it's not possible with the traditional web model. -Now let's reimagine this in the web3 world whereby such elements can be tokenised. Toyota provides an ownership token to the new owner which can be used to operate the car. The DMV issues another token to provide the registration for the car and sends the token to the new owner so that she can prove it is registered. An inbuilt IoT device allows the car to be operated with proof of ownership via a token. +In the web 2.0 model, you are restricted to handling every element on its own. To register the car, there is a separate process which involves creating an account with the Road and Maritime Services and proving ownership manually without the aid of cryptography. When you want to provide insurance to the car, you have to create another account and manually offer proof of its registration to that new service. (If you find not needing to do so, the cost of unpayable insurance merely is hidden and borne by the market.) Likewise, if you want to make the car available to share economy through Uber or hour-based car rental, the work of proving and settling payments and insurance cost adds friction to the market. -The owner, wishing to purchase insurance, only needs to provide the proof of ownership and registration token to be qualified to fulfil the requirements with the insurance company. The insurance companies standards are met automatically by matching the tokens to their requirements and once validated, the insurance company can send the owner an insurance token in exchange for payment. +Now let's reimagine this in the web3 world whereby such elements can be tokenised. Vendor (in this case Holden) provides an ownership token to the new owner which can be used to operate the car. The token, transferred to the owner at the time of purchase, is in turn used to acquire the registration token. An inbuilt IoT device allows the car to be operated with proof of ownership via a token. -If the owner would like to become an Uber driver, she can easily prove her vehicle is good enough by providing proof of ownership, insurance and registration with her tokens. Uber then automatically provides her with an Uber token which can be used to get started as an Uber driver. None of these processes requires manual verification or account creation. +The owner, wishing to purchase insurance, only needs to provide the proof of ownership and registration token to be qualified to fulfil the requirements with the insurance company. The insurance companies standards are met automatically by matching the tokens to their requirements and once validated, the insurance company can send the owner an insurance token in exchange for payment. The insurance token carries its own functions and services. + +If the owner would like to become an Uber driver, she can easily prove her vehicle is good enough by providing proof of ownership, insurance and registration with her tokens. Uber then automatically provides her with an Uber token which, depends on the owner's need, can be used to get himself started as an Uber driver or allow a 3rd party driver to do so. None of these processes requires manual verification or account creation. Taking this even further, the owner can skip Uber all together and rent her car directly to strangers. Not wanting her car to be trashed by some random stranger, she can restrict her renters to those who have an attestation token issued by the 'better drivers bureau'. The renter proves they have this token, pays a sum to the owner and is atomically issued with a temporary token that allows them to unlock and use the car for a certain period of time. This is done without the creation of an account or need to submit tons of documents to be validated manually by the owner. -If the owner wishes to sell the car, she only has to list it on any website with a price. The ownership token and payment can be swapped atomically (ensuring neither the buyer or seller is cheated) and the new owner can drive away with the car without even meeting the original owner face to face. The new buyer knows in advance whether the car has been registered and is legally owned by merely validating the original owner's ownership token in their wallet. The original owner's token is invalidated once the swap occurs and she can no longer operate the car. It is also possible to automatically void the insurance policy once the exchange has occurred and provide the original owner with a rebate for premature cancellation. +If the owner wishes to sell the car, she only has to list it on any website with a price. The ownership token and payment can be swapped atomically (ensuring neither the buyer or seller is cheated) and the new owner can drive away with the car without even meeting the original owner face to face. The new buyer knows in advance whether the car has been registered and is legally owned by merely validating the original owner's ownership token in their wallet. The original owner's token is invalidated once the swap occurs and she can no longer operate the car. It is also possible to automatically void the insurance policy once the exchange has occurred and provide the original owner with a rebate for premature cancellation. + +This chapter serve to present the vision. We will have the opportunity to inspect the technical aspect of this well-integrated well-tokenised car token in later chapters again. -- From 45b2b3a25d0381bf8ae39b0c220645603346e595 Mon Sep 17 00:00:00 2001 From: Victor Zhang <33795543+zhangzhongnan928@users.noreply.github.com> Date: Wed, 27 Feb 2019 11:42:57 +0800 Subject: [PATCH 054/598] Change our attention to everyone's attention "The remarkable blockchain speculations that took place in 2017 - 2018 brought our attention to crypto tokens." Make people feel that we start working on Blockchain in 2017-2018. Better change to "The remarkable blockchain speculations that took place in 2017 - 2018 brought everyone's attention to crypto tokens." --- doc/design_paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 61051253..1f133de0 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -2,7 +2,7 @@ ## Author's note -The remarkable blockchain speculations that took place in 2017 - 2018 brought our attention to crypto tokens. As we bought and sold them, we forgot their intended purpose was to be used; this is analogous to the housing bubble in which people forgot that houses were not merely speculative assets but rather a place to live. +The remarkable blockchain speculations that took place in 2017 - 2018 brought everyone's attention to crypto tokens. As we bought and sold them, we forgot their intended purpose was to be used; this is analogous to the housing bubble in which people forgot that houses were not merely speculative assets but rather a place to live. To provide a practical use of the blockchain, we must understand its utility to the world economy and the internet. The authors of this paper are technical experts who went through years of study and exploration into its applications both via financial institutions and startups. With this experience, we came to realise that the blockchain has **two primary functions** which we will elaborate further in this paper. From 7acddd41c05bfd2e24120ba7bcb12764e880c3eb Mon Sep 17 00:00:00 2001 From: Victor Zhang <33795543+zhangzhongnan928@users.noreply.github.com> Date: Wed, 27 Feb 2019 11:48:49 +0800 Subject: [PATCH 055/598] remove "Just like a house providing a place to live." "Just like a house providing a place to live." doesn't make it easy to understand, instead, more confusing, people have to stop here and try to figure out what is the relations between this "house" and token/TBML... --- doc/design_paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 1f133de0..430b6b7f 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -10,7 +10,7 @@ Despite the great folly in 2017-2018, it is not a bad thing to initially focus o Previous efforts in this industry primarily focused on enriching the capacity of the technology. This paper will focus on tokenisation and introduce a standardisation effort known as TBML (Token Behaviour Markup Language) which will make the blockchain technical stack complete, providing utility for the economy and the internet. -Just like a house providing a place to live. + ## Join the game From 62215b717c47be835c2bd310858a5cab19f9a5fd Mon Sep 17 00:00:00 2001 From: colourful-land Date: Wed, 27 Feb 2019 16:00:05 +1100 Subject: [PATCH 056/598] add receipt token to the sovereign story --- doc/sovereign.png | Bin 70646 -> 49964 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/sovereign.png b/doc/sovereign.png index 19b24c5db781bdced8a946ba3f1041578f31d7cc..891af0923ae2b2e62c4e5a847e108bf2504cf591 100644 GIT binary patch literal 49964 zcmYg%c|4Tg`+lWDL?Mi=g((?KhGdOW${=NF&@jS?RE)6;Nhu6P9%Ga(jUtU*#v0jY zY*SgYZw-p9Z$!T{eZGJE{&-%!UX5ot=iKMMulu^L6M6N@rTzOP_U+iQW53bm3+6j^ z?DX5QWA`qeUEqIueUSITKfIooZHPN|h#llyJ6n%0>4E>`_BJxT$UVMGa<{e^toY%z z9Xsk6Miuknv}@>J3QXAy+kP34$Tia zpZk}u+YD>bV^JSrZAM=mw&<_lXes^MxbmWBd-~+vEz5zwBa6k>p?}>9es8_a``oye z*45onyoIFw4Ngfstn(f`GQwK#M7Q3f6{6#ofwf*JSK{H(jXecNyB+DgvxjTm(L(>c zF5hl3&aXb%jU4>b!f-Um#Z|9=ArCZcK&xqE8_-L=&nxfq?>#B8wiljFt2wS7vTe(K z=g%LXg6%!IxSnng?@tldHC+U5+OVQ>&HdTL@(|(H-l#}`5`xQ8y2q+)>kT0 z%C=W3W;V`P+#KYc9a~Jb9$ruFEnC{6X%n_WrtQkM)A`ivZEu8ZW|WIEitkwu@1J$+ z4-7nW=jqDwui??ah~5LUu)&(NF4=C?ppY{bxuJry&m0DqxUECwx*aL-?lq>6m;2`U;pm2qw0wKT?!S*#gscV6?wEy#3*M*F zAUsd^U)vno-xA9kq5EeuxNmN)bcQp)@**Vzd3qR64%e-C`D`uhvljfEoOtQFfL^6} zZbPBMI~r!cUexTjb6^g>)i!xn9slo#M1d%y|Dd&=z-&paz9xab5$a3`uofm?QX?FV zyw)(8d<84>rT$`W-bo>1jGW;?vbr(hTKCEZp0kMnMQ@iRfLP?Tk zr9xsEC-b-Ct~lP?{t=)}IGAiMLME#b0*r*o2xdT39i#f-Y^KOrw7s`w>eo|8Q zbVcbR?p}+KtY}r)AEAbexrb~5E(wcSIcgbUL+*-@m5(aVyNxZ%L>ZIIOAnCmUBs2I z2xZDgmy|8bZ@i9V@S9>?ZjYfXPAG@!+Z-iy$xS^gvLc*BlN6Lce)#ve^$VQGZ7|0c zr#r4XZiqy7)$ak{ynS0q`Mjy89ajJP)IenPF$CY7w@Z-@`&J|a5xp)i1x+3Xs0a3*;gT7tUaofI;)gb;jt1QWm zRMq)itt=@m*^YF@wZEm|PvxuVxJnb4m@IFbQc7nMmYJtyN0L+XyRB@vf=X0wlvn%V zSU!g(#dLbVh+YrA<{CKn*zh+>z|N$Lk>ID2-1)tmH)g`o66wTtB%Kde&Km9pui9(J ze9+hM$AGAE{k*DtMH06n=Y5u9OAeZ1OAF{eMuL}0UH6#^$@R~p3-%?5*r)_j7L^T=DnIpt8oC>- z_n@N+L9pU{v=1xbU<8=uU~FUxdLd%GVOD%0CwUz?0ZRSKfPjkS`iGwl?(Qotesw%CbvAnPhf>*_y43 zbKr-D26fp?dB%y4A6Qkv*V#kWugQc7$6ORDP|QMI)1&;sF*rv`y;%Jr36M21a7B*j|);#MWvm>EtwB_JwEZe50jD=uA z$rQw36SieP?UC{nZ-Ky`NptQaP+4@p~248^jQr_f4FNQRJxu;DRHe-urKM3kst zat_nHPk;%UKpX!VLnFYI932*O@*;BlG$t9PiDf@wLP>~q2DELji;-AJ-|AruGHABO8a!eii-uA)=~AS1tI~k4WgVFV?L!XVh%%+1(0py>FEA z?`J|LT)ckv^=@ikI&5RFAiLC>)mc0^YO~qsGB4OMly@Ukv3vBH;3K`p(@NZ*zpO>z z`cN~k5H|iWFit%RqU02&ykZZXbsr2_NE(w&5Ar^L@(Jw(6U)y2_PHWYu8>~$$cndt zXdHV zwXx?Q4iC<*jNmJ$(Fdg3Y_SP0PfZz9{yCJkTn!>gb_$IzW9hBHC_`5buf_25m|nwcS)ee1PD?z$ zxMhoKlzuNpq=R56xa~hc)wpdsY~6i8SxG}Qzy^sRZQG)#hyU5^gm;3)j@oA%qQ>n z3XSK4=$)zQd5F;M*@0!pE@IiDL~7zB+FMVuk`#uxTO%Ua=yl}G!nD{E*|%C2TcdXr zUd)TPKloKys=2#x@ppB>fBxHBDVY)N&-tERJWRWe*EiM2JLqmYlqq7)i)9AF%;-WF zjP&kj?YCU1c*(nu>=2}5@n2Wbd7HBXa@(KZ3zFi=J3G8ew0%|$9oL5rR4%{u^QcY5 zReK4S`UOkc1nBR6-x1vPp3$r`4YoxCSYdS{Re{b*lZ-;N4eE8PKd=6NW_vFA=6@FE zum#l3K1LFqRpcJNU|1yjpsCMGWxIKwJIykaY;)h-pK@rpF?Co3q>lZ{x1PFHDds%++pN4}&_rj&O%U%aIxl4uJ01Ghg*%5okdjv8 zJ-z}D&fl4*U_Vt#_hAZlHlM=WhSQd(_fDhVYFqeoh59=1|KS_#ID*)Vbo!OI+(s9d z*>SV0VD)P|;k3u`aTa-v{$PhLZz+WYU~%FOUw?q)y#(4q0=#q<&`SUhZwnD(2T4D2%xksOw72 zP)HlLWx`P+8nG3$vM@O?K7yP2b$CyPW@a|OYg8@cK0!YBSrTarlGzC48I$cyenJ+z z(WFzM>_2w>_OIIf0%~5jR^uLIk@|nXYo97%SfcyL`mVdqdQzKQ{2Jodu_0sK`Vz0- zBJ9Sx@%L=iCWMo(&>fcRjm#`(ft;gKI*cWzE`thT-S?MsdwFdSSBrQtA0OguPvYs=St;Ub|OpnX75a$!{>~k^=Qe6 zsu>W^10bGn5DpP|Kg1~-xI4)z?6hmtR|TX^c@66` z&(}| z45gB*VPSeWd%cHB!NbEc$pt~nk&pp?6A{)a&$hp`1=$Pf@*C=%J&+pgKH{0APw|+#(VS(~M)0@C(SNNE))ujS?0lsvn-pN&9kGZ}iO0u3 zZ9y|ph^;8P`4VB+SKfpqCa?{}*Ofh3cDrpEON|4J6sFK-8dGQsHQA*JL%8E& zEP}2rFeLc$C8BCv471URq^VVm(pg(fC}$E~*tuJ08f~`O0NHznA)sV@Tr++iSVlE0CR#0KwF0}f&F0FJQJJy>8x2MG($#g zl^mtBt`>R0!BWI9AVrr*XIeeB6Gl-kO?5OUrmsv%#R*sbI#ERZ+wwM2Rvc{?Xn_lM*aDRLYAQ`frH^ zFdGOWHE@d4-L0U&O}79BMXonMLkkdMu;t%OeO4w?52kU@u}HGM64vcYK|xrTV!Jq{ zMfBc~Oj_yftBFa6HqYxCxcM9DrhDA)pE;KRO-~O;r09Nz5e;1!yefk0L&R%WMH!T$ zCPz*Fg!Vxb3HzwGi_`rtkV-SMgo3jMI!`th?J6`rBaAmLW9`>-<||?+I;|69bqGpF zE0Qwu{oQ^KJr6_FhG>)lP$)TtUTK6x!FMKtphkmzi~=Yn+&KL_@72g$=}sI z6qd5t(G-#s0JDTKyph@b{xIus-v{Q*Aq_<$ypzl&=9J&4&-+#Gh48Pr+h*t~^gEPK z8|3m|12hFLkn>uwZbD_OFM&u4IA#}Qbc-($%cdg(Yp*^a7EGW$PlW3n#XS63+m*|N z^u0&+ZhHkCP(>AzRftsL&t!7fEoV#owTH)3$SS=1cVC*oA3;6*d9lKPN*D5nU41bW z$1hd6`lA=AR7IM{vOj)kgr>kUiK=1>!A^iCIJqci3LR8^DDkF)+6`udE7om^aMS$y zFF_kGsuOv9VTN=%JU^JO`gouoYIM}>l;$BnM;xjm9l{)gR6OCPc)$!Wq09JBl@AOb zJhUdlvwiq;THG0XKXrXt>@N&4=8P+_!-DqJf)7*vgl^79q@F-bpo?{i@M>52FdM6Z zyHqRE`GVRF<=N4rLK+grwB0k|=Y-`M%csMS<(CT?(A1oiwqYk|Z?Z|JF$y`PdZ;v2 zNP^pa0?ef^*2sbq@-%hfGOxo8BHU8A*V@nW{?#UZ33~h#9wgg&FkBbV;&wpWAStSI z`o;9dZFEQ5>>yEHOC#s_g=vrdA!(K_A$j=OB#7H^^qbO&I&t~hpwXD#n2|Ztqc_q| zf5o-L9|(JxR7vW`@fOuMJhiv~{)BDMP`#rqt>O=Re#oRG>BffgknpZOVI_0;=Lox> z2i>xM4jbbCmxhFC%U53z;0UqI+@@XkRxq{&$lV{$TyFdu_0-KIHi`d(Q>RMWNO)9O|9hn{#!wvMw9# z&JYTKT@~dakBtZTAKE2NYxN@wYaA0VSCMN;NRWW5 zEBAAUCn)yHJo=cYrJ?X~`I}{9c@21y$+Gfy&4&uIYhZ~B=JMo%V9aghA!*c`AUM<& z0K+EE9ol(h&XSV>Sw$Dr4`6KP#4xs_CovKf5l+L+R*E8L(`r~nOM&MU9hCUm+6Knc z#g1JKoYImImFp`cpNp@W`SgwnIh-i%3ny0RkCc9Akt<2~P`DLdbnRLw{D4Sr_-K4B z!+I5?5J>46z}fX9&%_+f=nA6T0Jp#P-o756yilTpDR0AO@1hk~2GW*YFJj$NaM;L1 zC9t(0+Gj0pqrY6=?>Mw(e#?u>QV^Wvn&YPi5d?GJ^1bpNXWTvaG~yK9{YPFgy5%d6 zq?hW=A9-@wq>HyMo5OCi`8JO2`dBd6!L)D8sfo`*1vf*Y^9Kos6$d(aOluQS2ZZrn zdmeUcAu~^Z3fFyy8X{1KyW1g`jRxrK?`TBZS^{E!w;(34xT{PkkaEk!KCAFw%;^Tn zsz@+0^glHY6e{@0R9^Cx+_(Q!m_tO z0sJ_dhS&>}8_e}1?Y)ErZp@89%PaGmHI>6RTC4c+l3|>cqd)}s| zv6iS|{04MYTTz=FVq=4>jdd%tp~ow#g*A$E&%?oAASNBL(%jGJ=37MgrJ@Vvwa|5S zZj6Mgv-770og%A66y7CLQB`2b=VN2-=5J?G_!?hYQ?2`MnztF3Cw1Fp_!DUk_qtem_S9gQg;R z9ss%4Jzyu#65vH-H*4B*6aYd$TgzA;AcY=21;{hY{g}YY_A*fZ>kIc+k|eQgZc`>S zvoaNT4cBzuxL+s@A&R8=kz7=}CRR<@TpvTN#cWMf;at)iFCyyn8BK z+t1Dv0Jrm0I_pJ=Csj!lYh;HwFZ?bAp{w_IwSZA@F2FIXn(&#q8z8F~#2^5u{jW*p z$H_|5jxIEjujPZjG0uRBZKAS2{ux1QL6H@8Ai+OH9I~3SWu2idzggpeO~nq;Du7mLVJ21566!pNNWLYN^W@8VLYBYw9bC$_#?z?falgy|ZPsH--2z-0B zhr3Bp6&2}SkOi8I?Q2RPt1~AbA+ScPsHA9>K-jY~R$vW1e$3JEn(HnwhANhmLTW4S zmq|($<q@yQnN|WF^V*R-p^c8>{#1ogV1e@ptGf zgZ8rcc1G^k0Low;LroBa@}~f%WBFUScgr{Sv646QOSsk7-6O8m=|~Z?u);f<2P5=u z0`y^iiBAuv?g{^zU0^M+j9qN)mHOdGVf7|VbrpFQl_CE11py6u^_EqIDb=QNypIS4b`|V82gxS#J01_a9N4 ztr6zFU@_D4Kz6i)dP26aGhvm(;HDBjLCzVx8WZTL_U9TRsmD|Z#Go8{C=o9@yiQEsgnw6(U z8j=RT_7h8Y;~^DiXJ@E(@?jRLC$NdFBQBq?O>hcsiZhMzKAxldb zAPp40XeP8I#Xe5)GRz`sIIRzdZCUgPetEyNN@`U;p8H7C(pbx>!+(-mJ$$DHSgE*}3?Y&K86 z5&o1ee_`Q#g}l7+GvD9#B1F6Q*zBs%N{u6_6ZnOy5!Y@hnFjXzZxWqphBW85s1e7~ zw8&1FgJ6<`%GcvoWvPU34R<6O``ifK2|i7A12r+e@>csTr&jP>pip%*i(5@qy(ZW0 zTHWolBHvtRjyeQR`OtqWy2~9QJRRGuvIyhmY-YKXo#meDFN+wcVfQLD@d89-#qby;<>z zqW+!-WO-THP;O7%BgzBFM!o(I+h*LyG@nK~>^!|waF_e;-U<9wr2ch%zt`DgW?SDP zc>-a*2NXm*(q^QF1K@-oE>QyEe!9+4Njwh5eZv=237nSk8xSQvX1i>9-O4curHXkg zaGhCY`hblUX3e`6{^L3M+}5rSwIpWpXD9D#H(#Pq4mX?oD;KS5bZX+0ZipT`9toD| zW%Sykr--W6l^u^S<|#?0uS4mt?ie?-hoo<1M%8=ISQ$1!-U>^p?F{*I78j<_h06~@ zYxQ}ZAN#gqc^~av>loBrtYB+FeZgl9fvodE9YF2sZ5olskwLb=IUnhd}v`jsMoK*0E1l> z{vKNG_sUDF97CA}_SoYv}r=N(7j2PCH zQu7j);ZUC!>dpw-RUUK%{K=r4@`W4W7EuROK!J;NCnPtRroPy*gsO*J?n=E@6)$5M zDUtfO@9wVTj}qvm2yyZ}3ZpQJ|CA(NCS(=(TpYcXTAmRSuyERowf6J$ZC73|E?<{S z-@^~}!Df3E-Q0fv>(aXNio{Bci?JtFwjY^4?PwxE))xbH>Qdf&kM-5-K#Y(lZ8#7Q zJT`3IPMpcRpup97UNiaele#rG!@VTd^3S6wfup(yPex^+gcyIF;#81MBj}$SmHdy4fmW0)xif$wO%_IBb`6|YFtDGp zycMMrn{m|`2Z-^nBY2%rbcWF=I;#HB2!?-ll*Gxe1B$+&&HKJ6np~#t72NdAa~g|T_&A$ z`~g--_G2vJHL8vw@=XrTH5c>N=(@SX4Q~YtfP^O>3=bTrd{a+K*Pi#_@85aH1`paK zIVjRG6i#s_1F-&{8H^K&v*>D`;|U8rnM0a#R9v~Zit5#hSWVhQq|9ADs`>h104Q#9 zP~6Vdb_Q=18FueuOQBd56V26fec->+LsrK}pCfeb_h9-*&Tw>p!3eE0dW-ia=2!tGIlwv%%L1JkKZeRwLlKje-Y?Dq;`g4cL1!STV?oFOqjXz z>6YXYKV~}0>&&hcvd!5)zpGWy%ORC|CO?vo9ltGYpkS~C@!Mxz0er-1BK6j3 zkvjj)S@Cdk#x~k(m2BHox$0Asu=SH0qW5Rc)V0j=_BBXVifrBbUA677|09bG+Jd=FwQAAmuh8$ zgoZ^WGrf!PV-xYS47eTa4p*ioyc~^deGm}0i7>K1F1!8p0=N1EVWIihwOMg1yimZ5 zc%MsD5)iiC&SwTta++#YKW^#1_1M%FWn|mCkT|WgId%~g>4|&0QBFcqw$JBOD9(a0 z`0SYZ5GAgCg}b7-kZnU6_nRc8FUF@J^gWAzxr(2Nk&BOE4{5#(zZgHLUH!{iJTbOb zt@`)-t;{2cw=}VV!S50#;R(+x;;NV_T1a6P{=$<%FuLTva$iP9a}!&-QG|hxJe_Iwn$IyLA;)e)g(dUlZ*_!R(I6 z1lHlgjvsh*Z1}AORQ{bW)jF4XePrcZqsH(DoTB-!$ZHdC@gxc#*mk{pyOZJY^v$ox z>FA;h3I*|}j$|nMM(qB}$|RJ-n`B*({{qK_ZL|_~!D7!HY2tq_3UZUK?|k^P`ByNg zcP3vv;ml?pWRa}YJA#zX0f~wblM$Rtu5|r2x{wS=2Jb7gupPHlK^sdfYffUO?Xp#M z|9r~l_=Az=h2Sg2@aKrWlGa)27BI+9rPeZ{vC}x**&U^mF^9NrTEq*kKJUI7O6A*& zlm&0|hs~HQtR^3&Pex;pq}D0#F+|Fi{Qj0rI;IAzXUjs^0PfqxtF%CK}&ObXS4m(ym|oaHZoiZczl-a4UM<@|7a*&D_jI= z#?YL???qir_nAH0x-C(~RNzB?$;Y;IH>7v&zI~Wma7^}TlK!Q4H}r#s|I6XZ1aS%s zNNX6|GUB7;Uf2er<>b)Cie+7Xt$2-tAAt1Y`1yH>GqyD{)e8z)`BQ#}39lpST2g300uIY_&50)iCfb5Y{On`C!of zwDixrbf-5b#z%tLJsSSTDY4;eS7XLUY*xze-Jun?J>-~5-aSRo&kD$hry=aJeLwsZ z{^KUYZMKR^eHM<%=_z>+1f@A2yGafIs)oesBIB5Fzhb4G%H!r88Y_bRK_~6OFKO$i z1%}R>HPuQgfETR1i3wlxH}In7Ga<{!z6^gDpdS*!XBzs9k4X1Ow2K{NwI5v4@Ha$` z4{7+iZ$@}Q|NdF%+((;smjIwGCY?oMg->Xyymr>e5 zFfYrd^LOk_`oL7N!ECm_CI|EYV&<0@pm@{(U!pqc_=$0K&D~S2q%H3&W*HTWC4FP= z#s!|PVQ~TC=YA5d<@Ta_M`P`KRoWwW>@Hs(` zTP8-knN=R<_Q(Osp-&GO>EYu}Qk6CSsG9gam_l!rd+m9}-klI(p|vBgxc>!VA?quk zi|;*|!uviXQ*>ySD}T^>YcCL0z`c|F>kLL=+;Ij%Y^Bi6Wj*0WuAdnHwL`Dk|Gj<+ zeaH*``44)n8&zZe!i&lsJc4!y?1>~0ezd(gltpeDriui-Obw_d#Majj>(Gz`Z6X0- z)1K#zBvOG+v#OlsODi6Hh{(1#Jed3-4I62@1EW)8-i9@j(a36`v#P*Us;y();(+Ex zd5d*>L+1!FS79v-%Xa9xbZ0~`o#NRH0N(EyL`J8GRn|qiIe7HGGFD-78B4aE&XNEk z((!-XM&ni2T~2=*5X_AKN@Z3ooW;fh9R+gwXlwFA(7PwD1%L{8g-r?Uj_mc>)a0fd`} z{}{>EJji|JZZ`JlgdsB1h*@VR`*X`p0>5vFFSNb?l-w<6S1AfkK67-m*3-F3e*=gq zd&P=YUCS_%t_o*U^*l7cx=^v~Dh@v=`S9N&jB_YI$3AMd$sw%Ux7yd_qcke%>wY*R8b=5&Mx%P*z|&)Z75v z9_MJw{xANCeE(*~5^3-P5f*9_>?tDhrV2-T$t|gO&G}+%(y0r{B_TYMPJh>XLCZF9 z<t$}ws&!qz?Ic4VL8(8)|j$|uE znwpisD4aHa^PZz<%g$6cE?KB6WdJ2`e@{?FsU;(GBN2x# zQGOX+Gn{&)URbQfV7-){usMQ`zp)YD`J8-{_O%|%-YHhbI`wbK1^8%hXnxuDS*@HR zSL;1rJ^wo4hGxj=*d;`ZQZO7k*#Nn|(Jmq%tc^?j6>R#FvLm*MWI}kikheLhUTwVk zILaQ7_?bkwq}cdbjO~yV*3H|zj1zDau_*gS7$$xb0juQS7jqQJRrt`L(ZLv(LhdSK zZSxhJdwI|~5@D42bhb>$jXMwqlLHlpU1=gqr0RXu#>{x^r4@e%p;EfDj0H@)a3!pH zVa*`|oL&<@#CZ3?$=>#>A5GUyd^l(}JHLhTZVRG$lar@O5+jFTFRCSXa-M1TMH?Ws z7RJ}ZnB-AFZ`L2gY^W09x23-XV%fvW1h{pL!ve|*)bzWnDDzoylP#9U%U=GD5xl(( z>r$kBZ&qTpdA;-UKSbQhLyDm|soZ*5T@$bDSa`V2uaIv3>?r^Q^4{>pE%)I7 zVru)c_tJK`7Ht_Q%~NPAFKUx*{6FK_V4VK9@ev^CdbvMMIwc0`mz%`Z{dWKw4&MR| ztoUnnWUrRX0K55lLM8{#zSp7m0Fg)E!o@=((P*{Y=_X&i-ASNvf$dskRK^NsLbkC8 zn|-E9kB(nm(eS?rxq-BUf1z_4nb{1iLZ2KdA9B6KIp{IPjrk_dxLrSv@l&Vboc2;2M<)Mx|%XzF@ z7FbgYGrD)F7)yxLC`@?|N_Hs{WZbhv zYRd%LtY<&q&w(q;ikY`89Ic;Sl@u4y07}QNQ$duEI%&8TF(5VqCS8`Z(A!?r=@i2M zz$bU52^^dK2fQIjyM`t0p^*Y-m29Ku0n>37koV92rCG2UICVu$9aBE3g(-jWPqBOw zJdPd)dTptRz(4;T<#1pVWPg(e2E*10(~>bQ-kEn9|r!o$hg5B@&`76=nuITP9jGK>mGG1+NW#(MvaNYw_b>hV8I z?Ke%#25`1Ej-e~=(uI_eKdlODQVCRFpq~!_{X4gMV*wiYDh zd$i?SK;3TvbWknS3Y7h$7$JuJGOFvr6D<3i(FnT6h4!@$%RbjrW}Xk&pX*?-_xS#) ztQo-63nD`hv%vyp4p%i?9&mxgG(nBWAA^0j6N;+@0Y8OKvjWP`X^aGLK?P5OP~%*< z9xQuZqAXriIWp!!7-B1l9$z3CwuW^}#9>?FqCuj4jb&?M=z!KQ2Junk^FKS>E&u`A zh5FuL*>FDOxbpw!(*Z^!Kj80J16wl*q1&~Lb$g}+7LrS0iB;|T$qra|hs#*noSC2? zG=V=_6?6Ls!C`E=Y-MM*QExiVJ6Js-#6(aSV2ye-of=sH*&bxvfMaw6k@ znoUmmHA+k0e?(!2H0eejgP49 z1mBL7hy`w&N5CBnKpKJC0UpK$JQ*^;j~syI?MCuNMgqBp3xEYq3?S>Zo~WiP3Y+tu zSj?X`@AxlE^_sC*5qsdrg-QHU-#ZoA%(5g0HO!dZjhbkyCP-99fH7?oq-6^v{QflM z-|#$vHz}UfIR9$a;TXF4ApohoU=%VOIj)Wg1kh#q9#Gt3ZoQ8DeZJ2&^|F}$y`g~v z316ySzBi`;l_?RMO=^Ah3_RG-vEhsFGiM;>D47fv)j+i3p3%J};|p^AuqnBhP z?X&jLM2rs2Pa}fa{q%TYq(vg)agI6cN#=U_XGk5$yQM*`&}(0SCYcP5$EZb;=FF2Y zVwSJIjKrN+lFNzxfC zEISS4n!Y3~7jpaoqQ#@n=XBR=tXl<02zh%zEQNFI@e>CzwjpwNo+o9`J~18Sv83(3 zW`4|0Uv?ZA!HrDt9ED3^1f71e#rvA!If4{Z$Oa@wxPdj~FLiLxH?Vn4| zZ*XGDYYQUTXR)@??h@gMt%_KX-J@sltC;}vIJZDju~RnyL6$fh?B3A&TaDd<@5Wj6glTPdY8*fqmranFf%eOEXhlb^kW#? z3ENQkjL%(57&nK*Y77Vkx#iwJ@*kM4&g6`uYjPeUOh0JTF4#9dC)cX`qh~9UHxOa< z&3%quD&JNx@ijy0izpyu_kYn^EZI8$Y8REFZ2&X~f{owtnaUbg&D`ey&Be0)akm~^ zB;EW2$L4=2TsA7gUq)SjUB2Ns6X9@Z3v!MO+n*hiCrew# zScHNMPUyvDUr^OKAl5QI@qP;JmFMn`1iYuYTm1e!-`z!TD;i&>Ao@Cl*t(c_;FrX< z0KaAakY!<&$*JVcQrXiU9q*R5(UeygqiJE{;Wf0M+X5Vj@EK<6w(ooD9dB*QzDzDnawUCG80> z>YSsCGbUQU`aI|5bs&$S@tg8@G{uw{pePh9pe6xLz+P#~08VxY;5)z`9aMo1bLYLj z9*}Wi`-Q>HqUe(hDD_<|;_fmiir|dI&!T@Q10ag6EMu6StUziPLlLPbU{Adp%AH9s#Ihp| zC()yToc`gckC#I_H9#Sa*p{kwXzHgx3j4B+%WY?Yl11zKbq)W+cLeTfiiLZ&c%}xE z$3al0kWZ=@PmrXKQtZVxg)d`UesHWpg`L(Q(#J>cY8)Q+IlYtdit8p9VBwF3jQUDA z!aqOr%?hggf$s)}NC@FJ8Xvy}9Ag$!=)E+x&u#0_Q$$$Fda3NUGsz{ zdg7SZ5=khF-@Ax# zF?xI#qpTIuvVDcnOop4syVNDKBK^zBeM0y*CP2OaU1 zxu~k5&1swZzfWL|as^vKD;3X;<(*%z?wSL%F?ADhuG9JQ4#bWdljtC1QwktIni+St zl&8QKhLh>T>wnPdRW!fmKHLKGn-_JA2gLw3p6`FqxU{I$842V7j{U-5G*=|2uG9?c z_5uw179P~W9D01!|4vmcJ_HpeZhe^&Ye~?@Sx62m2fHWJ93rsHKf#$v*ObjRa!PF93T9VimD}$_G(^g`{RB4gs4|_@rG!)F_&Eygy`LVq6>LG@5zWXi1*( zvcvEsc2`5(H}3l}=Unx1M>J3mau^?*!1eKR$d)S5ze=@O!^A}O@FiY6u~VF_%6 zE#lUc2pVS%o`0n8_=6bbteQWHaqvn~Du?O+n2KY&53ECXDuI)* z-}9^t+OoSU{jNN4Mw`=?y)UucCI}{sDU?)@sxq;m6>r*lb=G#sNF(PCE|;^* zSXan&7Q+`t;VQ-Qs-heTq;zJi99$o8ht{=c_Pm() z*w>0>n`L#Y9KIu?>8l&ybmT4vZ}bLW*+*?&*TfJ0K^r114q@Vh>=@S{b50jYm#5ZO zGOh3jaK<#bXW?%xD7B>hpGw8KJ=$v**uMx*Gx&e)-JTO~NpzJSSK;7M(|SlQV<*QS z{#7yV8{qE5xy?q=)qhQ#LYcYJKSTVuhCd=_E^p$Flujh#!%`#y z0v`RaGIM4ufEr;d?m6V&j}coree`%B85+!rgLwXq%LXQXfiiP8VF4JXuK<%4IeZ)4 ztt#C6G4>?bOq>!RN;-c8L^j~aWC&DTsSHM85ZBVku>68+8P)JtuuPu! z4x#4I&3VNvu7y&CmJoo>Uv}+Vhjhfb^FT`O{*EbXbS206*8k zF+&QG^&mf$>-Jd_8ved8SOpjk2!9giIUsFfE{4LRNdVDMZ%IB!+%$}+G|}~<4yyt8 z{!5(OQlC7}evRbJ9^t6yf=M*!V4Yva6@brJ!{p#Y;3u%z-iBEq6H2uMU-19js-J*) z)E8uyGZ2AFix@{=55EKSdJ{mD5s6egfc3qU4RZyJ55CaGvXub(;Et(>?i}}8dWP5n z&>Z1KZI=5-s4=1YBk07U3!rh`?!J$8qk_1T1b^QR4jAMm16C=ir(R129LSW$l)n|C zO>_c2E=Q8~?^IXrcs@ao)d8hUGU*v zzy@l_5mQw$8yDXbsWN`_c;%IW`=A*H?3e-27t!F&z~>IK#y{pMC)(`@IAjQtDCqFq zXnZDZ^LSu!`v^{P22TKE*$X>E7aI6{<0Of+GII|fEZd$#^8J}aBgHG3_rTkZf_?(b)U$f75+W7XYCm;1tt>ty@$wYU{AYzG+UC<8e9w;wa(O-2lYI`)_z|H9^&9bjZY5De%{qT`IFL0npLcFRy13wIpg z;mqSSwfcWX)Ni0IYXV$QAJ_j)lpxk^ySfWx{V7#mLn6@K2qw7ymcrZ4abX^&Y|`W$ zoM!zR1DwJOzJqcuB=-4zr1#Cg-*yw=(W6Zk0U~0(GCb4#Fj#Lux)N`wt)N{hsy$Ec z85D^>692Nq&qS2m*Q#IBVlsO43v>6+S`t`0b@{BP2VZ&M2^<>oV~$Zt1;Zw{~;Ms$5?L0D0Vi+G{JXjtT=hX8)AEdJ^~{1pH` z!4cKh**ZKibB?tA?_M01E{{`VnmkZ&@>L#C}RkSM(G*0GhjZDB`mV;Dj!)f^aOJYBCtFAC9-D(M5x!=n>?n=KJ|4 zcO<%AlNE3~{FN_C+*dw~=E^;XC)N!aWG z;B{x5rWLQ}b{>411dbU5QUq%mKfrMV(DbBt>UVlOow~b>O6~-)e<^-_^E8sUql&pp z7IS{*t_-6rKG63*=d>tgQ}|q9Td3my{`Z6jRUTXCCU?}eKj32T^OfNSBiE~(6AYDm z>W=mDG%SU8NfF@7C`sk|b7+T}8GQd`{KJe3GL#o(MbkM`XC#;8B`tGbEa(rxDes@4k&!N)L?^|CO~z!7-~qKZ z57?NjfClIn0Rl!TYcJ4R?xnrSVd|Ju4tlHb2}D#FUJwnatyKvphv7G34@?4@l=31a zT~S`m^@hXv161Fy$XJm87=?2vDiWlhbF|&|dymO_9{Yj!wZHPf{=Uz#hgf#!e!`2; zN)P_W;G|C0SC7kmW>_OdB!31}L(`azF#yvX}{5K{GpmwFE*J#!O#4#X=hGiaV z^ST_rVI7#)XgL5#aH|AZoSX7E5Ck4f^#a0^JA5#LkoF#`NadRHj>PDK{F(sPS*<&d zGyo*9P-{!I_w0#!koT;*bdG;N@ZFsYNDgqoGjluXpy2TUiV6y*2PpheUICz`aZ={P zV7|6DdyNyN7uz4P<@9$o3kCu05*6SCa7a*!ka7fjjXu{MrWnSfR z|M|FasYHYqt?&SSEiGAIyWO0S2;^f(0iJvTcz$JwV=1zJ`w6ZbnB2K_rd(-sU8v!> zlsQvUJB$QUu=$WVSmN>+{nVEu{djBwQUE*SsR0JoA)0w*UPUqZH4DHVeCueIsg6IS zgLb{z-7-e%?fyNy(}GhNYFPGishNASbWNmlcyQu<-a9@vFTkuR4Hx<{*;km7&seoz}t zv3<~Ja%#_^Z5Vt#AH0~Uo$@~J6X)d}os(0k0wOuBe8MC$E)dHJWAjpR&eeQ2L;!K$ zjgLU(ZUb#tcl>xMHi>)WdDIB_i;QWBln5q<2kipWf4!mRMw}p#^2v)Nk|uV^6{X|t zWT`)St9PSmNgg0c(*O&Itj``ftw9@V{~VL(2M;8n+a_K=gCws1fFw%*ibRY4t(e)a z?3nV3n>5;ed06pG4Quf?;+8K@v?_WzAfz|^(}io{bbbROFaTF8tYx+$P33!mRuvw<0MVtb zyeT#>JUQOs`0;SVj*B~=3%PQyL{H>EM?4y zV4nToxq1dRU#%^2{r zijJm~1?bp+o?BrECecmtmTOui3?i+`PyPc&OV5bA2--9S&u*W$3MkX5z~~ePo_9dT zLPvD{S#3&U0m$+cpz#2pkN{a>ATj1d2izphN&L|R%fRwMzbWri=vqE=LAN~a$65THHQL}nnhyc)JdwGE|BFU)Vbw<#Bby7mqyf7?HXPfd6Dk?%Da-lcci%Ttnd$^ka(%X`91`<4?$bH+J9 z6R@90K_>gMV6SvMM#2D)p_~6z4kGWAXO?eo`I;L@2o?aSxC21ENo>!T`54U5`H##o zE#ClWCo5ym+9!Fq`YR))l@Ww2Rs$M6)nvf;>Ne8dW1^boWbl#Lb`B{Ur$#pa6s+^? z=vSKPa}KFK-n$HUcwSIY7_mx6^(_bJxRMTKTVx?bG%`dT8RtMLsf~2f7lGmaY}wTU zv6MesU-fsj8POSvu*=QF|7jOFkVe4vu>uhHH-k`4qMD0VK5jo;#<#KVfWd!DQ*%q6 z=kHKG`iaw@_4va-yv`>s^xPd{v>Al=8W()kuOC512e>m(J>vwKIEiXwE&_rA*cwB%7Ac%-92q#g_8JJJfshFD= zcYHnK*Y?-9$8~4&Ypvib^d{o(*{UMggh(^n-G6z$p|jeb1?cWLa+Ua3C+dBnM;iFX z^ywD@Kj7SM>jk73!<&-GiPlplh?`;wxgue}t+M}^BqwiSl4l8m!lG{uHKQFetpE?g+eiV;= z9ssbBF7S-k@nZ_`OW;V`a`XgV^dT}h#$gkljqf$#x+kk(2X%Froi#JfbN&furs40* zc>`ovac1zHaGHpNSVHFqpx*!;mK<1qM1gKaOT#?CWVtK$Uov>Z1GLuNQuZ*FV=IiO zHVU=h@fDd#BSJe8T|eNOb|W+~i*KS<`_#Tqf&7dBB_V6>PCftx2JF{g$kFfb=9AQ=WjC*H57dY4Ja|awDZGby#R#OM~(8+ z7&4SeP1Mf)Iyvkc?ssO_o>qBKAw6$YP$Lac;*l(X^X}7||0wV48vuSJ?W(oyZnG1n z3=qfLg&PceH^8Wmx<;QCPiTfni^ScY@Bk$Qil~I|sY`z0eht3W#_Z-HV55hjDExO3 zx(aMw;f69!TtGh|32?g*MHi?-LVl$Uh#1_mbp27T_MbO$X}0d`>-s%auUl7($TdXWarm%XQ0!9^I`(akU}RQ z!UNhZ&~)Q=pxS^2q?&+;+>=E=!;DSMM5n*E{DsP#?`cjkI0ECI2@Jk{l;3Y>tKSUx zaM+S@68$B*TqEOb#i%f^0!WES)@-=tTJR{m9D75{P~DLaytgA9k2!cfrwFcSB>2n$ zpBy&mjKGb5w{ppV#8DHhNq@bYjZ#g^Xl!My)*4X^1`h>4$lB$72dWgmtX=N6dYoJS z9H<;+n)t}^h*3>qX|~?~+4T{i6&0NWT{>)L5PAr-b!zR1o!NhH3$78B_M3t(Sfa&S z{jI3&oqm+>0m9DntTCU@b*lGV{D47o0iu|v-o6|kG>!vjXY zW~6LAH%3LETJi!GRS;lS?a%?XpjTl{1azS}1`H)G>=6OTx76>S-oyl!wmIo%AuA3BJuKHKcV2KQ z*CexdY6rj;+X=9JD8S)e%>j8&py3x~x!EbW-2Q*86TGxKDXjp&(+B9!Cg2lgPVQu_ z1@t)`xK4B*IM#7>_D%uc0RS>?XDS?y+ns?|eg1uaqd3;mJHT6+uL%e&XO4N`8tL0% zs53J_C-RqX+zPloH^+hrxV1av{Q;0~fT2SkKag;x8Tt|jggvQrZlwTk9AN(B(mA#C zrVC-u_iLPz0HEIqSYPhBDH_n!B(^CQ=+6O6KxJ0}EYQ?{1ggzc)4%g;C0Bl)Wv$P& z18fOMgw{S2OD%MbfH1_V19qV~&Hzp~fQp2Y0q02ny1Xd>@>b;up9@N$Jy1K)Pwm;C z@$5Wd27v1*?mXJFQVhI>5@71g-C@vM02y_FpM5GEIv#lxjp}sl!SCvUv%8(^l&1$A zP!kXi1@uxtjp@)YqJ}y|vbg*jgL;qu>p_7Bw0pY*%4{qpF~Hm%QKG*qwI#3oufNIr zc$T+-nI=Ls-rOG-}~#0Z{V4HYdp}Tsn@?EFifrJ@$F?pB?kW z69)%9`=3oOcYt!E4Y;ig^J4(^5P%OrGZtP1z^{R-<1u*vxdhG{mWr6pRM7|m5xah) zo1QMD(SEg?xhDvnNE-zF#oh$E+8u;mf&skzpVxx4g3*cCOTqtMbI?UYv`t>g<05MI zKOX<9{wm1&UEItoBQ2RSp*?;^?Htc`z>aYP$KldZNTks088$Lwm>D*nfx4O2zo)iB z*@06$5SZ-~M9woz?E zPS(UtlLybIi>%02R(?b~O{DP*j=gYQ@VunZht3N(dhraVpQ8Mfa+0xkx0Z zeT+>-4fC2RWX4x%C;W%4>erQZ6ZlKF@BABUMlbhYMwyCm$7t3fRalne%F-w(@)i6h z6d}Dw-QJ#R%*$H5uvZFN%++$GVYimJ;5{tFKr(e7eZfNTZYEo#M8OFfp&bYI$YwH< zG7BBrAb5%mDee}x)DVqCTPqLwYBaY*CMJ%S^rK7*!l(@^QfYrhiHF2m@_vZrP!y=*-qe(_Gy7OXrc3`=mbySJiz_JKys2Pr z0d&ahn;>5r&USVpQhhPu=P)o%CCdyCMHZp zf9GE!8~6O~m!4QmCNA0Z&@Ow_E;DADSHE;c23FOli7IIj`uA5UN75F7^Iz03En1Zf-n;CSyg>u z$VZ!$mAmLWZxof5l;Xd%U}+*{YFaHdyih5QVJuNZcS}CG|HK;plQA{5a`+erq*_|; zhSJrtRtjcQeS@sofNn^y)7}>V4;?CD=1v&Il&!wUYmn?kz%F5={!8X!TvgvJ35m~D z)O6QLqsb>^%!1ECDu!)XYlCc%{fdl^dwNW?lM{}?$CY8-Jys%_bt*43-e3-N#;En} zRVP}aLQyTagl2I&c}pTlTv!avziH(oqVXL=hrgN->TZRRyaJgdx!A$pzU-P`X>W}w-WYmGy{WM zD?dZa{7v;t&*wk%tT12{V-;};1~AsOL0XVosN>1n+qn!r+xKh?i!H7k z#Ushw7P^o7v&DvWprO$Cu5B)#&bPdBOq!+VBnyk!&%-{@3+yNoW~uFT3fS`6i& zyVV!B8MSd*`RD5h?CgdpPY?Oo?I2AgtHk>YtJ-tN|QvG);0hR9+P2h1pq|1muS7*wvUyyh~%Po+FuP0XNjE zo|nhG#-y2FuO}~PcrJ>-&e^L(ITpcr>QdxcCBZH)jAHFX?nh6Udy;oSzA8AarPrOl zykr=ZfjX2+A5~x7Xr5mfGh`$v!`+#T^W+W6c5_|Zn!uMJ+e{3Y*k-Sv*w_;v_7eM~ ztB>5R8qXa|Mt#tPtQ4CfB>KdmsW{!rKo8$w5Rp89n9Vm^MWok9u5L436A2l?!I!@NPY z)GiugO{5NrVhm<{5Lpg(N4<5llJj&@Z@V@twlNw5-V1UNDb%TgbL zh68low`*!L?4ZK?bl35J!)XsQM=oJXHk2YLz*~C@t!P_yu+nR?6xYU=;%afw2AYEU z^17obpa2G zBsd8uOj+f+F6}NLKL9$*3MA3ct8}|G7rGH}k(*wZWls&N@HOc!ow+5Y!&dO%Rlb=w z1}1WqL{Mq<&Kqq< z9{SwN6VIAp0x3_heO5O!x22#@_~03Nvy!<{pWk+^|xxH-1?12FYi%0O2gd_G7+?3p9vwUCzj zn5WU+g0A?F+F`U)AF%?cF2QU+z%ivsJy|~{`{LFNfH^lCY}zM?p|6&_MmxVMO~Jz& zx6Wjf+S(aJ=tN9=R^%*^%#^394(a8x&joA9^NpOD@qc~E`+^*W!Evkr_Jwc%gN#UN z791jtV4=#r6u&EK-)T-&+7B>v`4$c;+J{W$g0TbpaqL)ZV@*bc`@cluU5t>L1FI)9AFbnlyei=Kd#pG&?R z`r@6vmjtpgJP(yArK+$NXj4v$k>2;M6+QCLPsXgNn+J+c=4R5Sh;;g})i`FOQ@K1O zrIZDNajLu~_&LKzuGEUob%aANRo}|kTNjihSP6z$X|=IMAqi7?BS*X+rnecdN>=<( zfDlH6c^8Hhd00=J{0jW4+1aHE^T;qGsxgjLS4+3NF6K4}!$QL2I>eSFPMC1K$3UEH zs9Q!c^^ZU*M`pZ37Wi!xr{5R)*pZO<#v&h{1>smf-d;=j-zo+&KlBXuJk>a~dBUkU zXDAxu;d7FWX&Lsu_f`&z6;(FDpV+u@q`e&D_Wel{Pmaa%Q|eCj@q{$rqqjFGpe6Ot zxsbUMk5rvW#=KjuaYGRjn6CCtLpuw>(=g~q_vD+lUbNrjimuoe&B4)biLBE(tPN6YelKN^LO2@JM|pFjh>9sp*XH3}`4`uzP7rWiMdc&ji=yEvchgxgYcQ(z zB-<#{ep1(s!!JW+kWMx3^UeW{olK#G7xI4!h5n`i19s0jnb59M!zDjZ{sD$M9DYjf zDWkuWjP%7|$xGf}-;qkG>|J|Av0Q~x^c%0Z^@_^!e_*p0Vu)6#ewvsxK1aw*A?D~D z7?6hI8X;EhhFI$JUy$>Z4u!@OC@c_nZQ#<-0eW_0Rn6I z%s$@SRV$RG-}ceyUTQyRow;Ir1&S$NZp)bqI(HWkdNPYNzFAr!&5dW!1skm7;Sf^2 zEUInve9dmDWE5ZU4cA84TM>j&G3A->JG2tvxaCkv`#a<`dYO?o@X)%^vyem2D{F&{ z3z_+c9%7M!pnS^h0qzeP5+!4=&Ag1n+ImJEr81!%zq268Jc7YTHBAvGnXmK?n3h>2 zv1*6b=k?bcS?%=D+3#*(?LLt-@Rk_{LKyQD%l#c;za5~Y! z6%>6W>J#NQ5G`6&FUZth-06#%VkQpEdVEc_!s5$#9}*?}Ou1H`j~9a)m`s{a*Qkw} zC2p28RvQY#YTC&%2Kr2XsO*M|3V5wND{Gg3`hv9j>)0u*hI!;5@!D31un#BdzZ4AH z3<>>chcQbO(|5wfMvKY`Zu=E_SbG(5@`+E=f%%YL?xQoCG@71h1^M{#)H{Wk>g~$i ziNI{zcYb}rTIPRy|l%gbpaurt@BNo?mF)Xy= z+QRY>E>W0zJSWK_#sqpIppRQ->iGLyN)9LiIyU-_A7Jm|KVpfDjM-20GOs7cBqwFr z%bA&Foze{eaPp}+S&Z*#~4J zibsxGN=ZgWr+VlsS{V{rfq1qtJf`*gxtYW{efH@}=(si5UtM@kn>E|4zgE zu_vbSrJXdnAG|Sq6ms61A)v*LvLF2A-vx#NR{JCgaAj6i^*xxt9pouYZmbQu#yJkJ z`ge?Osbih~mw^-q*J-j}sh87eDcxS&knk|!yRRy{akzsPk2pV8-+{-@z>GY((O)QS zi;Vt*C3p#1O}V~(M=wUbLBE}@%sjN6!VxiXb-h~8hij-^UHSraPJBKJD?$; zOV*E{1bo|o%Tp3@hxk)M`RXHcZY=;TF>IuI5w`t!mkNnBq5pG># z9`Jbw4Tt&TCyWyTj_2#V4o#PcS12NEWaH{kD0t4GUhN8#fUGdZVnBlVgWM)ugn18y=whpa`DnDQ5Ze38+l~FfN6i0Zoz-JOB=Y^|6#BH;I8Le3Ml)YAOCor|Gr-pX^JqS z?-r<;xygni`_7(EZ+o#KI6b-=RvQHibZ~ay3VHc_+P0bFhS9U-!UQo+v%ss;Q9j9A z>{+ZmF*d}S^nDtT8rXF%7!fkt;K>Tbe(RJ?T%s69gc9$c1x8(kfag&&KE!JEe}MYI zJr5%&j@s=f5q|u!?z2drH2U_PF2=xqy~^_6i?Jdqd?gXT)S7X*A}vmj&ESd1BfbUs zB$%_s1iF2X=yT$tyGT_tuY9XB49r`p45`2GCqvccq8Xsc^Kh|)I*;7ykI;s_A1!5nZZxktN~VNhAx}Rr6h? zXC@CAq;y51h zeZ!Oz7|!yZt#H%~O)*gyaz8rut&u4Nl>|qq3lEzaLK{OFzAZcHC(ES|1Mr3d;RkWQ zMqi&$S_Do1ZCUwM`T4Zqg!sZ_yO-J^@oH{FCF`t5iJicFq*|msy58feT$CLANgOp% z4$Mm0-U~R0go9juUk^O1qRh^4AT5{vgC69bD5cd67HVd%Epnb^7-jJmQ7JE|ODzG8 zBeD`@Ay$3%he5=eIsv){M!fDvU}0pFm2x9xf$$Z~PC9EFfLmv-ei+jC#rbphT^AN| zAdX#E!)5{|J{_QzVlrcCYZ#JP;pkv;e|CrJ*0fi`X0%?sb(HcsopMv4iiZ6VF8_Ci6Br)<2g3=>>;J=W{;$`bYZ%~{e;fHPD)iqQ|NqdWtLhze zWLRg>oqc^^F|l@!i@o~#`eyB9r|q$_*+hjz_MfYxFN`efly>*`t-qmh@$eul*XQH} z9AUC6he2$ygCtM6RBuce{!}Kouu??#C`Hz>KE*~5kJ_lx)jBxPNzrIgGtc^n zy72Y#AST)`(HQ%dTmXA%rB1UO==$}jdClyGefLz8(xHeN*?^zZTul85Tc#FgQmCpd8uF`SNK30LES`~4wtR&OT( z3an1)i(XIJH|g1x@S@>egQ{h5EU2^P#U+sp%mI$R z4TMX$Zke4=VTZ4p^G@g@2v#wUS-#H_ODef>ERE3C24kq95*ZhOuO;j$uKzf|+i41B zLC=JD_%?OqP*inKQdTblYFro*?d;RvfX(@2oxJd3Fj= zRDxH$-|$40^j93$ZK=iQ3dz*a#89ffm_R!3l$93;^$<&Kv~)=MY3N%)#~C~b-j&FQ zqW71_c!Q5`XEk95D_&7gD$NWh28{joVcdo~sONn`D?8Wm>)`o+s(1#=w~LAU==_#Za?^a&@SAL#gS9pTIX90*zyF8v6PXsTlb( zSc#RV6H*G=AU(Z7e3dBJ+$8uuQ@7hx_-z()#ir8d#+F4b(C>gQto!q7Fp!{7##*_H zlguVwjrN_V##N%!lzAlISU+Kjnbq~MWFOtLW-LwUp&M?|O~5S_R8`56G2ye1Jp&^# zM7!eOI0=5?>uG*F>c_ZN*kdR#n{ z-%a7T4PvYKXX&J*&|*nP_O-}AwPb;%e-%j%cOt?gOI;ELpbOrGyYimWc%C72lY-EZzKo6^YQ&?AW=nz~8r z<}00H`XF7_G+A%dNsbKJ&x-o*ArlhD)4sS4rh3rqRt&2jrM`5UNMh;Vc&UKKXGl+} zr=V|U(;s&BV!PLdFb|O|`5!z^NdW{SWY|oWmSVXkDfWAjkrJmYoiavCrd`g!^0xCK zsnOo@(I3mB`qbfB>EZF|vbU@jVFdujf6GAs-;?A&iRgcyY5(7}q{w10A|N&Kd`%{U zt}dse6D5#hYxUpHyFdTY)B&)C@XBKhqyfKp6`ho0Uth`r+LNVH8LH;V%blES+3oH; zpvChmDfc`uaoGvSSdaobp;UE09<*zGaMSVL$!T@UAMwyj@6)0tD4_Rw8lS3W)(D!2 z*8xeDB4nyv_GZq6A?MknabMPl2Tb=s^*}3{M$1WOlv1)t!e3@HJ)@ zi#i}d{g2POm{z~LRX!Xv+aAEl=!t|np!u=JQZOUeu5*gdXLkMfm7Q&NSSbMi70;Z= zZh(dWr;)F?n(42QQ;eaxwmV($G~jcOtO?QW`65Cwkf@v?;=b&4g&2SO+q%N#%a@ep zcANQXU(Lm4(D7{SFuCjE%S^~k_Ni>@(GXB$bWvPKPduT+j*mIpt*7&qww|!aSdRj0 zx|9WKHn%0SIka2NwT%oP;k=6@Rxz%jJ6eq}x80N5HJ|!(pI6MN?Rkhtt5r=-cRp7w z*Y&o2EgUhv>F_>xqz9B9=aX|OyyxomHBQdA&U4rb$4%Sn1uCg3D8j3BB1l+cR<3%X z(|k#=iBY5rBrDuS49&bsD@mo40{q3`bxe!77S|*Eyex{Q60n<-q#uW`5Xzk#`btfL z9AbOuO_YCn!ZO(r-aU%KWS|OAWIb4%g!uD5hEm#UgKj@NdlE>l7r}h1SFq9F(>z&J ziK%vF{!z8aN_tu!HE`_daT^~NmR<71`_fGk_~L@P+6)zjV1@7vu{Cf3DO=8{2@cpv zH+0s@+*H4?6bffC6|z=hetpB#d6Xr} zMaGo*DjiFZ#uL3z9XN}ghBEE$73R&TE`{t!50OCjcQmK{XCbWObXN-M0Vq=T6T}If?Brvu#hV!@m0poBmWp!bWQ~QwVfSkcQL3%gMwWqfFLq}o zk9_$8DYAow3#7I3zmj6|$%Uq2W`}()FWPF2@O0IaQ6$ETA&LFK<)c;2Y4*sJL4DJi ziV6Im$-)Rv3Qa-};fK(Ipyf1gp_`Dto}Hg0TEXmvR0*{aNgFScStGjA>*8Z1+TJAk zEfnG(Ge4rP!FA!tBf-$-HSS2LS>Hp*s-2)+qPiRW zB+4JJHh4B57=kpztgIQmtSU%sZ#v%W1(<|Obg0%GBUAM`s6mcLUe{gUWi|Ng>`HNA za+D~}YrYFbXw8Gok=rFd;-I=u^3l63o+wWyIT-+fy_9p$Z~hQ^3v(O_wYRO8^G zA&a?X54wZyr6c6CvS8l>;>II9q+iB|QI#1uJsO}8)VG2+%tSE#HMU4^3KmMSwViy&w?IE#h*ofQEF(37tC`qGMz;dc zSj3a{JWEsTLm#Dnd&5b?-u=_x^wDwpUwT_##eF&>dSk_nzk7t5hw>;M{a`i!X~M@E zTNv}5nlR!mVWn@v8&8ChZvVG5W`VCnsi|W~5mjhs>Q!G^>VaRC49JnSEPPp%`+fMu z=5(y@YhJ~om-0{dy&JcVjBVH5pCul9f-ZYA?t70vy$*|;$E%8IKo%4B4z9d0@saCb zR5h(v*o<+cPLWuv3H1`+J6`8=ea-F_3(u+7qImODRe=LL%OeD$`nNADV%#mAQ7NJa zY4^mv{ApB+XH0U@=5DI~RftY%_G|(Ty@m~#UBj;PS7jA{EkrpO*Aw5#P<@SvRMq@Y z`AciA$eWcNyA%ulF0&$8e7ldQ{fkJh)$nWf?qK#D_B~Tw-a(g74Ym8<s&;W!5nyw}v~-=k@A5(p28{7k)=2ZJukE7ZCfhC@jZb`S>6!!O5H zXp*V-UI%7jNTR^rJiiNg zb8<4FGa!F*V_&x!cKCZG zNXzWUBf?K;!Ui={1f#z&79W(F`IR6DW7g>1)S86fi-Hj1@#m=Y{520O^%y7-kUmB%1!Tw zXeH86U^O&_!6~S7khDq|!JbdG6K}G9ESE*LICuc1ZU9+5Zk;w%G4=?9aeae>eI>Ur zByN=SFDgXrEab_L_z9ICoeB8HM0Je*vzKO$(HY?SSE&u$eM7kn4Ws&W%%x?u;Fej( zxUP;Uj`mY%#axC~HXjdD?4h^GXNe%9-Sj)w&g7fdk^SQ5@yVg6~xfvw|*Uu0Lklv;C$ zDP5CknU3eQeHEf98yKVaPW3(<3k|0jVJ^(L!X)T_lIe?o!2V?L%+V@FbGsevEM3U+zmp+^4vBC3AS~DtKMWByZ9}Y|JU(KAjDL5^KwpO_^AZKonrJ5Zc$egRLyU` zS+00udM0PkP?-HB+eI;;g|TY-M9c9V%~|D7CvXk=iY_MQDvCTc(#8SX5q-C4=P2ly z#$=?qO;U>X*%^vZ0_9}^tq1-j9b$U;D=BwhVz!&A@oI{E@VK$b$ zM+yzR#iB_T{>KS(^fw`r$=va}#u~K8p|9fS+cxxRDI`|#{_jHs7#pfc|K}Ka9x8$w zuxs0XPn#uXdH0$T3l|!LU^u-nWe0G|*P-idRWUGR9wN=c4-AJ6~&UiVQB(!we zcx!NX`uCY&m*ux&+wl%0oIM_CPm2|hGd{lN!g#${gGGy`(#;*YEujMNaf33K%h8f3 zD0JCIvHEjra~$WV)y+gB<-^YmALN=rIuydr=|fMBGfHi-ZR2^}B&z0)XG1(ILTC-G z<)v);vG^Zj!MvHX@-R0ex!MSVY;>9Apm{(y6>f4_|KnEw;zI?uc`7fLOWfNarR0tF z_;~@JMz;C7pK^#cI{Z;Tx2Nm=c(_kpZZS^VJ;GQj&MiA1%Hp~kU&>^E*xAKQppD;S zT2H5kKLG}T!VZtY226@57K~mKzOa%$sXV)*8*wmD;LWXH`~@Q0Ih(|~9I)6{FQw5F zC6g)39&AxdCwDCgJ5PNYUA|Y!MDi@>YcRXPU>1eMVwCRs4c#p5`PMdnM=>CVv5v53 z;MXf3nFqui%%D(%4O(cGPXE$FE$S$@8?6tDL!-waB|Jcf1{Ui+NXjU~wC`7a(~i>q z*zHsE;Mb8YlN$8XoOv6ai6__WXWKEO=mvw0Be4f-6d<~i!^ybCl=pE%Dr*5e?IX01 zy;Ax%j+$8TmwZp#OwxJ`#%UX|WF(QRv6R*y`(rQWHTubQg`J|np?7?iLR_@YF^o0( zp#kRpy+Tr|hf;K=mq}ng8@()96BeepIVDNXWFyP^U%^Ov{Fw^y84E%Zd&-P)Smz?I z;9+J$&E}X~#+heA3tq(w<>wBef)dGR3dy~!*6$koRYlZtX~@xK6~`)V7f3bwr#a~} z9BW@+TqS`=x8f{2T?XfO$C#Wn9m`b2IL@FIo_Pa|adYp5#wo?UOEWyrcVd`w5PfEJ zRD&&i8lW~)IC0*%jV}C8k5?T}CskrX35g6oxJH65=05hUE*v^z+|na=M;#nl=SCpW zTc&J`_<4B>-fuYWs`hOBcMabA4YfDpPxs>;_ou_+*In2YVr=Q{LK;8gTv)u$cdZ)> zL(Zz0LY3d|*+0mLwbk7(eLZS(VP%^OpB$>l-1;s`!syh`P}oezm@JHQq4ihPrIbDO zckYpsR$jLoPXQ=gE#$6Y!u_$I)DG|w9sO-s_TEl+UGh8|wez`K5IVbnrYSv`A>XyU zN#+(7{>gSkX`OdvVkaUVA*8`Ru3vY%*ZFX!(XL$B8|CB{{ohl^02ebsk$-PdbRWw=^+3a`ylZ4r5f8lk+?3N zFW6$mbm5O~`_TJ%HSv8QAW&c~ehJwy2nM&$7d+XuT_hkWMg8891-WGblgfem9-7eu zUw%YpH!*?(Eu)iFNB+={<;|tGuM}LO0ttlYQ0?EAKS?}6j85`6$u8uefSi7av)s9y zh+fB-P4g`ea>prz%wBDL*y$u)tm`fMEfpEIcGcqC^HKMPCx)%k?`ZwF&z6Rz|{EnDBUlvDIjoE|xo>F8m}OqBU`V(;Uie9_lG4UedI z%SW>Ng-)L5^4BT2(LDx=V%G zF&A!=Pv|v5<%?U#UpyFo{@abYy%afkm$s)u8AG$2kkHnC=rN{2+#tK$9K7^rT4%n_ zXl6qGf$}^;;SyfOwFvDx^3~5pe1*(AM4pcB=2tnuEy+|v+u~+7@`WzePwq9RYb@>k z)@bU`%04YP);Q({JMBGH@~ha=X~c7JJIN?Kff+lk=*x@waqr6l@4bS@73{|q%BK^` zKa<%bZC|g%uA0UlE{vY)#(w=W@_A_5&bZq&dfYU6_-W*|8bqXdK)QV0KmM>dZrQVZ zKe{~QKihE%W1*~w%^Xm(Tewafjxi5$yYFF(k8C>07RibW+Anda70zFX>sE{I&Db(q zD4%3u6F8CN)^up>4G|O|v(++EFRKWcISz|q=Twn;Ue_s_f7@wnfCM&~~q&e2|YkspDR zgXsS2{j5B6@^qM^qja;v=V5p>g7x~o z{kl22xfs{ziL_zRE{3Tpjt+HmVC0Ajib9MB%5PhNi#r6+1h)Z-&-n|6XLxdYBOc7 zI`UyB#>f?5ERPd8Y9*gC(xF85bzgVNUL^S#tzOR!kq{T$7Bk)+O^}AjnTcj}6 z+!qbHF1gEYZVSLc*zNVr<-VL)?S0X5j4PB={K~_dJ+QcFV`|jDNu=K2QpsT|9J5XR zB?;_kC4w>qyJi|y-TbK5FA?SvV(BCWMevyY5kXa5-RTHxJ?SS6=vLkGJ>(L6Sqa}3 zHS88lKc1M+8#PR;yFM8gKtJ}otO6rmj6DZV$=fk{O!MzX+u3hUnj@9R4VA+`E!$j^ zzd9Z-dLeLF53c(CTqIp@&nHvRr9t9lHHQ?)AuA%N?N=RX;Jw-tr}2ID{&|xujQE?X z23(^2rhyG8%MlmveEs@xqwlQ6QtZagC}wF>@D0VZh1eO0U^eO9HwWpgrJ)3lb(8ob zuK5-m)reGE#+uJaA7y6RCCH?i@#^)Bl5)e`;YoJ7!*L!MdS;XJ1pT= zpS>6pKEgl?#{x^HKP+d)9Jn9!r-BddHDrQCqXw;_+q>^DDow06VPzOZ1hW(aGpd_b z!A2zK;W)Pf^(wL!i(lW*R^1td*?OZd8&~_}_FqGyY|AMZhl0V|Zx7Mr%(=Zu`t)M% zcOG&zJLMGn<4?GY4t+Yx_$fZkocAD&&cVlK7yD-Bd;kfliQ08M)PGr(J$?9|Y7lzz zW`r+oNdc?5PR8j{{~jUo$S}`h=Af?or}EZ!+2jWVZk1&Km(X<#)JEbRz8;i^X^u;# zb5L5T7T{U`gmdq=;7qIX6Eq#0+mF$MAv;VAoSxaN>x|#KnVcProH8J#V``||6;jyl z41_y*3m;S;x3{1zu$;HqYV8bsbBCvZy-B9Tp4T?4wH~D5F30#nWpgvcuOo()D1fpi zYe_BZln`jnmlfghhHZx84D8pIy~X=2D1LJ52ef%GOVPG92LV{7Rb~f8`acM=l=*zM zWeF!qLsrg?4e=TXYKXa1S4j;5rY9Q{Du~G987UGcBJhotFt-v1-}?60xYm340S1*( zwxQuVOh~apT_9L!nx{}Nb{s+lIrzraM*v(!7RL3ojR4i~fYVRV2!ZuSM2KX7Z@7it z3FhyUrBp>_7CQp3ZQ*72{j!E7Ls{OqlhY;cQ^IBn1;%ycAP~C*h_U7yxLhATtP7hJ z4;qABIuqUSlO$n;XCqaNmwa1Z@T++otC!pnTiQ2sDo7e9K2Y~F*2IG|e%QR4hpG+j z>ay%*=L`Maa(lhr^?R`iim{?%bexLzG@TN%-bN)H2`k z-F$%G_(sqljt>f-kU)mVjeL3mYyTRW&Na$U~ zw62$VrJIo`OA~YCxh?#3q#Gb7u6g>rxHWV<*vcxN%|=8#0qE)d&8VIC+4AGxWhCA~ z>8Iy~=EL%B0@_!9*l*(1H&E+`#VzG)PQ9}CkCzK}SIC7z%WmtKbze4XnKP>1A+OCF zkmD+|pTEmhz5C->CkxTkZPA_o`dd1EeQDY-#Z<*wbi9<=^Kad+{!wi$*P|sZIp{cx z+NZ1`B8_8+vc7k+00&|8!_E5cNkJUcKR@yjkm1QFZmW@wh~nP7mF|dX?5Z&t!=KjOf;C{$ zYb`S;)ygo`{iaHJ(0_X0bV@RF$wjg}W|YKI5pxv7_1Pc19SyIG1u{{P%I6uc2qgKd6go(O#F`I}8G zIzL9QeEISfpNa#SYV^>7n!pdNz~ofBVjCbc`T-H1y)X%{#b(~J-w%`Y`8IMoVXQf| z4QPKrH^KscS`wb^=K$Rrre;pZ)qSIWnhX=w)lqj-B^)Pyl_$aLxT=%rw$) z(z5s6-@25)$hx)A0>#r&-X9&$cfZh|hr(|F5yZGHccM|*PSpMxv%0D)rzFF6mMH}Z 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 From 2ab6a3f9170a04c24e7e3322a9d7944ffd966a0d Mon Sep 17 00:00:00 2001 From: colourful-land Date: Wed, 27 Feb 2019 16:23:29 +1100 Subject: [PATCH 057/598] wording --- doc/design_paper.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 430b6b7f..b13c8b95 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -61,7 +61,9 @@ If a buyer wants to purchase a tokenised country estate from a seller, how do th If a token entitles the user to do specific actions online, how can the user login to the web services with that token? -It's easy to see the need for a framework defining tokens and making them interoperable with different methods of trading, listing and rating. We did end up having hundreds of tokens in 2017-2018, but they are uniformly on the payment side - currency-like, ERC20 tokens. There is nearly zero effort devoted to making tokens represent *goods and services* - a basic need for an efficient market. +It's easy to see the need for a framework defining tokens and making them interoperable with different methods of trading, listing and rating. We did end up having hundreds of tokens in 2017-2018, but they are uniformly the currency-like, ERC20 tokens, filling up the payment side of the market[^payment]. There is nearly zero effort devoted to making tokens represent *goods and services* - the deliverable side of market and a fundamental need for a market to work. + +[^payment]: In the later chapters we will categorise tokens as payment tokens and deliverable tokens. ERC20 tokens bearing the hallmarks of *payment tokens* only filles one side of market with tokens, therefore can't lift a market. During the speculative bubble of 2017, a power token ICO does not need to provide any explanation of how the tokens can be used. All speculators need to know is that they represent a "stake in the future world of tokenised electricity". As long as the token can inspire investors with imagination, it's good enough for an ICO. There is, no more functionality needed other than an ERC20 interface. Such a speculative token doesn't depend on attestations - the proof of actual power production - nor does it need properties like where the energy is provided or for how long it is available. @@ -79,9 +81,9 @@ Therefore the web was built as a giant library where each book is a computer wit This design has caused a lot of modern inconveniences. A user would one day receive an email on her monthly statement, yet she couldn't recognise a few entries on them. It says "Amazon". Was it about ordering a pair of shoes? She has to copy the order number and look it up in Amazon. In another occasion, the same user might pause as she books two tickets for an opera, switch to her frequent flyer app, copy that number over and paste it into the order to collect the points. She might struggle a bit installing that frequent flyer app at the outset. -Why are we doing so much copy and pasting when machines are exceptionally good at doing this? It's because the web is like a giant library by design, and we are like readers keeping notes of the index numbers under our sleeves. It's not, as we would hope to have, designed like a personal assistant.[^smart-phone] +Why are we doing so much copy and pasting when machines are exceptionally good at doing this? Owning to the design, the web is like a giant library, and we are like readers keeping notes of the index numbers under our sleeves. We certainly hope the Web resembles, instead o a library, more like a personal assistant.[^pda] -[^smart-phone]: Surprisingly, even the technology that was created to fill the role of a personal assistant, the Smart Phone, still failed, for the same reason: the efforts from client side alone can't integrate a Web that is not designed to integrate. The infrastructure has to support integration. A smartphone is modelled like a dial-up Internet connection, with each app representing a website. The users still need to figure out which computer (app) to talk to before entering the conversation, and still copies information around as he swaps apps around. It's not possible, for example, to ask your smartphone to sum up all the money one may access by his online banking apps. +[^pda]: Surprisingly, even the technology that was created to fill the role of a personal assistant, the Smart Phone, still failed, for the same reason: the efforts from client side alone can't integrate a Web that is not designed to integrate. The infrastructure has to support integration. A smartphone is modelled like a dial-up Internet connection, with each app representing a website. The users still need to figure out which computer (app) to talk to before entering the conversation, and still copies information around as he swaps apps around. It's not possible, for example, to ask your smartphone to sum up all the money one may access by his online banking apps. It's easy to see the cause of the inconvenience; the web is poorly integrated. The bad examples go on and on: From 2a791c4043b5c328f71c24f0db0c8b899e5a8dd7 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Wed, 27 Feb 2019 16:34:40 +1100 Subject: [PATCH 058/598] explain product-information and formatting headers --- doc/design_paper.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index b13c8b95..5492bfba 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -230,9 +230,9 @@ We assert that a descriptive language (TBML) is needed to allow blockchain techn By virtue of TBML being a solution layer rather than base-layer technologies like Ethereum and Plasma, we choose to introduce the technology by example, and provide rich business-context based discussion for a boarder specturm of audience. -## address "Frictionless Market" capacity +## Address "Frictionless Market" needs -Taking a closer look at "market", a market is not a noisy channel overloaded with information; more importantly, it is a place where delivery versus payment happens. With less reliance on the middlemen, our focus is turned into the tokens being traded, that is, *deliverables* and *payments*. +Taking a closer look at "market", a market is not a noisy channel overloaded with information; more importantly, it is a place where delivery versus payment happens. With blockchain relying less on the middlemen, the host of the trades, our focus is turned into the tokens being traded, that is, *deliverables* and *payments*, and their role in market. deliverables : All sorts of things money can buy: assets, goods and services. @@ -245,13 +245,13 @@ market TMML provides both *the deliverable* and *the payment* side tokens to "plug-in" to the *market*. -Such a framework is essential for tokens to be presented, indexed, transacted, traded, auctioned, combined... to form a frictionless market. +Such a framework is essential for tokens to be presented, indexed, transacted, traded, auctioned, combined... to work towards a frictionless market. We will introduce TBML through an example on each of the *deliverable* side and on *payment* side. -### deliverable side example: 1% property token +### Deliverable side example: 1% property token -Let's imagine a market for "1% property". A property owner can issue many pieces of a token, each represents 1% ownership of the property. He can sell these tokens to obtain cash. +Let's imagine a market for "1% property". A property owner can issue many pieces of a token, each represents 1% ownership of the property. He can sell these tokens for cash. A buyer needs to know quite a bit of information. It's easy to understand that such a token would fetch 1% of the sales revenue if the underlying property is sold, but a lot more details are needed: @@ -279,13 +279,15 @@ Specific to blockchain, we also have: We categorise these trade-sensitive information into three categories: -- product description. Item 2, 3, 5, 6 are in PD +- product description[^pd]. Item 2, 3, 5, 6 are in PD - attested information. Item 1, 4, 6, 7 are in Attestations. - reference information. Item 8, 9. - action information (how to perform an asset action). Item 10. Understandablly, the buyers need to access all these for an informed decision. +[^pd] The word is loaned from the financial sector, usually used to describe packaged investment products. It basically means the formular which profit is calculated and the current values of the varibales in the formular. + #### Product description Product description information is typically in the smart contract. In Ethereum cases, these can be obtained by making a few Smart Contract function calls, therefore, the only needed work is to convert them into presentation - usually it means translating to the language user speaks and converting "True" value into a nicely ticked checkbox. This serve to introduce the first functionality of TBML: acting as a presentation layer for smart-contracts. From d12f88b13eee8024531085955606c87cfdff3f20 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Wed, 27 Feb 2019 18:33:27 +1100 Subject: [PATCH 059/598] strengthen the why tbml chapter --- doc/design_paper.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 5492bfba..26f30b61 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -379,23 +379,27 @@ In a similar fashion, suppose an investors' forum where the members are allowed #### Scalability -Horizontally, the same type of asset might have tokens across multiple networks like Plasma Chains. A buyer is likely to be interested only in assets in Australia, and therefore only connected to the Australian 1% Property network. It can be difficult to have an all-knowing node to provided rendered token information for all existing tokens, especially if a network is designed with privacy in mind. Therefore, to scale, the knowledge about the token (TBML) must be detached from the access to the token. +Horizontally, the same type of asset might have its token instances across multiple networks like Plasma Chains. A buyer is likely to be interested only in assets in Australia, and therefore only connected to the Australian 1% Property network. It can be difficult to have an all-knowing node to provided rendered token information for all existing tokens, especially if a network is designed with privacy in mind. Therefore, to scale, the knowledge about the token (TBML) must be detached from the access to the token. -Vertically, if we desire a token whose makeup is a 1% property token from a sample of 100 global cities, for mid-big size investors to distribute the risk, a computer system that can manipulate such a token must be built with the knowledge about member tokens. It again cannot depend on the availability, security and openness of the original Dapp tied to that asset. TBML would work in the middle for the making of such tokens. +Vertically - by speaking *vertical*, we mean to build upward, to building structured transactions using a token transaction or creating structured tokens on top of a token. Such transaction and token access the component tokens. For example, if we desire a token whose makeup is a 1% property token from a sample of 100 global cities, for mid-size investors to distribute the risk, a system that can manipulate such a token must be built with the knowledge about member tokens. It again cannot depend on the availability, security and openness of the original Dapp tied to that asset. TBML would work in the middle for the making of such tokens. + +If we follow the example of Peter's Pride Property website as a Hello World example, it might need the user to submit a transaction not only purchase a token, but also tips Peter in the meanwhile. If only the token's issuer's DAPP knows how to assemble a token purchase transaction, this will be impractical for Peter. + +The vertical stack naturally can be a lot more complicated than this, even in simple scenarios. You will see one revealed in an e-commerce story in the "Integrate the web" section of this chapter. #### Security -It is impractical to improvise a schema where every transaction the user might sign is rendered in a user-readable format. It's easy to start with such an effort with a transaction data translation tool, translating an enigmatic transaction payload to "user-readable data", but ultimately the system integration and UX needs would surpass what a translation engine can do. +It is impractical to improvise a schema where every transaction the user might sign is rendered in a user-readable format. It's easy to start with such an effort with a transaction visualiser tool, interpreting an enigmatic transaction payload to the user, similar to Linux's `identify(1)` command, but ultimately the system integration and UX needs would surpass what a dictionary style transaction visualiser can do. Take the 1% property token as an example; a confirmation might look like this: You are going to purchase 1% of property #802820 with 45 Ethers, are you sure? The user will be unsure if the glass ceiling designer 2-bedroom house he is watching is #802820. -A translation tool cannot go further because correctly rendering the property token requires more than word processing. This limit is easily hit even without introducing complex integration scenarios where more than one token is involved in a transaction (e.g. purchasing a used car and getting a car token with a warranty token). +A dictionary based translation visualiser cannot go further because correctly rendering the property token requires more than word processing. This limit is easily hit even without introducing integration scenarios in the "Integrate the web" section of this chapter. -Eventually, a transaction is generated with code, and the user would have to delegate the trust to the code. In a user's words, I am accessing the website tied to this token, so I will trust that this transaction I am signing is generated for the intention I have while using the site. +Eventually, a transaction is generated with code, and the user would have to delegate the trust to the code. In a user's words, I am accessing the website tied to this token, so I will trust that this transaction I am signing is generated for the intention I have while using the site. This is a broken trust model, a regression to the TLS model of trusting the site instead of the content. -TBML is designed to separate token rendering code, and transaction generating code and package them into its container, signed by a party that the user is likely to trust. There are a few trust levels, which we will detail in later chapters. +TBML is designed to separate token rendering code, and transaction generating code and package them into its container, signed by a party that the user is likely to trust (often, signed by the same key used for deploying a smart contract). There are a few trust levels, which we will detail in later chapters. A user who is purchasing a 1% property token from Peter's Pride Property recommendation website can be supplied with a rendering and transaction package, signed by the same group of people who created the holding contract of such tokens. Therefore the user can purchase assets from any website with a similar level of trust, or purchase it from a WeChat or Facebook private message and know it is the real token being rendered and transacted. From 01753f14f474ddf9f0b08a5228358c580ada92c8 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Wed, 27 Feb 2019 21:46:34 +1100 Subject: [PATCH 060/598] added ## payment side example: DAI token and the first of the 3 sub-sections: security --- doc/design_paper.md | 61 +++++++++++++++++++++++++++++++++++-- doc/payment-in-wallet.jpeg | Bin 0 -> 138039 bytes 2 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 doc/payment-in-wallet.jpeg diff --git a/doc/design_paper.md b/doc/design_paper.md index 26f30b61..030ff5fc 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -405,9 +405,66 @@ A user who is purchasing a 1% property token from Peter's Pride Property recomme ## payment side example: DAI token -We decide to use a real token in this example thanks to our recent collaboration with MakerDAO project, the issuer of DAI token. +DAI is a token designed for payment - purchasing security token, purchasing goods and services and so like. It's intended to match USD in value. Not fixing the supply cap, it is not itself an investiment candidate. -[TODO: fill this chapter before 27th Feb] +In many ways DAI functions like Ether, the base currency in Ethereum. However, it can't be a drop-in replacement for Ether. + +First, the Dapps written for Ethereum may not be aware that the user has DAI token, unless it explicitly support DAI. A Pizza ordering service that accepts Ether as payment, for example, cannot trivially start to accept DAI token. This is true even if DAI provides a DAI-to-Ether gateway service which, in an atomic fashion, converts DAI to Ether in the same transaction which uses the resulting Ether to purchasing Pizza. + +If Pizza website doesn't upgrade, the user has to convert DAI to Ether first, then, purchase Pizza with a second transaction. Such a process is not only inconvenient, but lack atomicity, meaning that the user could have converted DAI to Ether trough the effort, only to fail the checkout since the Pizza is sold out, and ended up with additional Ethers that she has to deal with. + +It's worth noticing that the Pizza website cannot upgrade to support DAI without knowing how to discover the user's DAI balance (in order to not to to waste a transaction fee just to find the DAI balance is insufficient), how to construct a DAI withdraw transaction or DAI-Ether gateway transaction and make direct smart contract function calls to the DAI holding contract. + +Naturally, the Pizza website isn't in the best position to manage these payment-side details. TBML addreses this problem by + +1. Encapsulating the smart contract function calls needed for supporting DAI, along with the javascript to construct needed transactions in TBML, signed by DAI issuer. + +2. Providing a browser side implementation and a javascript based implementation for TBML compatibility, so that the Pizza shop could just call a generic action to return Ether (or any acceptable currency) and let the payment logic in TBML work at transaction. + +TBML's capacity to embed payment logic and presentation means that not only it can display messages in user's language (like balance or "insufficient balance" message), but it can perform functions like pre-checking the balance, pause the checkout flow so that the user can perform a top-up flow and return to the checkout flow to finalise the checkout. + +To the user, the process resembles a bit like the checkout processs leads the user to Paypal to finalise the transaction, except the process happens locally in an enhanced user-agent. + +We again argue that current prevailing method is not suitable for creati +ng a frictionless market, while TBML could, by providing reasons in the areas of *interoperability*, *scalability* and *security*. + +As concluded, Pizza website would not have the necessary payment side logic to handle everything on its own. The traditional approach is to let the Pizaa website use the javascript sourced by MakerDAO project. The javascript may or may not use a RESTful API provided by MakerDAO + +This approach solves one problem by introducing quite a few others. + +#### Security + +When the user makes the purchase attempt, the transaction is created with the combined effort of local javascript (Pizza shop javascript) and the supposedly secure javascript supplied by DAI. The user is presented with a transaction payload that contains both the parameters to access DAI contract, e.g. amount to pay, and the parameters to access the Pizza website contract, e.g. amount of pizzas to buy and the toppings of choice. Apparently such a transaction has to be sent to DAI contract and channeled (proxed) to the Pizza shop contract. + +There are two immediate[^minor-security-concerns] security concerns. First is that the website didn't use the MakerDAO javascript library correctly, which has the final transaction builder in it. Second is that it is not MakerDAO's javascript at work, but a version replaced by a hacker. + +[^minor-security-concers]: When two systems plug on the web, usually there are a hoard of security concerns. To give one example, if a side didn't update the code to reflect the other side's change, the resulting malformed transaction might be rejected. Tracing these transactions allow an attacker to target websites not updated. + +These issues are addressed by the encapsulation method used in TBML. + +First, the transaction forming code is signed by MakeDAO separately and updated separately from user-agent side. The website's code doesn't have to be signed because it just supplies the business logic, not payment logic. Say, if a bug is found, DAI can suspend the payment by updating these signed instructions, and the Pizza website would behave as if it has been updated to address the issue. If the bug is found to be in the DAI holding contract, and a replacement contract is deployed, MakerDAO would update TBML and sign it again, without Pizza website having to do anything. + +Second, by explicitly asking the user to trust the TBML signed by MakerDAO, the user would not need to trust Pizza website's rendering of the transaction content, since it would be rendered by the trusted MakerDAO TBML. + +![A payment using TBML. Notice that the *Complete Order* button is not on the website, but in the TBML token area generated by Dapp browser, where the code to render the transaction is pre-signed.](payment-in-wallet.jpeg) + +Third, if secure protocols needs to be added, for example, an attestation from the website (can re-use the SSL certificate) to certify the transaction receiving smart contract, or the smart contract returning explicit trust of the website by domain name, the additional logic can be a combined effort of upgrading the dapp browser's support of new TBML feature and the token issuer's new TBML code, without touching the website. + +#### Interoperatibility + + + +DAI token balance isn't immediately available to the DApps. + +t has a few additional features that we will take care of + +1. The creation of DAI tokens requires a set-up phase. +2. It's needed to enquire a smart contract or cross reference another blockchain to find the balance. +3. The de-risking of DAI comes with a cost. The user + +[Edit: describe how DAI works] + +[Important to note that --- diff --git a/doc/payment-in-wallet.jpeg b/doc/payment-in-wallet.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6e22149e85dc24896b8d288e6f57ebd10ab7ecd2 GIT binary patch literal 138039 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

<($8`H~40DRQ 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 RPg7%_&Hn%WKAr!}{2Q%rTxkFR literal 0 HcmV?d00001 From 39b73630da574ec23b37f3b891f0e3d447af69fd Mon Sep 17 00:00:00 2001 From: colourful-land Date: Wed, 27 Feb 2019 21:53:13 +1100 Subject: [PATCH 061/598] amend misspelling and adding note to the same chapter --- doc/design_paper.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 030ff5fc..422f7d46 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -413,7 +413,9 @@ First, the Dapps written for Ethereum may not be aware that the user has DAI tok If Pizza website doesn't upgrade, the user has to convert DAI to Ether first, then, purchase Pizza with a second transaction. Such a process is not only inconvenient, but lack atomicity, meaning that the user could have converted DAI to Ether trough the effort, only to fail the checkout since the Pizza is sold out, and ended up with additional Ethers that she has to deal with. -It's worth noticing that the Pizza website cannot upgrade to support DAI without knowing how to discover the user's DAI balance (in order to not to to waste a transaction fee just to find the DAI balance is insufficient), how to construct a DAI withdraw transaction or DAI-Ether gateway transaction and make direct smart contract function calls to the DAI holding contract. +It's worth noticing that the Pizza website cannot upgrade to support DAI without knowing how to discover the user's DAI balance[^balance-is-privacy] (to not to to waste a transaction fee just to find the DAI balance is insufficient), how to construct a DAI withdraw transaction or DAI-Ether gateway transaction and make direct smart contract function calls to the DAI holding contract. + +[^balance-is-privacy]: Eventually, the Pizza website would not only be oblivious about how to check balance, since TBML handles it, but also not possible to know the balance. This would require underlying blockchain's support, but ultimately cannot be done if we continue the current trend where website, who should care about business logic, also care about payment logic. Naturally, the Pizza website isn't in the best position to manage these payment-side details. TBML addreses this problem by @@ -438,7 +440,7 @@ When the user makes the purchase attempt, the transaction is created with the co There are two immediate[^minor-security-concerns] security concerns. First is that the website didn't use the MakerDAO javascript library correctly, which has the final transaction builder in it. Second is that it is not MakerDAO's javascript at work, but a version replaced by a hacker. -[^minor-security-concers]: When two systems plug on the web, usually there are a hoard of security concerns. To give one example, if a side didn't update the code to reflect the other side's change, the resulting malformed transaction might be rejected. Tracing these transactions allow an attacker to target websites not updated. +[^minor-security-concerns]: When two systems plug on the web, usually there are a hoard of security concerns. To give one example, if a side didn't update the code to reflect the other side's change, the resulting malformed transaction might be rejected. Tracing these transactions allow an attacker to target websites not updated. These issues are addressed by the encapsulation method used in TBML. From 2ef7633a78c82b437b94254b171870cf2a3877b9 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Wed, 27 Feb 2019 22:31:54 +1100 Subject: [PATCH 062/598] finished the draft for "Address "Frictionless Market" needs" chapter --- doc/design_paper.md | 73 +++++++++++++++++++++++++++++---------------- 1 file changed, 47 insertions(+), 26 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 422f7d46..403f9ba0 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -10,8 +10,6 @@ Despite the great folly in 2017-2018, it is not a bad thing to initially focus o Previous efforts in this industry primarily focused on enriching the capacity of the technology. This paper will focus on tokenisation and introduce a standardisation effort known as TBML (Token Behaviour Markup Language) which will make the blockchain technical stack complete, providing utility for the economy and the internet. - - ## Join the game Please join our work at xxx. A Yellow Paper to guide implementors to use TBML for their tokens and dapps will take months to make, but a work in progress is always available online. Participate now to avoid the draft language specification being made without consideration your token model. @@ -403,7 +401,7 @@ TBML is designed to separate token rendering code, and transaction generating co A user who is purchasing a 1% property token from Peter's Pride Property recommendation website can be supplied with a rendering and transaction package, signed by the same group of people who created the holding contract of such tokens. Therefore the user can purchase assets from any website with a similar level of trust, or purchase it from a WeChat or Facebook private message and know it is the real token being rendered and transacted. -## payment side example: DAI token +## Payment side example: DAI token DAI is a token designed for payment - purchasing security token, purchasing goods and services and so like. It's intended to match USD in value. Not fixing the supply cap, it is not itself an investiment candidate. @@ -454,44 +452,39 @@ Third, if secure protocols needs to be added, for example, an attestation from t #### Interoperatibility +Adding support for DAI itself is trouble enough, not to mention adding other payment side tokens. In the 2017-2018 frenzy, a lot of payment side tokens are invented and heavily invested in. Pretty much anything advertised not as a security token outlines some way their token can be used to pay or co-pay some goods and services. Electricity tokens, for example, is invented as the currency of the future tokenised electricity. Most of them are jokes, but what if they are put to work? Even if only 10% of these tokens are done by sincerer ICO teams, all of them would forsee similiar trouble as the integration of DAI token into the market. +And each payment side currency brings its own payment side logic. Take DAI for example, it has these payment side logic: -DAI token balance isn't immediately available to the DApps. +1. The creation of DAI tokens requires a set-up phase, called CDP. +2. The risk level of a CDP changes. Users should receive a notification of their CDP is at liquidation risk. We will cover such case again in the next chapter. +3. If the balance runs low, but the user has quite a bit of Ethers on his/her account, she may pause the checkout to top up before returning to the checkout. -t has a few additional features that we will take care of +An architect might read it here and decide these can all be done out of band. Just kick the user back to the MakerDAO website if any of these happens. This would not address payment side innovation like Point+Pay, where the points are selected at the same screen as payment. In fact, you can observe a proliferationDictionary of payment side innovations in China for examples: -1. The creation of DAI tokens requires a set-up phase. -2. It's needed to enquire a smart contract or cross reference another blockchain to find the balance. -3. The de-risking of DAI comes with a cost. The user +- Micro-credit (e.g. 花唄) and collatoralised credit -[Edit: describe how DAI works] +- Points to use when the shopping behaviour matches the encouraged behaviour of micro-credit, e.g. shopping overseas. -[Important to note that +- Cashback when you spent more than ¥1000 in a day. ---- +- Red packet that can only be used in paying consumption. -[Editor: the following served as an outline of the entire chatper and should be checked then safely removed now that the chapter is nearly fully written.] +- Lottery on being the 100th, 200th.. 600th payment. -Design requirements for a frictionless market +- Free shipping insurance on selected shopping behaviour (e.g. to encourage shoppers to favour drop-shipping as it loses advantage thanks to its slow delivery). -The TBML language has to provide: +- Prepaid online shopping payment cards, like the Alipay cards sold in Australia Post. -- Where to find the asset (which chain and what smart contract holds the asset) -- Vocabulary for token assets -- Methods to render and translate attributes in local languages -- Ways to obtain 3rd party information and a list of what 3rd parties are trustworthy. -- A superset of ABI information that informs users the purpose of the transaction. +TBML intends to give room for payment side innovation as well as deliverable side. Traditionally, partner support used to curb payment side innovation. American Express implemented points to pay API but after years only less than 5% of partner e-commerce websites provided this as a checkout option. -And it should be usable by: +#### Scalability -- The Dapp created by the token issuer; -- Any 3rd party Dapp that might use the token; -- A generic market not owned by the token issuer; -- Various user-agents, in rendering and using the assets in the wallet section of mobile and desktop wallets. +The payment and delivery may not be on the same blockchain. -We will proceed on addressing the need for "Integrating the Web" and come to a full picture of the design requirements of TBML in the following chapters. +Rendering user's balance in dapp website is briefly mentioned as a privacy issue a few pages back, but as blockchain scales, the dapp's server side may not have equal access to the client on some data like balance. It's possible that the website only observes the result of the transaction and happy to deliver physical or tokenised goods by rules. ---- +It's unlikely any scalability plan will not involve the participation of dapp browsers and wallets. They results in situation that dapps could not take care of the payment side with whatever advanced javascript they can supply. ## address the "Integrate the web" need @@ -664,6 +657,34 @@ The following picture illustrates the look of such a car token in the user's wal # The design of TBML +## Components + + +--- + +[Editor: the following served as an outline of the entire chatper and should be checked then safely removed now that the chapter is nearly fully written.] + +Design requirements for a frictionless market + +The TBML language has to provide: + +- Where to find the asset (which chain and what smart contract holds the asset) +- Vocabulary for token assets +- Methods to render and translate attributes in local languages +- Ways to obtain 3rd party information and a list of what 3rd parties are trustworthy. +- A superset of ABI information that informs users the purpose of the transaction. + +And it should be usable by: + +- The Dapp created by the token issuer; +- Any 3rd party Dapp that might use the token; +- A generic market not owned by the token issuer; +- Various user-agents, in rendering and using the assets in the wallet section of mobile and desktop wallets. + +We will proceed on addressing the need for "Integrating the Web" and come to a full picture of the design requirements of TBML in the following chapters. + +--- + We talked about the design requirements of TBML and let's step in closer to find out how would it work. ## Relate tokens to smart contract and tokens to web services From f127ba2b46e949cdd6b7135fa049ded8e0221399 Mon Sep 17 00:00:00 2001 From: colourful-land Date: Wed, 27 Feb 2019 22:39:02 +1100 Subject: [PATCH 063/598] car ownership token illustrated --- doc/design_paper.md | 69 ++++----------------------------------------- 1 file changed, 5 insertions(+), 64 deletions(-) diff --git a/doc/design_paper.md b/doc/design_paper.md index 403f9ba0..f2d151f6 100644 --- a/doc/design_paper.md +++ b/doc/design_paper.md @@ -121,70 +121,11 @@ Tokens seamlessly go across systems, carries their trading rules and user interf ## Example: Car Ownership Token -The following example, a car ownership token, is a successfully tokenised .... [Edit: explain the elements] - - +----------------------------------------------------------+ - | | - | Holden Barina 2012 Ownership Token | - | | - | Make: Holden Year: 2013 Colour: Black | - | VIN: KL3TA48E9EB541191 | - | | - | +--------+ +--------------------+ +------------------+ | - | | Open | | Authorise use | | List for sale | | - | +--------+ +--------------------+ +------------------+ | - | | - | +--------+ +--------------------+ +------------------+ | - | | Start | | Lend | | Auction | | - | +--------+ +--------------------+ +------------------+ | - | | - | +--------+ +--------------------+ +------------------+ | - | | Lock | | Transfer Ownership | | Collateralise | | - | +--------+ +--------------------+ +------------------+ | - | | - | +--------+ +------------------+ | - | | Locate | | List for sharing | | - | +--------+ +------------------+ | - | | - | Registration: | - | | - | +------------------------------------+ | - | | | | +-----------------------------+ - | | Issuer: Roads & Maritime Services | | | | - | | Rego: CJ41HL Expiry: 2017+12+03 | | +-> | Access rego attestation | - | | | | | | - | +------------------------------------+ | +-----------------------------+ - | | - | Holden Capped Service | - | | - | +------------------------------------+ | - | | | | - | | Issuer: Holden Australia | | +-----------------------------+ - | | Expiry: 2020-12-09 | | | | - | | Last served: 180 days ago | | +-> | Access Invoice Token | - | | (due for a service) | | | | - | | | | +-----------------------------+ - | +------------------------------------+ | - | | - | Insurance | +------------------------------+ - | | | | - | +------------------------------------+ | | Access insurance token | - | | | | | functions: | - | | Issuer: Qantas Car Insurance | | +-> | | - | | Start Date: 2017 12 30 | | | · Claim | - | | | | | · Lump sum discount payment | - | +------------------------------------+ | | · Upgrade / downgrade | - | | | · Suspend policy | - | Purchase: | | · Access Roadside Assistance | - | | | | - | +------------------------------------+ | +------------------------------+ - | | | | - | | Issuer: Manheim Auctions | | - | | Date: 2015+12+09 Price: $4724.83 | | - | | | | - | +------------------------------------+ | - | | - +----------------------------------------------------------+ +The following screenshot of a car token represents the final stage of tokenisation. + + +![A car token. Four tokens: Rego, Capped Service, Insurance and Purchase, either depeneds or relates to the car ownership token.](car-token.jpeg) + At first glance, it is just a handy portal to do everything about the car, including market functions and utility. However, it's not possible with the traditional web model. From 67906dfe19fc6ca3e47bf2fdce3c667adceda16c Mon Sep 17 00:00:00 2001 From: colourful-land Date: Wed, 27 Feb 2019 22:39:13 +1100 Subject: [PATCH 064/598] car ownership token illustrated --- doc/car-token.jpeg | Bin 0 -> 482331 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/car-token.jpeg diff --git a/doc/car-token.jpeg b/doc/car-token.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..4a5f3250e7583985df9d0b8ecfdb0fdfa0e3e452 GIT binary patch literal 482331 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�?Lu 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 TmW%qZ}1It@^U%*+<^ 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

PX2Yyf=QD@Sm4Smn9`oPSN^Lz0G#)89@ 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≈h6G%8?LJ|Q8xvzjennjA}^x?#AK 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 o*03;Yy* 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 literal 0 HcmV?d00001 From acd6e0e84afefbed81a530b10f1549cbed84d65d Mon Sep 17 00:00:00 2001 From: colourful-land Date: Wed, 27 Feb 2019 23:03:48 +1100 Subject: [PATCH 065/598] take in iphone purchase illustration and airbnb token illustration --- doc/airbnb.jpeg | Bin 0 -> 122190 bytes doc/design_paper.md | 111 +++-------------------- doc/purchase-with-shipment-token.jpeg | Bin 0 -> 399982 bytes doc/purchase-without-shipment-token.jpeg | Bin 0 -> 396684 bytes 4 files changed, 11 insertions(+), 100 deletions(-) create mode 100644 doc/airbnb.jpeg create mode 100644 doc/purchase-with-shipment-token.jpeg create mode 100644 doc/purchase-without-shipment-token.jpeg diff --git a/doc/airbnb.jpeg b/doc/airbnb.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6d4aee616f4ba0cd935e2d1c9a9f4b88dba53766 GIT binary patch literal 122190 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 literal 0 HcmV?d00001 diff --git a/doc/purchase-without-shipment-token.jpeg b/doc/purchase-without-shipment-token.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..9656a12828bc23d7201798790cb87f3683202eda GIT binary patch literal 396684 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