...by Daniel Szego
quote
"On a long enough timeline we will all become Satoshi Nakamoto.."
Daniel Szego
Showing posts with label Trend. Show all posts
Showing posts with label Trend. Show all posts

Saturday, December 15, 2018

Notes on the skillset of blockchain architect



It is a common misconception that every standard software architect can become a blockchain architect with the help of a couple of weeks intensive education. This is actually far from the reality. Although designing a decentralized system on the blockchain requires some components and ideas from the world of the classical software architectures, blockchain system engineering requires more strongly the skills to design and implement complex cryptoeconmical systems. Among the others, the following fields must be covered:
- Designing for trust model
- Scaling the architecture based on fine-tuning the consensus or implementing off-chain scaling to the required trust model.
- Economically designing a one or more token architecture, like for stable usage tokens. 
- Designing crypto and privacy models, like with increased privacy as zero knowledge proofs or secure multiparty protocols.

As a sum up, a blockchain architect should have its competence only around one third from a software architect. The rest should be cryptography, pure economics, and of course a lot of blockchain specific knowledge.  

Friday, December 7, 2018

Notes on Ethereum WASM



Ethereum WASM is on the horizon, providing a more stable, flexible and faster programming environment. However introducing the technology might bring a couple of unexpected results. The problem is that with the help of WASM there will be many other languages available for Ethereum programming, apart from Solidity. The real difficulty in Blockchain programming is however not the programming language knowledge, but actually the mindset. As Ethereum smart contracts store a huge amount of money on a public blockchain and actually the deployed code is pretty much immutable, developing such a code requires special considerations. Instead of Agile or DevOps methodologies, defensive programming, formal versification and correct by construction tools should be used. For those who has actually never taken part in mission critical system development, these methodologies are new. The result will be that many software developers with WASM compatible languages will start smart contract development, which will cause again a huge amount of buggy software and a lot of hacks on the public chain. That will result that the general perception of the chain security will be again pretty low.   

Thursday, December 6, 2018

SLA with cryptoeconomical service guarantee


Service level agreements are important parts of every corporate infrastructure and for companies providing infrastructure or even software as a service products. Service level agreements provide at least a theoretical guarantee that if the service is not provided in a promised way, there can be something done. However to really do something if the SLA is not hold is difficult, starting a legal process might take years and cost a lot of money, finding a new provider and migrate existing services to the infrastructure of the new provider might again take month and can be pretty costly. 

A good solution can be however to introduce cryptoeconomical guarantees as insurance for a service, similarly as the Ethereum initiative Swap, Swear and Swindle does for off-chain computation and services. SLA parameters have to be formalized in an explicit and measurable way, and in case the service is not provided, the consumers of the service should be able technically, in a reliable way prove that the SLA was not hold. The service provider should make an insurance up to a certain amount of cryptocurrency that money is held online in a smart contract. Customers of the possible service providers might choose a provider not just based on services but on the fact how much it is cryptoeconomically secured, with other words how much cryptocurrency is locked as an insurance or security deposit in case there are problems with the service If a customer experiences problems with the SLA, an cryptogaphical proof can be generated for that, this proof can be validated by decentralized validators and in case the customer has right a certain amount of cryptocurrency can be transferred, up to the security deposit of the service provider. The whole process might run fully or  almost automatically, practically in minutes.     

Wednesday, November 28, 2018

Notes on AI and system complexitiy




Our IT systems, including software and hardware components are getting so complex that we need AI support for monitoring, maintenance, operation or even for development. 

However that AI support will not make our systems simpler and it does not help people to understand that systems better either. So on a long rung it will result in IT systems that can not be operated based on purely biological intelligence anymore, only with the help of AI, or purely with AI.

Architecting Blockchain platforms communicating with external data source


