Overview

On March 15, 2017, the Microsoft Tech Community hosted anAzure Blockchain AMA. The live hour of Q&A provided members the opportunity to ask questions and voice feedback with the product team. We hope you join us live next time!

Resources

  • Microsoft Blockchain as a Service
  • The original whitepaper that started Bitcoin
  • Introducing Project 'Bletchley' paper
  • Bletchley Cryptlet Deep Dive paper
  • Bletchley v1 - Azure Quickstart template
  • Bletchley v1 - blog post
  • Bletchley v1 - deep dive paper
  • Trade Finance Demo Video
  • Ethereum whitepaper
  • Introduction to Smart Contracts
  • Solidity extension for Visual Studio

Topics

  • Introduction
  • General Discussion
  • That's a wrap!

Introduction

Welcome to the Azure Blockchain Ask Microsoft Anything! View the list of introductions in this thread.

General Discussion

Q: What is the “ROI“ for blockchain projects in terms of Azure costs? To what workload on Azure is BaaS comparable in that regard? From cash cow to PR stunt, where does Microsoft stand in terms of Azure consumption/costs for BaaS?(thread)

A: We have some great assets in Azure to support Blockchain like KeyVault. As Blockchain solutions are built out, we see other ways Azure can support the solution, like Analytics for post ledger processing. Blockchain is part of the technology supporting the solution, and can't do everything end to end. We are also seeing some interesting use cases forming with IOT and Blockchain in Insurance.

Q: I'm the new IT Consultant at a State Public Archives Agency. We are in the middle of deciding to move to Azure/AWS/IBM, and because we are already in the MS ecosystem locally, I'm leaning hard for Azure. What I'm wondering is, can we leverage the BaaS that you all provide to handle an automation like retention/destruction schedules, or is it more prudent to simply rely on DB Retention Polices that are probably already present in the various DB services Azure offers?Have any of the BC team members seen BaaS used in other Government Archival scenarios? Are there case studies available?(thread)

A: Blockchain in itselfis not an Archival System. It could supplement an Archiving system by ensuring that documents have not been tampered by hashing the content.

Q: Is there a follow on documentation to Azure Blockchain service document to show how to setup the private blockchain between couple of organizations?(thread)

A: We are in the process of releasing an updated version of the multi-node consortium solution to support setting up networks across organizations. In other words, this new solution will allow more than one company to setup a blockchain network with each other. The solution will be coming out very soon.

Q: Can you elaborate on how blockchain can help eliminate corruption in governments? (thread)

A: Outside of fixing human behavior, Blockchain can be used to keep a tamper proof record of financial transaction that is much easier for auditing after the fact. So, if an RFP is taking place, all of the negotiations and contracts could be digitized and recorded there. Unfortunately, I don't see it fixing what individuals could do outside of the transaction, but where there is a signing and record kept it could help. One of the differences between how blockchains operate versus traditional centralized systems is that information stored within it is more widely accessible by virtue of how its distributed. Lack of transparency and easy/practical access to records is one of the things that helps government corruptionand this is something moving to blockchains can help with.

Q: Can we get some idea of when Cyptlets will be in private/public preview?(thread)

A: Unfortunately, at this time, we can't disclose dates around release of Cryptlets. That said, we are working on this functionality and are identifying customers to participate in private previews. If customers are interested in getting early access, let us know.

Q: I'm a developer working in a company that's interested in deploying blockchain solutions in Poland. We'd be interested in providing the cutting edge and therefore would like to participate in private previews that you mentioned. Where should we direct our communication? What kind of prerequisites should we satisfy to be considered?(thread)

A: Feel free to reach out to the team directly. That said, we are looking for customers who are pushing for pilot, pre-production, or production solutions using blockchain. These solutions need to be focused on customer business scenarios and should not be experimentation POCs.

Q: I am interested to know if there is some certified educational program from Microsoftabout Blockchain Technology?(thread)

A: We don't have a formal program yet. Blockchain Solutions running on Azure can use a lot of services outside of the Blockchain VMs - like KeyVault, IAAS, and Networking. I would use one of the existing Azure Certification programs as that would be a great starting point. I would then use the Blockchain offerings we have in Azure to build out POCs for building Smart Contracts.

Q: I would be interested in hearing about your experience relating the concept and importance of blockchain to non-tech customers. Do they understand the value prop? Or are they interested only because of the "buzz" around the topic?(thread)

A: The key thing I've learned is to understand the audience and their knowledge level. If they are non-tech, I spend more time on exploring use cases. Take the current process and show how it can be transformed with Blockchain. This can make it real. For many of my customers they see this as a huge threat and opportunity at the same time so I'm spending less time now on the value prop than I was a year ago. Most of my customers want to understand now how they can start on the journey.

