Satoshi
224
Days
08 44 07
Introduction Purpose The purpose of this document is to provide a high-level technical overview of the Blocbit platform. It assumes that the reader has a basic understanding of cloud computing, decentralized applications, and blockchain technology. A list of resources is provided for those who would like to develop a foundational understanding of blockchain technology. Scope This document provides a technical overview of Blocbit, a blockchain ecosystem for building and deploying decentralized applications. It describes core elements of the service and provides details about the architectural design of critical components. The information in this document is intended for informational purposes only. Blocbit may make improvements or changes to the products, architectural design, or programs described in this document at any time without notice. Related Documents • Blocbit Official Website: https://blocbit.net • Blocbit Whitepaper: https://blocbit.org/whitepaper Overview Problems with Today’s Blockchains Blockchain technology is still in its infancy. There are many issues preventing developers and businesses from creating widespread, decentralized blockchain applications. Poor Performance Performance is one of the main challenges facing current blockchain technology. The blockchain that Bitcoin uses is designed to handle seven transactions per second, and Ethereum can only handle a few more. As of December 2017, a simple CryptoKitties application can slow Ethereum and increase transaction fees dramatically. Today’s consumer applications must be able to handle tens of millions of active users on a daily basis. In addition, some applications will only become meaningful when critical mass is reached. The platform itself must be able to handle a large number of concurrent users. A good user experience demands reliable feedback with only sub second delays. Longer delays frustrate users and make applications built on a blockchain less competitive with existing non-blockchain alternatives. Not Consumer Friendly Today’s blockchain applications are built for the few tech wizards who know how to use them, rather than mainstream consumers. Nearly all blockchain applications require users to either run a blockchain node or install a “light node." The learning curve and effort involved has delayed adoption among the general public. For example, while the Ethereum-based game CryptoKitties is probably the most user-friendly decentralized app ever built, it still requires the user to install the Metamask light wallet browser extension. Users also need to know how to buy ethers securely and use them with Metamask. To attract large numbers of people, blockchain applications need to be as simple as today’s web and mobile apps. Blockchain technology should be completely transparent to the consumer. Cost The extremely high cost of using blockchain technology is a major barrier to mainstream adoption. It also limits developers who need the flexibility to build free services. Just like today’s web and mobile apps, users shouldn’t have to pay for every minor action. Similar to the Internet, blockchain technology should be able to support free applications. Making blockchain free to use is key to widespread adoption. A free platform will also empower developers and businesses to create valuable new services they can monetize, rather than having users pay fees to use the blockchain network. Platform Lock-In As with the early days of any computing technology, blockchains have critical “platform lock-in” problems. Developers have to decide which blockchain to support, then implement platform-specific code that makes it very difficult to switch an application to a different blockchain later on. Developers don’t want to be locked into working with a certain blockchain technology. They need the freedom to evaluate, use, and switch between options. Some applications may even need to run on multiple platforms to provide the best user experience. Lack of Features People have high expectations for blockchain—the news media, evangelists, and journalists paint a bright future for decentralized applications for the public, especially with the increasingly high prices of cryptocurrencies. In reality, however, blockchain technology is still in its infancy. Most blockchain services lack rich features and don’t have a mechanism to encourage the community to contribute to the feature stacks. Blockchain protocols make them very easy to fork, and there's been a recent spike in forks created for various purposes. Unfortunately, forks typically only improve on the forked branch, splitting the community and computing resources. The incentive mechanisms for blockchains just aren't designed to encourage contributions to the blockchain tech stack yet. The Blocbit Platform Blocbit solves these problems through its revolutionary new design. Unlike its predecessors, Blocbit is a platform service, rather than a standalone software package or set of APIs. Blocbit is a comprehensive solution that combines blockchain technology with Cloud Computing. Blocbit is an incentive-driven labratory for reusable services, components, and even applications.  Every user is a “miner” thereby adding valuble computing resources that help to mesh the platform together.all code is opensourced providing reusable components, new services, and even ready to deploy applications. People who contributed resources or services will be rewarded with a daily vote. Votes are pledged to concepts to form a positive, self-growing platform that continues to evolve on its own. The Blocbit platform service isn’t our creation alone. It’s developed by the entire Blocbit and Zeronet community—we’re just kick-starting a new blocchain revolution. Blocbit’s introduction of the blocchain template  enables open connectivity between multiple blocchains. Developers now have the freedom to take ownership of their own blockchains with the fredom to choose weather they would like to maintain the link original link or go off on thier own, or even interconnect them periodically. The blocchain makes it easy to implement new blockchains as the technology evolves. It eliminates the platform lock-in issue and enables applications to run on multiple blockchain fabrics, vastly improving the developer and user experiences. Bloclets are another revolutionary component that takes advantage of the latest microservice architecture and serverless computing technology. Bloclet is a high-level application protocol that can be implemented with any platform or language. It leverages the full capacity of the native platform and offers the same level of performance, rather than running on a low-performing virtual machine. Bloclet does more than access blockchains. It connects to any existing data source, and performs both on-chain and off-chain computing. Our unique design aims to provide a high-performance, user-friendly, cost efficient, and protocol-agnostic platform. We believe that Blocbit represents a major technological advance that will usher in the 3.0 generation of blockchain applications. Fig: Road map toward Blockchain 3.0 Blocbit’s Advantages In addition to solving the common problems outlined above, building and deploying decentralized blockchain applications with Blocbit has significant advantages over the vendor-specific frameworks available in today’s market. Built for an Award Economy Blocbit is a self-evolving ecosystem—not just a software platform built by one centralized organization. We at Blocbit are only jump starting the project; the platform will continue to develop and grow on its own. The entire Blocbit service is driven by an Award economy. Rather than a basic service platform, Blocbit is an economy driven by grand incentives that encourage the blockchain community to work together daily to build a better ecosystem. Optimized for the Best Experience We built the Blocbit platform using a “top-down” strategy that centers on the user experience. In contrast, many existing solutions focus on the blockchain technology itself at the expense of user friendliness. Applications built with Blocbit offer reactive, real-time experiences. Users can simply access them from a computer web browser with zeronet installed (no additional plugins required), purchase a ready to run raspberry pi sd card or download an image and formate an sd card themselves. Any which way, the process is click, click. Blocbit also dramatically improves the developer experience. There’s no need to deal with set structures as each app can be created using the simple dom (html,css,js) three or deployed as complied apps (unity games as an example). With a ready to run template and a udemy course breaking down the blocchain code, engineers have fully functioning prototypes to start developing and testing their applications. Blocbit is the perfect meduim for individuals or groups, learning or wanting to learn how to code, not just for the advanced dev. Secured in the Cloud Bloclets have been designed to run natively in the cloud. they can also run on a single computer for testing and development. This design principle makes Blocbit fundamentally different from many other platforms in the blockchain world. In Blocbit, a node can be a “logical computer” comprised of one or more virtual machines, or a group of cloud services working together as a computing environment. This approach marks a significant step forward that will help elevate blockchain and decentralized applications to the next level. Blocbit bloclets will initially be build in a few docker clustered private vps, then possibly expand into major cloud computing players in China, and other platforms. Built with an Open Standard Blocbit is built with an open standard. We’re trying our best not to reinvent the wheel and to build for the application developer’s wants and needs. In addition to open sourcing our core components, we will also actively contribute to a variety of blockchain technology communities. Our team members are actively involved with a range of standards organizations, non-profit foundations, and committees. These currently include the W3C Blockchain Community Group Community Group, IEEE Standard Association’s Blockchain Community, Enterprise Ethereum Alliance, Linux Foundation, Fido, Zeronet and Hyperledger Foundation. This list will expand over time. Architecture Blocbit aims to build a scalable, extensible, and easy-to-use platform for building and deploying decentralized blockchain applications. Design Principles Blocbit’s design is based on following core principles: • The user experience comes first. • Performance matters. • The system will be built on an open standard. • The system will build upon an Award Incentive-driven economy. System Architecture The Blocbit platform introduces a suite of revolutionary technologies designed to mainstream blockchain applications by making them easy for the average consumer to use. 1. bloclets 2. micro nodes Fig: High-level Overview of Blocbit Zeronet Zeronet info ........ we are working with zeronet to implement security key authentication to allow for a storage medium for private keys and a human authentication process. Bloclet Bloclet is a serverless computing architecture component for running various types of applications. Use Bloclets for smart contracts, resource and asset handling, and off-chain business logic. Bloclet communicates with blockchains much like a certificate authoririties check up on ssl certificates. Anyone can use Bloclet to build services and components and contribute them to the comunity however we expect most of this to come from award winners. Bloclet Components Bloclet Components are pre-built bloclets that form the foundation of the Blocbit platform. Most of Blocbit’s features (such as its ip services, user identity services, etc.) are implemented with them. Bloclet Components are highly reusable and customizable. Incorporate our pre-built Bloclet Components into your applications to get up and running fast. We provide components for user identity management, ip utilitys, ballots, messaging, notification services, and more. Use them out-of-the-box, or as customizable starting points for your own creations. Bloclet Components can also be built and contributed by the community. They are accessed on github. Award Economy Blocbit comes with a lottery type economy incentive for apps built on the platform. Applications will build unique features that inherit all Blocbit features. Dapps in contention can be cloned with the click of a button and tweaked to compete with current runners. This will allow the community to contribute and exchange ideas allowing for infinte variations. The diagram below shows a high-level view of the platform architecture. Detailed descriptions of some of the core components appear in the next section. Micro Nodes While using a group of raspberry pi services as a node may seem like an unusual approach, a physical computer is simply a group of hardware components that work together (CPU, memory, external storage, bus, network interfaces) in one box. Aside from how the components are distributed and communicate with each other, they're essentially the same. Blocbit is the first blockchain platform to treat microservices as nodes, achieving a much higher level of abstraction, enhanced performance, and even better security. We believe this approach will likely become the de facto standard for future blockchain platform design, and we as a pioneer will lead the trend as technology evolves. Although Blocbit’s preferred node is a raspberry pi node, you can still run Blocbit in a single traditional node like a server box or cloud machine. In a test or private environment, developers likely run the node locally, or in their test server boxes. Dispributing microservices on pis won’t compromise the decentralization and security of the system. In fact, it takes decentralization and security to the next level. The platform’s own security is enforced by majority. Since there is no longer a brute force option available because the mining is based on proof of time, all nodes will be equal. The decentralization aspect is even more interesting, since a node is likely one of many distributed services that run on multiple pis from multiple availability zones, or even different regions. Core Components The following sections offer more detailed descriptions of our key components and core algorithm. This section assume that you have an advanced understanding of blockchain technology and computer science. If you’re not interested in detailed information about the components and would rather learn more about using the platform, feel free to skip this section. Bloc Pooling Blocbit enables your application to adapt to Bitcoin, Ethereum, Hyperledger, and more. The Code will be open sourced with an MIT license so that everyone in the blockchain community will be able to contribute, create extensions, and make improvements. Bloc Access Layer The Bloc Layer defines high-level, generic APIs that enable open connectivity and access to a range of blocchain protocols. The Layer is supported by an Adapter under layer. Each Adapter is implemented for a specific blockchain protocol. The Bloc Access Layer has three levels of APIs: Level Description Level 1: Bloc APIs-This set of APIs provides the foundation for the Access APIs. An Adapter must support all of the APIs included in this level. Level 2: Bloc Data APIs-This set of APIs enables fundamental access to blocchain data, and treats each blocchain under layer as a finite state machine. Adapters may either support the APIs at this level, or alternate capabilities. The set includes APIs that allow applications to query the supported capabilities. An Adapter must support all of the APIs included in this level. However, they may implement a different capacity set. Level 3: Native Bloc APIs This advanced API set exposes the native features of underlying blockchain protocols. While supporting this set is optional, it will maximize your application's ability to use native blockchain features. Supporting the API set at this level is optional for Chain Adapters. Adapters Blocbit’s Access Layer enables the platform to support multiple blockchain protocols. Application developers can choose from several different blockchains, node types, and deployment types. Blocbit’s Adaptors are the implementations that make the Bloc Access Layer possible. Chain Adapters work like device drivers to translate blockchain under layer protocols into the unified APIs defined in the Open Chain Access Layer. Some of the Chain Adapter implementations require you to combine on-chain and off-chain implementation works together. The Chain Adapter is also assigned one of three categories, based on the Open Chain Access Layer API set it has implemented. We plan to implement Chain Adapters for Bitcoin , Ethereum, and Hyperledger first. After we open source the code, anyone will be able to contribute, improve the protocol, or implement their own code. We also plan to support additional blockchain protocols. Adapter Labratory Adapters that have been developed or improved by the community will be made available in the Blocbit labratory so that everyone can use them. The incentive model will encourage the community to develop more and better Adapters. In time, Blocbit will be able to offer a line of high-performance, high-quality Adapters for various blockchains. Design Principles and Inspiration To design the Bloc Access Protocol, we investigated many existing customer solutions, talked to real developers, and learned from the evolution of computers and database systems. For example, the structure for the Bloc Access Layer was inspired by the open connectivity design seen in databases. A look back at the development of database systems and applications reveals many similarities with the evolution of blockchain technology . The position of the blockchain in a typical system is very much the same as the database in a database application system. In many scenarios, it’s fair to say that a blockchain is actually acting as a distributed database. Most of the blockchain itself is built on top of a database, including Bitcoin and Ethereum. That said, we can find inspiration in how database systems evolved. Bloclet Bloclet is the core of Blocbit. More than an authentication protocol, it’s also a software architect that lays the foundational building blocks of Blocbit itself. The Blocbit platform is built alongside a series of Bloclets. The Bloc Access Protocol allows Bloclet to communicate with under layer blockchains. The Distributed gateway allows Bloclets to communicate with the client-side zeronet code live in the user’s browser or mobiles apps. In short, Bloclets are at the center of the entire system. Microservice Architecture Microservice architecture is a perfect match for blockchain applications. A variant of the service-oriented architecture (SOA) style, microservice architecture structures an application as a collection of loosely coupled services. The services should be fine-grained and the protocols lightweight. Deconstructing an application into a variety of smaller services improves modularity and makes the application easier to understand, develop, and test. Blocbit is designed as an event-driven microservice that uses Bloclet technology to overcome the inherent limitations of the blockchain. Bloclet communicates with the blockchain under layer through the Bloc Access Protocol, allowing the application to access external data securely while also maintaining data integrity. Serverless Computing Serverless computing is a distributed computing execution model in which many resources dynamically manage the allocation of machine resources. Most cloud serverless vendors offer compute runtimes or function as a service (FaaS) platforms, which execute application logic but do not store data. Without the need for giant datacentres Serverless computing models also work well with blockchains. Most of the Bloclets can be implemented as a serverless programs but without the need for giant datacentres. Users Manage Blocklets through public private key pairs . Note that microservice architecture and serverless computing involve different levels of abstraction. Serverless computing can be used to implement a microservice that fits perfectly within a microservice architecture. However, developers can also use serverless computing for other purposes, and it’s not always necessary to use serverless computing to implement microservices. Bloclet Types Bloclet is inherently flexible and can be used to develop various kinds of applications. This section describes some common types of bloclets. Bear in mind, however, that a Bloclet could consist of one or more of the following units of business logic packaged together. Off-Chain Logic Because Bloclet is a native microservice, it can access data sources other than the blockchain. For example, it can connect to a database, external restful API, or any other data source. Bloclet can be used to develop any application logic—even logic that's not related to blockchain. Using Bloclet for standard application development has no overhead. Real-life, decentralized applications often run quite a few logical components off-chain. Bloclet provides a total solution for application development so that engineers won’t need to use different frameworks to handle different parts of their applications. Off-Chain and On-Chain Logic It’s very common for an application’s business logic to need both on-chain and off-chain handling, and to require the respective data to be connected. For example, on-chain code can't access external data and events, such as time or market. Calling code or data outside of an on-chain smart contract or blockchain breaks the general trust barrier and reduces confidence in the authenticity of submittions. In these cases, an off-chain Bloclet acts as a bridge that connects on-chain and off-chain logic to bring the full business logic together. Asset and Resource Handling Applications usually need to handle resources and assets like photos, videos, music, and documents. Because blockchain isn’t designed to handle large amounts of data, a typical blockchain application handles those resources and assets with off-chain solutions in our case zeronet uses bittorrent. While there are different ways to accomplish this, the traditional solution involves using a service like AWS S3, or a more decentralized solution like IPFS. Regardless of the approach you take, Bloclet will be able to communicate with your assets and resource storage system. Sometimes assets may need to be mapped with their on-chain vote or identifiers, or verified through the records on the blockchain. Bloclet is the perfect location for these kinds of logic. Smart Contracts By communicating with on-chain code securely through the Bloc Access Protocol, Bloclet enables you to implement high-performance smart contracts while maintaining the trust barrier and verifying the authenticity of submissions. It’s up to the engineer to decide how much logic should run on-chain vs. off-chain. At one extreme, the engineer could simply treat the blockchain as a state machine and put most of the business logic inside the Bloclet. At the other extreme, the engineer might develop a complex, fully on-chain contract where the Bloclet merely serves as a stub for triggering or monitoring activity from the on-chain execution. Proof of time In Bloclet design, POT is simply a type of smart contract that takes external data sources as event triggers. Bloclet makes it easy to implement POT by design. Bloclet-based design also compels engineers to consider the division between on-chain and off-chain logic during the design and development phases. This improves the efficiency of these phases without compromising security and trust. Bloclet Implementation In the first phase of Blocbit development, we have implemented Bloclets with a local test environment and a VPS. The local implementation is for test purposes only. Production will be clustered so that we can take advantage of the many advanced infrastructure features. In the future, we will support Docker and open source fido security solutions for Bloclet so that users can easily build and deploy their own Bloclets without using any complex and time consuming services. Because Bloclet itself is a type of application protocol and architecture, it’s possible to implement it with different languages and frameworks. Our initial implementation will be based on php and python. Bloclet Components Bloclet Building Blocks are pre-built bloclets that lay the foundation for the Blocbit platform and most of its features, such as IP and user identity services. Bloclet Building Blocks are highly reusable and customizable components. Decentralized Messaging Blocbit uses a decentralized design and secure communication channels. Your applications will run in both web browsers and mobile apps, giving users reactive, real-time experiences. API Gateway An API gateway is essential in microservice architecture. An API gateway is a façade that provides a simple API interface to a complex subsystem. It essentially decouples the interface that clients see (in our case API consumers, which could be mobile apps, web clients, or thin clients) from the underlying implementations. In Blocbit, all features are implemented with Bloclets. Rather than communicating directly with clients, Bloclets communicate via the API Gateway. The gateway supports various network protocols by default, including WebSocket, HTTPS. Advanced developers can extend the gateway with new network protocols to fit their needs. Decentralized and Secured We use a completely decentralized design to implement and simplify distributed services. Blocbit’s API Gateway can be used out-of-the-box with a provided nginx configuration—just start it up and it will do its magic. It also features name-based addressing, clusters (i.e. automatic load balancing), and perfect secrecy (all network traffic is encrypted). Fig: How decentrailized bloclets work Decentralized Media and Assets Blocbit uses zeronets core components to handle media and assets, Bloclet can be used to handle them with support from other systems. Bloclet can also help you create off-chain data, or verify off-chain data with the on-chain data. Today, most decentralized applications handle media and assets with off-chain logic. They either use a cloud-based centralized solution like AWS S3 or Microsoft Windows Azure’s storage service, or a decentralized solution like IPFS or Swarm . Rather than reinventing the wheel, we encourage application developers to adopt the best-fit solution for handling their media and assets. We predict that most application developers will use zeronets decentralised solution, which are the simplest and most mature. In addition, media and resources don't necessarily have any relationship with blockchain data in most applications. Other developers might consider using IPFS or a hybrid solution for big data assets. Blocbit allows you to decide which solution is best for your application—it works with either technological approach. Blocbit platform uses zeronet to handle its own media and assets, apart from video which we use public mediums to distribute we may consider moving toward a decentralized system for this later on. Client Library/Framework Zeronet provides libraries and frameworks for client application development. These libraries support web for the moment later maybe iOS, and Android platforms. The version for the web is a simple communication library that works with HTTPS and WebSocket to provide a real-time and reactive user experience. It works with nearly all other web frameworks, allowing you to pick the framework you’d like to work with, such as Meteor, VUE, or React. This is an important advantage for application development. Engineers can spend most of their time handling the client side and user experiences, and write most of the code in this layer. Thanks to Blocbit, however, now they can develop client applications the same way they build traditional, non-blockchain applications. Our design enables developers to work with their favorite frameworks and tools so they can draw upon community resources and support. Algorand Blocbit is among the first blockchain startups to adopt Algorand in production. Algorand was founded by Silvio Micali, winner of the 2012 ACM Turing Award. Micali is a pioneer in cryptocurrency and blockchain technology. He was instrumental in the development of many of the building blocks of cryptography, published works on game theory and Byzantine Agreements, and even launched a micropayments startup. When Micali saw Bitcoin, he thought it could be improved; Algorand is the result of that quest. Fig: An overview of transaction flow in Algorand Algorand involves suddenly and randomly selecting a small group of nodes to be in charge of the next block. This must be done in a way that can’t be manipulated by an adversary. No one selects the group; it’s selected by hash instead. Micali suggests taking a pseudo-random generator which is pre-specified and elongating as much as you need to select the committee. The group decides the next block via a redesigned Byzantine agreement in which a leader is picked randomly from the group. Blocbit uses Algorand and its variant in a number of places. For example, we use Algorand to pick where the smart contract Bloclet will execute from, as well as for the high-performance blockchain that powers our native bloc. We will disclose more details on implementing Algorand in the Blocbit in the future when we reach release candidate milestone. The Award Economy and the Service What makes Blocbit unique is that it’s not just a set of APIs or libraries—it’s a robust platform with a full set of features. In addition, the service runs on top of its own native system, which is driven by latest blockchain technology. The Reward (BTC) subscription pay into a lighting network pool released on day zero The Miners Blocbit members are contributors (“miners”) who run Blocbit platform services and join the overall service network. The role of miners within the Blocbit community is significantly different from that of Bitcoin and Ethereum contributors, however. Resource (client) Miners Resource Miners contribute computing resources to the system. They contribute self-hosted computing resources. In Blocbit’s design, Miners may provide the computing resources for their own use only, share them across multiple parties, or share them with anyone. Everyone contributes. Component (gateway) Miners Component Miners contribute software components to the system, such as new Adapters, Bloclet Components, or voted applications. The component might be packaged code that can be reused and deployed by another application, or a set of services that's merely exposed through the Bloclet interface. For example, a deep learning-based image recognition service may have its own services running elsewhere, but offer the services as Bloclets so that other Blocbit applications can use them. A smart contract defines how the miner’s fee will be distributed if the component is developed by multiple parties. It will also define the rules for how the code for the component is forked. The Blocbit Labratory The Blocbit Labratory is a decentralized blockchain application built on Blocbit platform itself. The app serves as a Labratory for listing, searching, evaluating, using, and ranking reusable components, such as Adapters, Bloclets Components, and applications. The Labratory is also responsible for maintaining public feedback about the quality of components and the reputation of their developers, as well as other information. This information will help users evaluate reusable components. The labratory information is ranked in the public ledger powered by Blocbit’s blockchain technology to ensure transparency usabilty and trust. Voting Foundation Services The platform’s voting foundation service consist of a set of Bloclet components that lay the groundwork for Blocbit’s voting services. The Blocbit vote is implemented offchain nd then secured onchain. The voting foundation service is secured by Bloclets, and the Vote Economy Service consists of a group of Bloclet Building Blocs. Application developers can use Bloclet to easily handle events triggered by votes and accomplish complex business logic. The distributed ledger in Blocbit ensures that votes are secure, high performing, and reliable. Just like any other Bloclet components, the Bloclets for the token foundation service can also be improved and extended by the blockchain community . Application Votes With Blocbit, developers can also continue on with their own custom tokens that inherit all of the features of our native votes once day zero has been reached. Blocbit makes it easy to build your own economy. Tokens or votes aren’t just for cryptocurrencies, however. They can represent many different things, from user identities, certifications, and documents to real-world entities. Blocbit enables you to tokenize everything in your application. Acknowledgements This work is the cumulative effort of multiple individuals with the Blocbit team, and would not have been possible without the help, comments and review from our partners, advisors, community collaborators and valuable customers. This technical whitepaper was written by sean henning The End Copyright © 2018 Blocbit. All rights reserved. Draft for community review. Subject to change.
This page is a preview of ZeroNet. Start your own ZeroNet for complete experience. Learn More