Integrating an external data-source with a blockchain solution is usually not an easy task. The major problem is that smart-contract systems can not directly call an external data source, because if different peers at evaluating the external data source see different pieces of data, they can not come to a consensus. So external data integration requires certainly solving some technological challenges. However even at considering the use-case and the general architecture, there are some questions that can be raised:
1.  Decentralization model of the blockchain: depending on the use-case, systems can be built up to totally public and consortium blockchains as well.
2. Trust model of the oracle: in certain use-case we might as well say that there is one trusted data-source, custodian oracle, that we trust. There might be the case however that we want to integrate data from multiply data-sources in a way that no single data-source is trusted. Such a system can be implemented with the help of a game theoretical approach, usually Schelling point, providing a fully decentralized oracle algorithm. Such systems are realized for example by the prediction markets, ike Augur or Gnossis. 
3. Trust of the communication medium: the communication medium is usually the internet that is pretty much untrusted, meaning that there is a need for both encrypting the data and preventing tampering, with like message authentication or authenticity proofs. There might be the case however, that we trust in the communication medium. As an example, if the oracle is an IoT source that is hosted by the same cloud provider as our consortium blockchain, we might as well can trust the communication.   


Friday, November 23, 2018

The raise of non custodian payment networks


As the world speaks about the blockchain and distributed ledger technologies a brand new field is being appeared that solves value transfer with a P2P network but either totally without a global ledger or involves a global ledger only as a part of the algorithm. Some of these technologies are called as Layer 2 solutions, but probably better to name them as non custodian payment and state networks and include the following platforms: 
- Lightning network
- Raiden
- microRaiden
- Liquidity network 
- Interledger Protocol
- Hyperledger Quilt
- Actually the R3 Corda platform has some similar possibilities as well


Monday, November 12, 2018

Notes on DevOps, agile development and maintenance cost


Surprisingly, techniques like DevOps and Agile did not actually make the software industry easier or user-friendlier. The facts of automated and regular software deliveries made certainly possible to adapt the software more frequently on the user requirements, however they made the maintenance and operation of the software more difficult. Simply put running a software that has daily delivery is not easy, but the biggest problem is that most of the software components do not run individually, but with the help of docent or hundreds further software and software modules together. If you consider that each of these software can be released on a daily basis and usually documentation is the last priority of these systems, it surely results an enormous cost in maintenance, if it is possible at all. 

On solution might be the appearance of the AI based software configuration and maitainance systems. I mean from a pure theoretical point of view, there might be the idea of making our software systems simpler, but to be realistic, that is not going to happen. 

Tuesday, August 14, 2018

Blockchain and cryptographical rolling hash


Blockchain solutions has one of the key advantage that they are pretty much hacking resistant, because of the chain of blocks and hashes that going back up to the genesis block. However, most of the applications do not necessarily require such a huge security guarantee, it is probably enough if data can not be hacked and consistent considering the last couple of months or years. On the other hand, there can be the requirement to delete from a blockchain solution or has the possibility to forget or modify data. On solution might be to design a blockshain platform where data is not hashed back to the genesis block, but only the last couple of like thousands of blocks are considered. Certainly, it is a question how such algorithm can be realized in a hacking resistant way. One solution might be to try to use instead of cryptographic hashes, a kind of cryptographical rolling hashes, where only a certain number of past values are considered as input.  

Sunday, August 12, 2018

The new divide of the information society

There will be a new divine in the information society between people producing information and people consuming information. As information can be simpler and more automatically produced every day, like with the help of massive online courses, chat bots, and different online platforms, it will be more and more information produced by less and less people.

Services will become more and more automated, meaning that more customer service will be carried out by bots or robots, resulting a cost factor saving in the employees and enabling fully automated decentralized companies. As an average customer it will be more and more complicated to fight through the bureaucracy of  bots and robots and get to a "living" person.

Monday, July 9, 2018

Estimating the cost of a Blockchain project


Estimating the cost of a blockchain project is pretty tricky, as there is generally not much experience in the field. Usually it is not estimated apriori because on the one hand there are a lot of unexpected technological challenges and on the other hand the requirements are unclear as well. For this reason usually there is no cost estimation at the beginning of a project but the project is delivered in an agile way starting with a proof of concept, continuing with a working prototype, which is followed by the fine tuning of both the requirements and the technological architecture. 

Anyway, blockchain projects usually have the following factors to be considered, most of them based on the architectural requirements of the project:

- Smart contract development: key element of the architecture is the smart contract, developing such contracts is more or less resource intensive. Like in case of a solidity, Ethereum development of the code itself is not too much energy, however a lot of efforts have to be put into testing, quality assurance and formal verification as the contract will be deployed into a public immutable ledger. 