Q: I have been keeping track with the development work that is being done the on the Ethereum Blockchain. However, I was curious if you see Microsoft using or developing on any of the other blockchains such as Monero or Rootstock? (thread)

A:We currently support various blockchain protocols in addition to Ethereum like Chain, R3 Corda, Quorum etc. and are working to add support for many more in the near future.

Q: What time of framework and tools are being developed on Azure for developers to easily create DAPPS, compile, test and deploy contracts is Microsoft currently working on or have available. Anything similar to Consensus Truffle?(thread)

A: We already havevisual studio support for Solidity(Ethereum) available and have plans to develop more tools and frameworks that improve the developer experience when creating DAPPS and interacting with the blockchain. We have ideas and are evaluating the needs of the dev community in this space so please share ideas you have.

Q: Do you have a plan scalability (billions of users connected talking to IoT devices) such as Merkle Tree root hashing within some kind of data anchoring solution to the blockchain while offering software driven solutions offline that link to some kind of blockchain identification through a PKI?(thread)

A:Yes, we do this today through partners - for example Tierion and GuardTime. This is a great pattern for scaling with blockchain.

Q:Is it possible to use C# as the scripting language for Ethereum/Smart Contract?(thread)

A:For Ethereum specifically, the big requirement is that your programs compile down to Ethereum Virtual Machine (EVM) opcodes. Theoretically there's no reason you couldn't write a C# compiler for the EVM, though you wouldn't have access to a lot of the standard libraries due to additional limitations of the system - a big one is that all code has to be nondeterministic, because if different nodes get different results, you will have a consensus failure. Right now, the major scripting language for Ethereum smart contracts is Solidity, which is syntactically similar to JavaScript. Research is ongoing into other languages that target the EVM. If you're interested in using C# in a blockchain context, the Nethereum libraries work well for integrating traditional C# programs with an Ethereum deployment. In the future, you will also be able to use C# as the language for Cryptlet development, enabling you to perform off-chain computations in C# and writing blockchain transactions as a standardized data object.

Q2: I'm not very clear why a JavaScript-like language would do, yet C# can't? Since C# is my first language, I would prefer it to be where I should be coding. Ethereum is open source, right? So that maybe we can just start to get C# in it, as early as possible. Is there good paper/documentation regarding EVM/opcodes and their distribution model, from a programmer's perspective?

A2: There's nothing a JS-inspired language can do that a C#-inspired language can't - it's just a function of where existing smart contract languages have taken their inspiration. I think the Solidity devs wanted to target web developers for DApp development, so making something that looks like JS makes sense. A good link to read over is the following. There's links to other smart contract development languages, including ones that have taken syntactic inspiration from Python and C. In addition, the "State Machine" section showswhat development at the EVM assembly level looks like. Ethereum is indeed open source, so there's no reason we couldn't develop a smart contract development language that's inspired by C#. Currently we don't have any plans to do so, but considering that many of our customers are most comfortable with C#, this may change in the future. If you'd like to get started, the best EVM opcode reference is in the yellow paper, appendix H. Make it open source, and we may leverage it in the future!

Q: Do we have any examples or SME's of blockchain in Healthcare? I’m looking for a distributed model with the HC devices as end-points.(thread)

A:We have some good use cases in development around allowing the Healthcare consumer to control how their medical records are shared across different health care providers and doctors. Factom and Tierion have offerings in this space.

Q: What is blockchain and how does it apply to the non-financial industry?(thread)

A: Blockchain is a distributed database where a consensus algorithm is used to settle on a single version of the truth. Everyone has a copy of the database and, depending on the implementation, may be able to participate in the consensus process. What you get is a very resilient, immutable database well suited to recording transactions between multiple parties. Outside of finance, it lends itself to anything where an audit trail is important, e.g. tracking provenance, supply chain management, etc. This is a great video that talks about the technology developed by the UK government, and the report they produced was also very good.

Q2: Will the blockchain not become "too large" at some point if every node has a complete ledger (audit record)?In banking and settlement, surely having billions of transactions a day will create a massive chain?

