Chapter 3. Planning Your BaaS Use Case

There are countless use cases for BaaS in business. In this chapter you will learn how to analyze your own use case and how to determine whether your proposed application is right for blockchain and/or BaaS. We will also review five real-world use cases in Chapter 6. We’ll also define the three most critical components of a blockchain network (participants, assets, and transactions), discuss smart contracts and how they are crafted, explore ways to put the right programming team in place, and examine when and why your organization might consider building its own BaaS.

Participants, Assets, and Transactions

Analyzing your use case is the first step in determining whether or not a certain technology is the right solution for your business. A great way to begin this process for blockchain applications is to determine the participants, assets, and transactions for the case. In Figure 3-1, you can see these three basic elements and how they interrelate. Information about participants, assets, and transactions is very helpful when providing project requirements to a developer, along with the business logic that will drive your smart contracts.

Identifying participants  assets  and transactions for your use case is a first step in planning your blockchain network.
Figure 3-1. Identifying participants, assets, and transactions for your use case is a first step in planning your blockchain network.

Participants

Participants are the people and systems generating transactions within the blockchain network. For example, in a produce supply-chain network the participants might be defined as the farmer, the distributor, the warehouse manager, the logistics company representative, the long-distance trucking company dispatcher, automated equipment inside the truck, the truck driver, the local delivery truck systems and driver, the store’s dock manager, and the produce department’s manager.

You can include as many participants as needed. Since in business it is not always practical for each participant to have their own node in a blockchain network, the participants may be grouped into logical units called organizations. Multiple participants often share an organization’s node. In most business applications, the participants won’t even know they are using blockchain.

Assets

An asset is a type of good that has some value, and its activity can be recorded on a blockchain. If we built a blockchain application to track vehicle ownership, a car would be an asset. If instead our blockchain tracked individual auto parts, each of those parts would be considered an asset.

In a cryptocurrency application, a digital token used as currency is an asset. A participant can own the currency, see it inside a digital wallet, and transfer the currency to a different participant. By contrast, in a business blockchain application tangible goods and corresponding documentation are represented as assets, and there is likely no cryptocurrency involved at all.

In our produce supply-chain example, the primary assets are units of produce. When a unit of produce is delivered to the store’s loading dock, the asset (produce) is transferred from the truck to the store. This then triggers payment from the warehouse. All of the other business interactions are also programmed to be tracked.

Other items involved in an exchange, like import/export certificates and money, may also be tracked as assets.

Transactions

Transactions are generated when participants have some impact on assets.

A workflow generates a transaction which is evaluated by a smart contract. Then the new block, containing one or more transactions, is added to the blockchain network. In the case of our produce supply-chain network, we might record a transaction when:

  • The farmer harvests the produce.

  • The produce is loaded onto the courier.

  • The produce is in transit, if IoT devices such as temperature sensors are triggered.

  • The shipment is received at the warehouse.

  • The warehouse loads the shipment onto local delivery vehicles.

  • The shipment is accepted by the dock personnel at the store.

  • The shipment is unpacked by produce department workers.

  • The shipment is invoiced.

  • The courier and farmer are paid.

Begin gathering requirements for your blockchain business case by defining these three elements. For more information on identifying your own participants, assets, and transactions, review the use cases in Chapter 6, where we identify these elements for five use cases.

Smart Contracts and Business Logic

Think of smart contracts in terms of how you want your participants to be able to handle assets, and what constitutes a transaction.

For instance, let’s say a customer service representative at a manufacturer is on the phone with an important client who is upset about a shipment they say has been scheduled to arrive late. The customer service rep opens their dashboard and sees the status of the shipment. The rep clicks a button that says Trace Contract, and it is revealed that a holiday weekend has delayed the shipment. In this smart contract, it is stated that the customer has to approve an additional fee for the courier in order to avoid delays caused by holidays, and that the customer did not give this approval. The smart contract states that the default for “no customer approval” is to deliver the next business day, so it is transparent to the network why the delivery was not made on the holiday.

Because of the smart contract and the transactions recorded on the blockchain, the customer service rep can quickly pinpoint why the shipment is perceived to be late and provide verification to the customer. Without a system like this, the rep could spend a lot of time trying to track down the reason for the delay. Since a smart contract can also drive payments, such a system also reduces the chance that invoices could sit unpaid on someone’s desk due to contractual misunderstandings.