- Blockchain infrastructure: at public blockchain platforms, the blockchain infrastructure both the live and the different test networks are usually configured. For consortium blockchains, the whole infrastructure has to be planned, configured and delivered, which might be a huge task. There are some initiatives however to speed up the infrastructure deployment of a consortium blockchain networks, like Azure blockchain from Microsoft or Chello project from Hyperledger

- Fronted or UI: Fronted and user interface is usually required for every blockchain application. It usually requires classical fronted development with javascript, HTML and CSS. There are experimental platforms however where you can speed up the fronted development. Like in Azure Blockchain Workbench, you can click together some of the UI elements, or in Hyperledger Fabric composer, where based on the business blockchain definition file, there is the possibility to automatically generate a basic user interface. 

- Storage: If storage is required, the major question is if it is centralized or decentralized. If it is decentralized, like in IPFS or Swarm, usually the smart contract developers manage this part of the development as well. If it is a centralized storage, like a classical file system or an SQL DB, the integration must be implemented. There are already frameworks which can speed up some blockchain integration with existing storage systems, like Azure Blockhain from Microsoft.  

- System integration: In enterprise blockchain application, exiting legacy systems, like databases, existing ledgers, authentication providers... should usually be integrated with the Blockchain. This can mean atomic swaps, or simply import - exports. Some enterprise blockchain systems already provide experimental services in this direction. 

- Non-technical roles: usually some management roles should be considered as well in a Blockchain project, like a project manager if the project is getting more complex, a Blockchain consultant and requirement engineer to fine tune the business requirements.  

Friday, July 6, 2018

Decentralized identity management and the blockchain


There are several attempts these days to put decentralized identity management on the top of the blockchain. However, these attempts have been failed mostly because there is no way to delete an identity information from the blockchain due to its immutable characteristics. One solution might be to create DLT solutions with the possibility to delete information. As an example, the solution might be to use a standard blockchain solution with state information but simply forget or cut the old transaction or states. A better option might be to design certain state variables with the deleting options. Unfortunately it is not so simple, because of the authenticated data structure of the hashlist. 

Friday, June 22, 2018

Blockchain as the next level of gamification


From an economical perspective blockchain and cryptocurrency based platforms can be regarded as the next level of gamification. With cryptoecomomical incentive structures it is possible to turn every kind of gamification, score or badge based systems into real measurable economical value. A well designed cryptoecomomical system is exactly what most of the gamification systems do: encourages and discourages certain patterns of behavior. 

Friday, April 13, 2018

Barriers of consortium blockchain adaptation


The biggest barrier and drawback of the consortium blockchain solutions should not be looked in the technology itself. Consortium blockchain solutions best suited in industry fields with many different actors and companies. Delivering a solutions to such an industrial field require the an efficient coordination between many different companies probably located in many different countries. Such a coordination require very skilled business analyst people and negotiators before the technology roll-out could be even started.  

Thursday, April 12, 2018

Directed decentralized evolution


Decentralized systems supported by, like blockchain or distributed ledger provide the way of creating systems in a self improved way controlled by some kind of a directed evolutionary algorithm. If we consider bitcoin and the mining evolution, the bitcoin protocol directly makes incentives for a directed decentralized evolution resulting the appearance of the more and more efficient and advanced mining devices. Another interesting example might be the cryptokitties application, in which the appearance of the different digital lifeforms are controlled by a market mechanisms. 

On public blockchains and open innovation


There are several business model in the blockchain space at the moment, like public blockchains that are pretty much controversially at the moment like from Ethereum and of course the Hyperledger that is carried out in a classical business way installing nodes at different consortium members and doing project management in a classical way. The major advantage is however for a public blockchain solution that it maximally supports open innovation. If you are a developer or a couple of developers, you can easily deploy your smart contracts or DApp to the open blockchain and realize revenue on that. Classical consortium blockchains are playground of the big companies, having classical sales channels, requirement engineering, project management and organisational structures. Such a construct usually kills every kind of a innovation.

