Sunday 23 October 2016

Sharing Economy

I just posted on my linkedin account some links about recent and upcoming ICOs.

This blog post is about what new currencies and tokens are possible. The main point about new currencies in the cryptospace is they allow microbilling because everything is realtime. The transaction between the buyer and seller can be completely fluid because we have no third party involved.

It is akin to a conversation - the buyer and seller are interacting.

Example of how new currencies can be used -

1. Mobile phone payments - pay as you go now works on a "top up" but with blockchains we can organise realtime billing and debits are done exactly as you use your phone with a token billing system.

In effect you have a wallet with phone-tokens and as you use services they are billed.

2. Electricity - smart meters can bill as you use electricity - no more top-up based on a discrete transaction but realtime billing.

3. Taxi rides - billed not at the end but as you actually travel - no surprise bill at the end of the journey.

4. Water rates - as you use.

5. Taxes - taxed as you incur tax liability.

6. Salary payments - as you work - not at the end of the month. You are paid immediately a minute of work is done.

7. Interest on bank accounts - earn money as the money is invested into the bank - by the minute.

8. Web Hosting - billed as you use it.

9. Landlines - billed as you use them.

10. TV subscriptions - actually all subscriptions - billed as you use them.

The list is almost endless - an economy based on pay-as-you-go: realtime processing; distributed power and currency.

Thursday 20 October 2016

MSc Digital Currency

I am  studying the free course at the University of Nicosia. This is also part of the MSc program run by the university.

Saturday 15 October 2016

Reputation Systems & Ethereum

I have been reading more about possible implementations, and a key aspect is removing Amazon etc from the equation.

If we consider that today Amazon sales are significantly made up from marketplace sales, and ebay of course is a platform bring buyers and sellers together, then the reputation system would in effect create a trust factor for the buyer and seller.

The design would be to connect a buyer and seller together directly via a P2P network without amazon etc in the system. A reputation factor would determine the safety of the transaction.

Solidity

Here is some code from ether.fund:

contract Ballot {
    // Create a new ballot with $(_numProposals) different proposals.
    function Ballot(uint8 _numProposals) {
        address sender = 0x123; // msg.sender
        chairperson = sender;
        numProposals = _numProposals;
    }

    // Give $(voter) the right to vote on this ballot.
    // May only be called by $(chairperson).
    function giveRightToVote(address voter) {
        if (/*msg.sender != chairperson ||*/ voted[voter]) return;
        voterWeight[voter] = 1;
    }

    // Delegate your vote to the voter $(to).
    function delegate(address to) {
        address sender = 0x123; // msg.sender
        if (voted[sender]) return;
        while (delegations[to] != address(0) && delegations[to] != sender)
            to = delegations[to];
        if (to == sender) return;
        voted[sender] = true;
        delegations[sender] = to;
        if (voted[to]) voteCounts[votes[to]] += voterWeight[sender];
        else voterWeight[to] += voterWeight[sender];
    }

    // Give a single vote to proposal $(proposal).
    function vote(uint8 proposal) {
        address sender = 0x123; // msg.sender
        if (voted[sender] || proposal >= numProposals) return;
        voted[sender] = true;
        votes[sender] = proposal;
        voteCounts[proposal] += voterWeight[sender];
    }

    function winningProposal() const returns (uint8 winningProposal) {
        uint256 winningVoteCount = 0;
        uint8 proposal = 0;
        while (proposal < numProposals) {
            if (voteCounts[proposal] > winningVoteCount) {
                winningVoteCount = voteCounts[proposal];
                winningProposal = proposal;
            }
            ++proposal;
        }
    }

I am interested in building a trust system and voting will be a part of that. I am unsure how currently a node can access data relevant to an external contract. Ethereum.org states that voting is possible using Ethereum. They also talk about a concept of Liquid Democracy.

I googled this and found a useful site talking about some of the issues - stackexchange.


A video follows which has some details about TrustDavis and a Reputation Systems (Farmer & Glass):




Friday 14 October 2016

Business Models for Ethereum

I was thinking about this and I think the electoral one could work.

To start this we could have an opinion based at a local level, so people may put their views forward on key local issues.

Democracy and Ethererum.

Thursday 13 October 2016

Programming Languages (Ranking)

I saw this interesting graph showing how Javascript is very popular. I included this because it shows how a small range dominate the whole spectrum.


Learning Ethereum

My Learning Journey


I started learning about Ethereum recently after visiting a conference in London. I am using the blog to keep a record of what I am achieving. I in the 1990s worked a little with cryptography which is an old subject but the new applications are very interesting.

Ethereum, I think, could and probably will be very significant. I have been thinking about training and Ethereum, and I came across MIT offering a course entitled:  Fintech Certificate Course: Future Commerce. The training fee is 2600 dollars which I working out if I can afford that.

I also working through some Crptography points using a Dapps for Beginners page.

Points about what I am learning will be listed here. It helps me keep track of what I am learning. I am using this blog as a notepad in some respects.

I signed up for the Ethereum Form.

NOTES FROM DAPPS FOR BEGINNERS 



Public Key Cryptographically


We have two types of keys - pubic and private.

Public Key


  • Encrypt data by anyone.
  • Verify signed data (signed by a private key).


Private Key


  • Usable by a private owner to decrypt data.
  • Used to sign data which is then verified by a public key.

Crptographic Hash Function


This function takes data of any size and maps to data if fixed size.

  • Output may not reveal the input.
  • Small input variations produce large output changes.
  • Hash function is needed to calculate the hash.
  • Low probability two inputs will produce the same hash. 

Crypto Economic Technologies


Blockchain

The blockchain is a database connected to a decentralised consensus network. It is updated in blocks which are chained using hashes. It has all the current data (state) and historical data (transactional history). 

A private key signs transactions or requests a change of state.


Proof of Work

This is a task which requires the proof of work function to find an element of data which produces a hash which is supplied. A hash derived from arbitrary data and a second element of data is supplied, and the task is find the second element of data from the hash by iterating through all the combinations.


Ethereum Virtual Machine


The EVM reads and writes code and data; verifies signatures. It runs in a quasi-Turing manner. It runs code only when a message is verified by a digital signature.


The Decentralized Consensus Network and the Generalised Blockchain


Every peer under ethereum has the same copy of the blockchain and each one runs an EVM to main and alter the state of the blockchain. A new block requires all peers to undertake a PoW. Consensus is achieved by accepting the longest chain by distribution of a cryptographic token of value - which is called ether.

Development Environment


Three key software products -  Mist and Mix.

Mist


Dapp Browser with mining client.


Mix


IDE - build and debug contracts.


Programming Languages


Serpent & Solidity are the two important ones.


DApp


DApp: Front end (html) and a backend (database).

The front end uses bootstrap and CDNs and is like a normal website in this respect.


NOTES FROM - 101 Noob Into to Programming Smart Contracts on Ethereum


Link 


Solidity

Major programming language for writing smart contracts.

Solium


npm install -g solium


Truffle & Embark


These are two relevant frames for developing DApps.

$ npm install -g embark-framework grunt-cli


















 



 

  



Fintech certificate course: Future Commerce