A2: Blockchains themselves are really not designed for high transaction rate applications - they are optimized for creating a reliable consensus within an untrusted environment. That said, there is a lot of work going on in this area. For example, moving work off the chain itself but maintaining a trust relationship (you'll see cryptlets mentioned in other posts) could help in this regard as well as bringing other benefits.

Q3: So, in finance - trading a share, each share has a blockchain, providing the single version of the truth; rather than a whole institution - which would aggregate lots of smaller blockchains?

A3: You also have to think about the "system" in terms of participants and who has a vested interest in making it viable / successful. For Bitcoin that's the miners who are financially incentivized to play by the rules. For share trading, it might be the financial institutions or (setting regulation to one side) you could envisage broader participation through stock market membership. Dividing-up the problem might help but fundamentally trading / retail systems are going to be a challenge. Aggregating transactions and shifting work off the chain (which processes transactions across all nodes and it thus very computationally expensive) could massively increase potential throughput. Whether or not it's enough for FTSE / NYSE though? There are plenty of applications that don't have such demanding transaction throughput requirements that lend themselves much better.

Size of the ledger is certainly a concern and it is possible that for high-throughput systems the ledger could be too large for a node to hold locally. That said this issue isn't unique to blockchains btw - it exists for any log-based system. I suspect we'll be able to use the same techniques to solve the problem here as we do for traditional databases.

There's work going on across the industry on sharding of the ledger, which would complicate the programming model but would enable nodes to participate in a subset of shards and thereby limit the data they need to store.

Another pattern that we've talked about is to use storage services like Azure Storage or Azure Data Lake to store older blocks. As blocks are processed and state updates are applied, the set of past transactions need not be accessed frequently - so they could be moved off to external storage.

Venture Beat has an article about how Blockchain may impact the music industry.It's a category rife with outmoded business traditions and middlemen but at a point where they are less central, due to innovation like Blockchain.

Q: I have seen the Bletchly Azure template and how to spin up a private Ethereum Blockchain in Azure... In the examples, you show how to transmit Ether between accounts. Are there any tutorials on how to write docs (i.e. PDF, Text Blocks, etc...) to the blockchain? (thread)

A:There is a demo that we have built around real estate transactions, which allow buyers and sellers to transfer home titles. We haven't released the code for the demo, but we are working on it. That said, at a high level there are several ways to accomplish your scenario. The easiest way is to represent the document as a hash and store the hash on the blockchain.

Q2: So, the hash of the data/doc is saved on the block-chain. Is it important to note/persist the block in which the hash was written in order to go back and validate(at a later time)? Or, is the hash searchable against the entire blockchain? Also, in the Bletchly example (private blockchain), when we spin it up and the miners are mining, we can see the block count increasing even though no activity is happening. What is processing those blocks in the background and what is going on? Is it just a handshake between miners saying we are in consensus (even though nothing may have happened)?

A2: The document does not have to be stored on the blockchain itself. You can essentially store the document elsewhere and represent the hash of the document on the chain. You can also ensure the representation of the document on the blockchain uses checksum to validate whether the document (outside the chain) gets updated or not.With respect to block counts increasing, essentially miners are always doing work and pushing blocks to the chain, albeit, blocks with no transactions.

Q: Does Project Bletchley or Azure in general plan to offer a privacy layer over Blockchain? While some application can leverage the benefit of distributed trust that a Blockchain solution inherently offers, they might need certain information visible only to certain participants of the contract. Does the Azure Blockchain team have on their roadmap a layer to allow private data to be shared over the blocks (in the likes ofQuorum)?(thread)

A:Confidentiality is definitely a requirement for most consortium scenarios, and is something that we on the BaaS team spend a lot of time thinking about. Quorum is already available in the Azure Marketplace as a single-VM template, with a multi-VM template coming soon. In the future, Cryptlets will allow you to perform off-chain computation that can be private to two or more parties, only writing to the ledger when necessary.

On the public networks, in the absence of fancy crypto like zero-knowledge proofs or homomorphic encryption (both of which incur time and space penalties), there is no way to prevent double-spending of tokens other than posting all transactions in the clear. Even if counterparties are using addresses and keys that provide anonymity, the basic details of the transaction are visible to the public, and the anonymity of the keys might later be unmasked in whole or in part in subsequent transactions. One option is to take transactions off chain, say using state channels. There are tradeoffs involved in this design choice as well - for example the requirement to commit enough resources to a state channel up front - which may require commitment of tokens that aren't spent in the end, and that could have been used as working capital elsewhere.

In the enterprise context, privacy gaps can preclude the use of blockchain for many scenarios and we have heard clearly from customers that they are looking for solutions. There is a lot of great work going on across the industry (e.g. Quorum's support for private transactions, Chain's support for homomorphic encryption, R3 Corda's ability to limit transaction propagation to counterparties with non-validating notaries). Many of these capabilities are either already available on the Azure Marketplace through partners or are coming soon.