Azure Blockchain
Author: Ronald Fung
Creation Date: May 11, 2023
Next Modified Date: May 11, 2024
A. Introduction
The Bitcoin blockchain is the world’s first practical example of blockchain technology. And because of that distinction, “blockchain” is often misunderstood as being synonymous with Bitcoin. However, modern blockchain technology offerings track digital assets other than a digital currency, and those blockchains work quite differently from the way Bitcoin’s blockchain works. Additionally, the Bitcoin blockchain popularized the notion that a blockchain is a data structure that virtualizes a bank ledger by tracking credits and debits while offering a creative, cryptographic solution that effectively bars the double-spending of cryptocurrency units. For this reason, the terms “digital ledger” and “double spend” became associated with cryptocurrency blockchains. Yet these terms, respectively, broadly apply to tracking ownership and enforcing a single transfer of digital assets. When you see these terms, don’t assume they refer solely to cryptocurrency-oriented blockchain technologies.
At its essence, a blockchain is a tamper-proof data structure that tracks something of value or interest as it passes from owner to owner. That “something” can be any kind of digital asset—such as a digital coin, a Word document or the serial number of a Microsoft Surface tablet. In fact, any item that can be associated with a unique digital fingerprint can be tracked on a blockchain. Blockchains solve the so-called “double-spend” problem by requiring that ownership of a digital asset be transferred rather than copied or shared. But what makes a blockchain technology interesting is that it establishes a protocol, enforces transaction rules, and is able to let the nodes on its distributed network of computers self-police the entire operation. And it accomplishes this remarkable feat with no central server or trust authority, speedily and globally (that is, internationally). This promise excites those who see it as a way to eliminate middlemen and reduce or waive transaction fees, making commerce more efficient for businesses and consumers alike.
B. How is it used at Seagen
As a biopharma research company using Microsoft Azure, you can use Azure Blockchain to build and deploy blockchain applications that can help you to improve data transparency, traceability, and security. Here are some ways you can use Azure Blockchain:
Supply chain management: Azure Blockchain can help you to track the movement of goods and raw materials across your supply chain, improve inventory management, and reduce the risk of fraud and counterfeiting.
Clinical trials: Azure Blockchain can help you to securely share and manage data across your clinical trial network, improve patient privacy, and ensure compliance with regulatory requirements.
Intellectual property management: Azure Blockchain can help you to manage your intellectual property rights, track ownership, and reduce the risk of infringement.
Data management: Azure Blockchain can help you to securely share and manage data across multiple parties, improve data quality, and reduce the risk of data breaches.
Payment and settlement: Azure Blockchain can help you to automate payment and settlement processes, improve transaction speed and security, and reduce transaction costs.
Overall, Azure Blockchain can help your biopharma research company to build and deploy blockchain applications that can improve data transparency, traceability, and security across a wide range of use cases. With supply chain management, clinical trials, intellectual property management, data management, and payment and settlement, Azure Blockchain can help you to streamline your workflows, reduce costs, and improve your overall business outcomes.
C. Features
The Bitcoin blockchain network is public—anyone can participate anywhere in the world. Yet newer blockchain offerings, such as the Microsoft Azure-hosted blockchain, can be configured as public, private or permissioned networks. Blockchains are considered to be decentralized, but that term requires clarification: As Vitalik Buterin explains (bit.ly/2tEUYyT), “decentralized blockchains” means they’re “politically decentralized (no one controls them) and architecturally decentralized (no infrastructural central point of failure) but they are logically centralized (there is one commonly agreed state and the system behaves like a single computer).” Decentralization offers fault tolerance, attack resistance and collusion resistance (the meaning of this will become clear when I discuss proof-of-work later).
Understanding how to engineer a public blockchain requires knowledge of cryptographic hashes, public key cryptography (PKC), binary hash chains (Merkle trees, in particular), and consensus algorithms. I’ll briefly review these concepts, and then I’ll show that a blockchain is a hash chain that contains a hash chain of transactions. Once you grasp this nested-hash-chain concept, you’ll understand blockchain technology’s fundamental design.
Cryptographic Hashes
While there are many one-way cryptographic hash algorithm variants, a popular choice is to leverage SHA-256 (bit.ly/29kkpft), a one-way hash function that accepts a message of up to (264-1)/8 bytes and returns a 32-byte hash value (64 hexadecimal characters) in the decimal range of 0 to roughly 1.16 x 1077. To put that number’s magnitude in perspective, a drop of water has about 5 x 1012 atoms; the observable universe is estimated to have in the range of 1078 to 1082 atoms. Tweaking any character in the message and re-computing the SHA-256 hash value generates an entirely new hash value. (To experiment, visit onlinemd5.com and set the file or text checksum type to SHA-256.)
Given the same input, the SHA-256 algorithm always produces the same fixed-length output. With respect to blockchain technologies, the value of using SHA-256 cryptographic hashes is that they’re unique enough to serve as a sort of digital fingerprint while also acting as a checksum. Furthermore, one-way hash functions can’t (as a matter of practice) be decoded. Consider the SHA-256 value for my name: 8F12D83BA54AC0EA7687AD4AFDE5E258BBFF970AA8D60C6588381784C502CA8E. Given that hash value, there’s no practical way to algorithmically reverse it back to my name. (One hacking technique leverages rainbow tables that list already-calculated hash values for common strings, such as “password”—but that’s not algorithmically reversing the hash. To thwart such exploits, it’s customary to embellish the string to be hashed by tacking on a random string, known as a “salt” value.)
D. Where implemented
E. How it is tested
Testing Azure Blockchain involves ensuring that the solution is functioning correctly, securely, and meeting the needs of all stakeholders involved in the project. Here are some steps to follow to test Azure Blockchain:
Define the scope and requirements: Define the scope of the project and the requirements of all stakeholders involved in the project. This will help ensure that Azure Blockchain is designed to meet the needs of all stakeholders.
Develop test cases: Develop test cases that cover all aspects of Azure Blockchain functionality, including deployment, management, and security. The test cases should be designed to meet the needs of the organization, including scalability and resilience.
Conduct unit testing: Test the individual components of Azure Blockchain to ensure that they are functioning correctly. This may involve using tools like PowerShell or Azure CLI for automated testing.
Conduct integration testing: Test Azure Blockchain in an integrated environment to ensure that it works correctly with other systems and applications. This may involve testing Azure Blockchain with different operating systems, browsers, and devices.
Conduct user acceptance testing: Test Azure Blockchain with end-users to ensure that it meets their needs and is easy to use. This may involve conducting surveys, interviews, or focus groups to gather feedback from users.
Automate testing: Automate testing of Azure Blockchain to ensure that it is functioning correctly and meeting the needs of all stakeholders. This may involve using tools like Azure DevOps to set up automated testing pipelines.
Monitor performance: Monitor the performance of Azure Blockchain in production to ensure that it is meeting the needs of all stakeholders. This may involve setting up monitoring tools, such as Azure Monitor, to track usage and identify performance issues.
Address issues: Address any issues that are identified during testing and make necessary changes to ensure that Azure Blockchain is functioning correctly and meeting the needs of all stakeholders.
By following these steps, you can ensure that Azure Blockchain is tested thoroughly and meets the needs of all stakeholders involved in the project. This can help improve the quality of Azure Blockchain and ensure that it functions correctly in a production environment.
F. 2023 Roadmap
????
G. 2024 Roadmap
????
H. Known Issues
There are several known issues that can impact Azure Blockchain. Here are some of the most common issues to be aware of:
Configuration issues: Configuration issues can arise when setting up Azure Blockchain. It is important to ensure that all configurations are set up correctly to avoid issues with deployment, management, and security of the solution.
Performance issues: If the system is not properly sized, it can impact performance and availability, causing issues with the speed and reliability of Azure Blockchain.
Integration issues: Integration issues can arise when integrating Azure Blockchain with other systems and applications. It is important to ensure that Azure Blockchain is designed to work seamlessly with other systems and applications to avoid integration issues.
Security issues: Security is a critical concern when it comes to Azure Blockchain. It is important to ensure that Azure Blockchain is secured and that access to the solution is restricted to authorized personnel.
Accuracy issues: In some cases, Azure Blockchain may not be accurate or may not apply to a specific use case. It is important to review Azure Blockchain carefully and validate it before taking action.
Compatibility issues: Azure Blockchain may not be compatible with all blockchain environments or platforms. It is important to ensure that Azure Blockchain is compatible with the organization’s existing infrastructure before implementation.
Scalability issues: Scalability issues can arise if Azure Blockchain is not designed to scale as needed. It is important to ensure that Azure Blockchain is designed to scale as needed to support the organization’s growth.
Overall, Azure Blockchain requires careful planning and management to ensure that it is functioning correctly and meeting the needs of all stakeholders involved in the project. By being aware of these known issues and taking steps to address them, you can improve the quality of Azure Blockchain and ensure the success of your project.
[x] Reviewed by Enterprise Architecture
[x] Reviewed by Application Development
[x] Reviewed by Data Architecture