If project Hyperledger or Microsoft Azure Blockchain wants to keep up with the exponential changing blockchain world they need to create at least semi public blockchains with internal tokenomics, at which even if the nodes are hosted by different consortium members, every developer has the potential to create and host his own DApp solution and has the potential to earn money with that. 

Hackatons do not support open innovation.
The possibility of creating DApp-s by developers and realizing cash-flow on that without worrying on infrastructure or any big enterprise structure does support open innovation.   

Saturday, March 17, 2018

Extended digital existence


As more and more digital service, especially services based on artificial intelligence appear in the in the support possibilities of an individual, it might make sense to redefine the human existence or the person itself. On a long run a person perhaps not only concentrated on the pure biological existence, but all of the biological devices and online algorithms might also be considered as part of the individual itself. In this sense a human being might be much more strongly related to virtual services, so tight that these services might become actually part of the existence itself. In this sense we might as well speak about an extended digital existence.   

Friday, December 29, 2017

The rise of the new technology elite


With the current trends and dynamics of changing technologies and business environments, old fashioned company leading techniques and management techniques simply do not have the chance. High tech companies can be only lead with a real hard-core, real high-tech and geek mindset with first case experience in the field. Any other strategy will simply not be able to keep track of the changes and define strategy even in a couple of years ahead. 

It works even with very simple examples, a software development methodology can not be efficiently lead by people who never ever wrote a piece of code. Similarly, infrastructure management can be efficiently managed by people who already did configure live systems and perhaps made outages as well. However, perhaps the best example is general software strategy: if you want to predict the next generation of IT services, you must simply have the first-hand, in-depth experience with a couple of technology changes. The situation is perfectly demonstrated by the fact that old-fashioned management schools offer technology oriented courses, like Artificial Intelligence in sales, or Big Data in Human Resources.   

notes on the increasing need of enterprise IT support

Our IT systems are getting more and more complicated every day. That is actually not a surprising fact, what is however more surprising that the possibility for getting support does not seem to keep up with the technology changes. As an example about 15 years ago installing an enterprise software meant to have something as a stable release, that is tested and runs more or less in a stable way with an install guide install software sometimes checking prerequisites as well. Nowadays the situation seems to be more complicated, probably due to the lean agile methodologies. 

There is not anymore something as a stable release, check the releases on git and try to install the version that you like. There is no real documentation about the prerequisites, there is usually a list of software that surely needed but which version is compatible with the software that you want to install is pretty questionable. If there is something as an install, it is usually a script which runs sometime but does not run in other situations and well if it does not run it is actually for you to edit and modify. And on top you find usually zero documentation, at most some Readme.md files or some hints with the repository or in social forums. 

Sunday, April 9, 2017

Emerging trend: Reporting under encryption, KPI under encryption


Reporting and big-data analysis has been having a hype phase in the last couple of years, however considering a system architecture point of view a reporting systems has a pretty big security hole it is because it aggregates different kind of a data from probably the whole company or from several companies. The data is processed and presented in a way for some end-users, however in most cases there is no detail analysis about the fact who can see what. It is usually not such a huge problem as we speak of one company (although the security hole is certainly given), however it will be pretty big cross company discussion if the data is coming from several companies.

As a solution there might be possible to use one of the emerging encryption technology that aggregates the data without actually encrypting them, like with the help of zero knowledge proofs, homomorphic encryption or secure multiparty protocols. In this way not all of the data is leaked only some kind of a specific result is presented.  Let we called the field as Reporting under Encryption or KPI under encryption.

Another solutions might be to heavily use information labeling and filtering identifying who should actually be able to see that kind of data or information. In this sense, the field should be rather called secure reporting and secure KPI-s.

Friday, April 7, 2017

Notes on machine intelligence and alien intelligence


I do not like the word "Artificial Intelligence" it clearly describes our efforts to create something that is copying or mocking the human intelligence. Well and actually AI has a lot of achievements ranging from automated cars to beating the chess wold champion, so we can surely say it is intelligence, however it is not a human one. It is something different, just like as an alien intelligence that is slowly emerging based on our work. I think the word "Machine Intelligence" describes the situation much better: It used to plan to copy the human intelligence, however we just got something fundamentally different.