When legal agreements are automated with smart contracts, it causes systems to apply agreements in a fair, unbiased, and consistent way, which reduces risk for business-to-business transactions. This raises questions as to how business might change as a result, since paper contracts often sit in a file drawer unenforced, while the individuals running the day-to-day operations set the actual procedures. Smart contracts make all parties more aware of, and accountable to, their formal business agreements.

Rules and regulations that impact companies, such as labor laws, taxes, and import/export laws are at present very difficult to interpret. Businesses are presented with long, dense lists of rules, and it takes a legal team to figure out which ones even apply. Companies set budgets for anticipated fines, because compliance has become so onerous. With blockchain, legal teams can use smart contracts to proactively ensure that business processes will be in compliance with applicable regulations.

Since smart contracts contain the business logic needed to commit a transaction, some of that logic can be specific application of laws and regulations. Without these smart contracts, regulated organizations have to wade through volumes of laws to even figure out which laws apply to their company. Then the business has to figure out when and how the laws apply, and modify this for variables such as the company size, market, products sold, geography, and so on. For some variables, additional laws might apply. Once governments supply regulatory logic for smart contracts that automatically apply all of these rules, organizations can proactively avoid noncompliance. This could eliminate fines, reduce audit expenses, and open up a major opportunity for competitive advantage across many industries.

Do You Really Need Blockchain?

Like other new technologies, blockchain has been criticized as a solution looking for a problem. While this may be true to some extent, the flip side is that blockchain and BaaS give you opportunities to solve old problems in new ways. To answer the question of whether your business really needs blockchain, consider the following points.

Multiparticipant Workflow

If you’ve analyzed the situation and you only have one participant—or all of the participants work for the same company—chances are you don’t need blockchain, and a centralized database will suffice.

If your workflow involves a network of participants both inside and outside of your organization, blockchain could be a good fit to help track, trace, and audit transactions shared among the parties.

Detection of Tampering and Corruption

Is one of your requirements to be able to prove that your data has not been tampered with or corrupted? This is the essence of blockchain. Figure 3-2 shows how an original block of data contains a hash reflecting the contents of that block. If even the slightest change is made to the data stored in the block being inspected, recomputing the algorithm used to create the hash will result in a different hash. If the hashes no longer match, the block should be flagged and the blockchain node should stop working.

How to detect block corruption or tampering
Figure 3-2. How to detect block corruption or tampering

Audit trail

Once blockchain’s manner of recordkeeping becomes accepted within the legal system, it could be that a blockchain audit trail may one day have more weight than other types of logs and ledgers. Eventually, auditors may be participants in the network, and government agencies may contribute law logic to smart contracts, and possibly prefer and accept only blockchain for some types of audits. Consult your own auditors and legal advisors for their opinion about using blockchain as an audit trail.

Do You Need BaaS?

Chances are, if you are developing a blockchain application, a BaaS will simplify deployment and maintenance. Some advantages of BaaS over manually implementing a blockchain platform:

  • Ease of distribution

  • Lower total cost of ownership

  • Low risk, subscription-based service

  • Outsourced infrastructure

  • Ease of patching, upgrading, and monitoring

  • Building confidence with a brand name

  • Manageable transaction volume and bandwidth

  • Enhanced security, including management of IDs and certificates

  • APIs supporting a wide range of system integrations

  • Customer support

  • Wider community

Working with a large number of nodes in a blockchain network is a challenging job for a developer. Because of maintenance, security, and privacy factors, a developer needs advanced knowledge of how the blockchain system functions. Subscribing to a BaaS can simplify these issues for a development team.

However, BaaS is typically not cheap—especially when compared with free blockchain platforms like Hyperledger Fabric and Ethereum. You will pay for the brand name and the team behind it. With BaaS there is also typically a per-participant fee, so consider the number of participants you will need when discussing BaaS pricing with a potential provider.

If the platforms are based on the same technology, it may be possible to develop a blockchain application on a free platform and then import the files into a BaaS for deployment. For instance, Hyperledger Fabric can be used to develop early prototypes of a blockchain application and then can be deployed to the IBM Blockchain Platform, which is based on Hyperledger Fabric. (We’ll discuss building your own BaaS in more detail later in this chapter.)

According to Deepak Bhatta, chief technology officer of Kilroy Blockchain, who developed the Kilroy Blockchain Platform, “When we create a BaaS, it is supposed to easily plug and play with existing or newly created applications. If the BaaS is used in an enterprise application then there are chances of getting thousands of transactions per second. If you are a developer of a blockchain application, using a BaaS will make it easier for you to manage transaction volume and bandwidth.”

