{'fraction_non_alphanumeric': 0.02230971128608924, 'fraction_numerical': 0.0, 'mean_word_length': 5.434599156118144, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Extending Blockchain Functionality with Statechain

Blockchain has attracted great attention as the basis of cryptocurrencies such as Bitcoin, but its capabilities extend far beyond that. Blockchain has the potential to revolutionize applications because it provides a transparent, immutable, and append-only ledger that can be used to build new decentralized applications. However, it is hard to implement changes to Bitcoin without forking blockchain. As a result, Bitcoin has difficulty in adapting to new demands and extending new functionality. The traditional way to introduce new functionality is to modify Bitcoin’s code base, but which will lead to some problems such as (a) the security of blockchains, (b) the allocation of currency, and (c) the waste of resources. We present a novel design, statechain, which uses Bitcoin blockchain to propagate application log. It can add new functionality without requiring blockchain fork changes from Bitcoin. Statechain enables application nodes to efficiently query the log as well as transfer log between blockchains. We detail how the application nodes achieve application-level consensus at each block. As far as we know, this technology has not been exploited. However, it has a great practical significance that enables the introduction of new functionality safer and makes the development of blockchain-based applications easier. We have used statechain to explore the field of transferring bitcoins and other cryptocurrencies directly between multiple blockchains.