Building the Right Development Team

BaaS platforms include starter code for smart contracts through code repositories. Smart contracts are typically written in standard development languages such as Golang, Java, JavaScript, and Solidity. Because of this, it may be a good idea to select your BaaS before assembling or training your development team.

Smart contract logic is simple and clean in comparison to a lot of other types of development, and is similar to the development of microservices. So if you already have a good development team that programs in another language, they can likely learn to develop smart contracts in a language supported by your BaaS. At a minimum, make sure all of your developers understand the foundations of blockchain. You will need at least one full-stack developer that understands both network architecture and programming.

I asked Deepak Bhatta about the special challenges associated with training developers in blockchain. He replied: “Developers have trouble understanding how a decentralized application like blockchain works, where the data exists, and how authentication occurs. Developers mostly working in a centralized client server architecture will try to relate blockchain with databases like Oracle and MySQL. Since the concepts are so different, a developer needs to learn how blockchain functions, from end to end.”

Deepak continued, “Developing a blockchain solution is not an easy job because of the lack of a mature community and resources.” Since open source developers often rely on the community for answers, this can slow some projects down, and is one more reason why you should keep initial projects simple.

Finally, it is very helpful to have some experienced guidance for at least the first project. Find a senior architect/developer who is experienced in your BaaS of choice to consult with your team. Development outsourcing and support is generally available through the BaaS provider or one of their partners.

Adopting a Prebuilt BaaS Versus Developing Your Own BaaS or Blockchain Platform

If you already have an adequate budget, you can consider the option of completing and managing your own BaaS, built from the ground up using a blockchain platform. This would mean that your organization leads the development efforts on a decentralized application.

Or, you might even want to take this to the next level and develop your own blockchain platform, then serve it through your own BaaS. Most likely, this approach will be taken by giant organizations or by industry consortiums. A prebuilt BaaS is an extremely useful way to develop early prototypes and proof-of-concept projects because it lets you experiment quickly with the lowest commitment for systems expertise and resources.

In deciding whether to choose a BaaS or a SaaS with blockchain, or to build your own BaaS, consider the total cost of ownership—not just the monthly subscription fee. While the concepts behind a blockchain network are fairly straightforward, the technology can be complex, and a variety of skills are required to implement and maintain a blockchain platform without the help of a BaaS or a SaaS with blockchain.

When to Build Your Own BaaS or SaaS with Blockchain

If your network is large enough or unique enough to support creating your own platform, and you want to provide a certain set of business functionality to the network, you need to build a SaaS with blockchain. This means that your software is used as a cloud application by your network of users. Blockchain interaction would be triggered by the SaaS and other applications. In this case, you are using a centralized application with touchpoints to blockchain, which is decentralized and distributed.

You could do something like Walmart has done, and build a SaaS with blockchain that your suppliers are mandated to use. However, be aware that “owning” a blockchain network is sort of an oxymoron. By its nature, a blockchain network is supposed to be decentralized. No one is supposed to own it and no organization should have central control of identity management. However, this type of fully decentralized identity management is still being developed and is not yet practical for permissioned networks. In the meantime, using centralized identity management can make it practical to set up and test blockchain networks.

If you are making decisions for a government organization, you might want to build your own BaaS or SaaS with blockchain. Consider starting public-private partnerships that are documented on blockchain. For instance, an entity like the Government Supply Agency (GSA) deals with suppliers of all kinds as well as the US government. Perhaps the suppliers’ relationship with the GSA could begin with cooperative participation in a blockchain network. Every interaction could be tested by smart contract and built on the blockchain, which would develop a transparency heretofore unseen in government contracting.

Summary

In this chapter, we explored how blockchain use cases can be broken down into three primary components—participants, assets, and transactions—and how transactions are governed by the business logic included in smart contracts. Analyzing a blockchain use case in this manner makes it easier to communicate new blockchain project ideas to a blockchain programmer. We also looked at how competing organizations can use blockchain to keep competitive data private, while sharing data that benefits the common good.

We then discussed ways to build a blockchain development team, and the skills team members should have. Finally, we covered the criteria for deciding whether to build your own BaaS, SaaS with blockchain, or even your own blockchain platform. Keep in mind the warning about first checking with your legal counsel if the project you are planning involves cryptocurrency or any token that might be considered a security.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.22.248.208