Application of big data oriented blockchain in clearing system
Chua Weide 1,2,3, Yulian 4, Yuan Bo 2, Deng Youquan 2, Li Qi 1, Guo Bin 1
1 Digital society and blockchain Laboratory of Beijing University of Aeronautics and Astronautics , Beijing 100191
2 Beijing Tiande Technology Co., Ltd , Beijing 100080
3 Arizona State University , Arizona, USA TRABTECH 85287
4 School of software and microelectronics, Peking University , Beijing 102600
Abstract ： This paper introduces the application practice of big data oriented blockchain in clearing system , The content involves blockchain consensus 、 Secure transmission of blockchain transaction data 、 Blockchain data storage 、 Blockchain data query 、 Transaction data encryption and decryption and clearing core business, etc , This paper focuses on the analysis of the architecture design of the big data version of blockchain in the process of dismantling and merging composite transactions , From the perspective of big data analysis, this paper puts forward the potential value and significance of making risk decision and evaluation on the data on the blockchain .
key word ： big data ; Blockchain ; Consensus mechanism ; cryptography ; Clearing system
Citation format of the paper ：
Chua Weide , Yulian , Yuan Bo , Deng Youquan , Li Qi , Guo Bin . Application of big data oriented blockchain in clearing system . big data [J], 2018, 4(1):22-35
CAI W D, YU L, YUAN B, DENG Y Q, LI Q, GUO B. Big data-oriented blockchain for clearing system.Big Data Research[J], 2018, 4(1): 22-35
2008 year 10 month 31 Japan and China have published a bitcoin paper , The concept of blockchain is proposed for the first time , Along with bitcoin, blockchain technology has made great progress in recent years , Research and use of blockchain technology has become an important driving force for industry innovation and transformation . The clearing system involved in this paper uses Tiande big data blockchain , In order to test the reliability and accuracy of the system , The author and a clearing house jointly launched a one month field test , Total use of raw desensitization transaction data 33.34 Billion pen , produce 200 More than 100 million atomic transactions , The security of the whole system is fully verified 、 Reliability and correctness .
The liquidation involved in this paper refers to all activities from trading to settlement , The clearing logic of transaction data adopts practical Byzantine fault tolerance （PBFT） Algorithm , Not only can it detect faults , It can also detect cheating . Clearing data can be traced and forensiced through blockchain , The authenticity of the liquidation process and results is guaranteed . meanwhile , In the aspect of data security access, public key and private key are used for encryption and decryption （RSA、ECC、SM2）,SHA、ECDSA digital signature ,CA Digital certificate, etc , Ensure the security of data transmission and storage .
In the following article, the author combines with the application case of Tiande big data blockchain in the clearing system , This paper discusses and analyzes how big data blockchain disassembles complex transactions in the process of clearing 、 The design method of merging and the process of persisting blockchain data to the big data platform , Finally, we propose that we should explore valuable information from blockchain big data , This provides a new direction for regulators to gain insight into trading data .
from 2015 Year to 2017 year , There are many institutions in the world, including banks 、 Financial experts believe that clearing is an important application of blockchain , But no organization has ever done it , Or even if it's done , The result is not very satisfactory . Even to 2016 end of the year , Some financial experts began to change their view ：“ Clearing is not the specialty of blockchain , Blockchain may not be suitable for clearing ”. However ,2017 year 4 month , The Chinese team created a big data version of the blockchain , And successfully applied in the practice of liquidation .
The difficulty in liquidation is ： The amount of data is huge ; Sub Ledger 、 The reconciliation process must be correct ; Privacy is very important ; The system requires high performance ; The system security is very important ; There are many ways to keep accounts .
General blockchain （ Such as bitcoin and Ethereum blockchain ） It can't process massive data at high speed , And the performance is slow （ Not in a second 20 transaction ）, You can't protect privacy . At present, most banks use the balance to keep accounts , Some blockchains Output... With an unfunded transaction （unspent transaction output,UTXO） Bookkeeping , The balance query is complicated , Not for Banking . There are several important reasons for the success of the Chinese team .
● Make a big data version of the blockchain , Use big data platform to deal with massive data in liquidation （ Instead of using a normal database ）, Data storage scale supports horizontal expansion , Automatic three backup , Enhance single point fault tolerance , Multi server concurrent processing .
● Decompose a compound transaction into 6 It's an atomic deal , Instead of dealing directly with complexity 、 The original deal , Simplify the liquidation process . This work is very important , Because if there is no decomposition operation of atomization transaction , Even if blockchain data is fragmented , It's also hard to improve performance . A deal may involve 6 More than one account , But these accounts may be in different segments , If we deal with it together , The participating segments may have to wait for each other , As a result, the performance of the partitioned blockchain cannot be greatly improved . If it's handled separately , Each atomic transaction can be processed separately on a slice , Each piece doesn't interfere with each other , And it can be processed in parallel . This solves the problem that Ethereum has not solved , Although the data fragmentation method proposed by Ethereum improves the performance , But the deal is not broken down . In commodity trading , A commodity transaction needs to be decomposed into 6 It's an atomic deal , But transactions like credit cards may involve more accounts .
● Adopt multi chain architecture （ Instead of using a single chain architecture ） privacy protection , And simplify the blockchain Architecture .
● Mining With the account chain — The trading chain （ABC-TBC） Panda model architecture is a mechanism for load balancing , Keep the performance of the system .
● Use balance book keeping , Compatible with existing bank account systems , Convenient docking services with banks and financial institutions .
2 Big data version of blockchain Technology Architecture
The blockchain technology involved in this paper is based on the blockchain technology architecture of Tiande big data version , The architecture is divided into 5 layer , Namely ： Storage layer 、 Core layer 、 Service layer 、 Interface layer and application layer ③, Pictured 1 Shown .
chart 1 Tiande big data blockchain Technology Architecture
2.1 Storage layer
The storage layer contains the blockchain data cache 、 Blockchain data storage and read-write separation module , This paper mainly introduces blockchain data storage based on big data platform . It includes block data 、 The chain structure 、HBase Storage optimization technology, etc .Hadoop The framework is a reliable 、 Scalable distributed open source computing framework ,HBase Is based on Hadoop A distributed column high-dimensional database on the platform , High scalability 、 Large throughput 、 Strong fault tolerance 、 Support dynamic capacity expansion 、 Support high concurrency and high speed read and write , And it is convenient to build multi-level index table according to business requirements , It provides flexible operation mode and good performance for retrieving data on blockchain .
2.2 Core layer
The core layer contains Building block pretreatment module 、 Consensus mechanism module 、 Reputation mechanism module 、 Block synchronization module 、 Transaction verification module 、 Node signature verification module 、 Verify the node management module .
2.3 Service layer
The service layer contains the account chain （ABC）、 The trading chain （TBC） And chain code ,ABC Responsible for the storage and maintenance of account information ,TBC Responsible for executing transactions and maintaining transaction history .
2.4 The interface layer
Java Blockchain connector （Java blockchain connector,JBCC） It's not just Tiande blockchain （TDBC） External service interface , It is also a bridge between industry applications and blockchain .JBCC Provides the ability to create a chain of transactions 、 Create a user chain 、 Insert the deal 、 Query chain information 、 Query transaction information 、 Get the identity certificate 、 Get transaction certificate and other functions , The purpose is to provide a unified interface standard for blockchain , Support the secondary development of users 、 Efficient use of blockchain functions (④http://www.tdchain.cn/download/jbcc.pdf).
2.5 application layer
Through the block link interface layer JBCC Services provided , Blockchain can quickly dock with traditional application services , Such as copyright registration 、 financial transactions 、 Liquidation 、 Credit reporting 、 insurance 、 Supply chain finance and sharing economy .
3 Clearing system technology architecture
The clearing system uses ABC-TBC Double chain architecture , Separate account information from transaction information , The system has great advantages in scalability and load balancing .ABC Only account maintenance ,TBC Responsible for transaction processing ,ABC Need to provide account information to TBC Execute the transaction . therefore ,ABC It can be managed by one organization , And keep a complete account history .TBC Will be multiple ABC Connect , And through the transaction software transaction and record transaction history information .TBC Tracking complete transactions ,ABC Every change in the world can be traced back to TBC The trading records of .
A traditional blockchain needs to maintain account and transaction information at the same time , So it can't easily split . Tiande Multi Chain blockchain architecture separates account information and transaction information into ABC and TBC, It can be optimized in many ways . say concretely , It can improve the scalability of the whole system , So as to achieve load balancing , because ABC It can be divided into several pieces ABC, Each child ABC Responsible for a group of accounts , and TBC It can be expanded according to the workload needs . When one ABC Divided into multiple sub accounts with separate accounts ABC when , Since each account only exists in one child ABC in , And anything ABC Don't deal with trading activities , Therefore ABC Mutual non-interference . under these circumstances , Each child ABC It can run in parallel on different processors , To speed up the calculation , And you don't need any ABC Interaction between . In the separation into ABC and TBC After the model , Blockchain can be divided 、 Merge , To achieve horizontal scalability . As the workload increases , By adding more servers , Keep the whole system high performance .
Based on the previous discussion , This clearing system proposes a dual chain blockchain architecture with load balancing , Pictured 2 Shown .
chart 2 Technical architecture of clearing system
The architecture has the following main characteristics .
● exchange ： Every exchange has at least one ABC Store information about a customer's account and its transaction history , There may be more than one to deal with TBC. Every exchange uses ABC Store all account information and balance of the exchange , And make TBC to update .
● Clearing Center ： There is a blockchain ledger and multiple TBC. A set of TBC On the exchange with ABC Interact to receive trading information , Another set of interactions with banks , To update the bank's account information .
● Bank ： Every bank has at least one ABC, There may be more TBC. Banks are using ABC Store account information and balance , And use TBC Track account related transactions .
● Regulatory body ： Regulators can access big books stored on the blockchain , But you need to participate in the banking 、 Clearing center related blockchain infrastructure construction . Because the blockchain ledger contains the complete transaction history of all accounts , So regulators can look at every transaction , Including all transaction details , Such as the transaction amount 、 Type of transaction 、 Transaction date and time, etc .
4 Design of the accounting process of the double chain clearing system
The original transaction is implemented according to the custom data structure of clearing business , A normal raw transaction data needs to contain the transaction ID、 The original deal 、 Atomic trading 、 Signature string , The specific process is shown in the figure 3 Shown .
chart 3 The accounting process of the double chain clearing system
Here is an example of how to 1 The original transaction is broken down into a set of atomic transactions .
（1） Dismantling the original deal
Both sides of the transaction are A and B,A cost 10 000 Yuan Cong B I bought 10 Tonne copper , From the money 、 Assets and fees （ By default, both parties pay 5%）3 On the one hand , Will produce 6 An atomic deal , See table 1.
（2） Original transaction store
The original transaction information after consensus is written into the transaction secondary index table by blockchain （ITX surface ） and TBC surface , among TBC The table is a block of ID Hash as the key value of the row Rowkey, With all transactions occurring in the block ID As a name , In this way, the block data can be evenly distributed in multiple RegionServer On , Solve the local hot issues of data , Prevent data skew .
（3） Transaction bookkeeping / Sub Ledger
from ABC The table performs the function of separate account bookkeeping for atomic transactions , The table extracts the quantitative information and non quantitative information of the account , If there is the same account operation in the quantitative information , First, add and merge , And then to the same account 、 With the name of the operation and the original value of numerical calculation , Finally, the account is written into the secondary index table of the account （IACT surface ） and ABC surface . The table also shows the block's ID Hash as the key value of the row Rowkey, Take all accounts and platform accounts in the block as the column , For all transactions occurring in the same block , After grouping and merging by account, persistent storage is carried out .
（3） Information search
Speed up... By building secondary indexes HBase Data retrieval speed . Mainly for the following 2 Business scenarios .
● scene 1： The user said there was a problem with the balance of the account , To see the complete record of the transaction （ We need to establish an index table of user accounts and transactions ）.
● scene 2： There's something wrong with a deal , To view the original block information （ You need to build an index table of transactions and blocks ）.
Aimed at the scene 1, introduce IACT surface , Set up the secondary index table of the account , The form will account for ID Hashing is followed by Rowkey Storage , Column information mainly includes 3 Parts of ： Non quantitative information 、 Quantifiable information and block mark bit information . among , Non quantitative information mainly includes address 、 Contact information that can't be calculated numerically ; Quantitative information mainly includes information that can be used for numerical calculation , Such as asset accounts and RMB 、 Dollars and other capital accounts and so on ; The block flag bit stores the block associated with the transaction of the account , With “1” As a flag .
Aimed at the scene 2, introduce ITX surface , The table will trade ID Hash and store , As a TBC、ABC Of Rowkey, When you need to query the original transaction , Through the secondary index, we can quickly retrieve the needed transaction information .
In a double chain clearing system ,TBC The chain is responsible for storing the original transaction information ;ABC The chain is responsible for storing real-time bookkeeping / Ledger information ;IACT Tables are responsible for storing quantifiable information about accounts 、 Non quantifiable information and identification bits of associated blocks ;ITX Tables store information about transactions and blocks .
The blockchain application layer solves the problem of data consistency between the transaction secondary index table and the account secondary index table by double writing data . While writing transaction data and account data , The index field and Rowkey Write the corresponding relation of as index data to another table , That is to write application data and index data at the same time , This way of double writing data can achieve very good real-time index . The way to improve in the future is to adopt HBase Coprocessor , The data update operation of transaction secondary index table and account secondary index table can be realized in a transparent way to the application .
In this paper, the design of the accounting process of the clearing system , A very important task is to decompose the original transaction . A business deal may involve 6 More than one account change , If you put them together , Blockchain fragmentation is invalid . If it's handled separately , Atomic trading can be handled on a single slice , This solves the problem that Ethereum cannot solve .
5 Clearing transaction data security transmission design
In the whole process of clearing system work , Need to ensure that all in and out of the data in the transmission and storage process security , Therefore, for the whole process of data flow in the clearing system , Combined with the characteristics of blockchain encryption and decryption, it is shown in the figure 4 The design shown .
● JBCC The client hashes the transaction information ;
● Use JBCC The private key of the server signs the transaction information , Form a signature string ;
● Generate a symmetric key ;
● Use symmetric key to encrypt transaction plaintext , Form trade ciphertext ;
● Use JBCC The public key of the server encrypts the symmetric key , Form key ciphertext ;
● Will sign 、 The key ciphertext and the transaction ciphertext are sent to JBCC Server side .
● TDBC Use your own private key to decrypt the key ciphertext , Get the symmetric key ;
● Decrypt transaction ciphertext using symmetric key , Get the deal ;
● Use TDBC Public key pair symmetric key encryption , Get the key ciphertext ;
● Use JBCC The client's public key verifies the hash and signature of the transaction plaintext .
The point is ,JBCC The client is the agent of the blockchain client , It is the package provided by the blockchain core program to the client , Provide blockchain write and query interfaces ;JBCC The server is the agent of the blockchain server , Mainly in the JBCC Data transfer between client and blockchain core program , Blockchain provides distributed storage and transaction data 、 Blockchain data verification and other services ;TDBC The client is responsible for decryption and signature verification of transaction data 、 Consensus 、 Storage, etc .
chart 4 Tiande chain application data security access process
6 Core data structure design of clearing system
The design of data structure is the most important in the whole clearing system , The following will list the 2 A common format of data structure for three party transactions .
6.1 The data structure of the original transaction
The data structure of the original transaction contains the transaction ID、 The amount of asset transactions 、 The amount of capital transaction 、 Trading unit 、 Transaction unit price 、 Sponsor account ID、 Recipient account ID、 Transaction platform Fee Account ID、 Transaction platform service rate 、 The amount of service charge of the square trading platform 、 The amount of service charge of the counter party trading platform 、 Transaction timestamp 、 Transaction description and non quantitative information to be kept in the original transaction . The data structure of the original transaction is shown in table 2.
6.2 The data structure of atomic trading
The data structure of atomic trading contains 1 Pen non quantitative information and n Pen quantization information . The data structure of atomic trading is shown in table 3.
6.2.1 The data structure of non quantitative atomic transactions
The non quantitative information in atomic transaction is used to record and update the basic information of the account . The data structure of non quantitative atomic transaction is shown in table 4.
6.2.2 Quantifying the data structure of atomic trading
The data structure of quantitative atomic transaction is used to accumulate the quantitative information of the account , The quantitative information in atomic transaction describes the related operations involving numerical calculation in atomic transaction .
The clearing system needs to use the quantitative atomic transaction data structure to describe the process of the transaction user operating the funds or assets of his account . Usually , The quantitative information in atomic trading should be a list data structure ：List<ABCAtomicQuantifyBean>, Each item in the list is made up of accounts ID、 The original deal ID、 Quantitative name 、 Quantitative types 、 Quantify the amount 、 Transaction description and business timestamp , See table 5.
7 Interface and function design of clearing system
The design goal of the clearing platform is to register the users of the clearing house regularly 、 Bank deposits and intraday positions are recorded in the blockchain system , And can query multiple dimensions , From the function can be divided into basic user registration 、 Commodity trading and data query and batch data import module .
（1） Bulk data import
For the convenience of users , This module supports manual or automatic mode , Batch import the day end trading files of the exchange . among , The manual mode can be realized through the browser http Access to , It can also be in shell The terminal can be used under wget perform ; Automatic mode can be set by Linux The timing task under the environment is imported regularly .
（2） Member information inquiry
Query the basic information of members and transaction account information . This module can be based on the member code 、 The transaction account number inquires the member's detailed information list , Include member number 、 Full name of member 、 Member abbreviation 、 Member type 、 Membership status 、 Member subject type 、 Membership number （ exchange ）、 Economic member number 、 Registration date, time, etc .
（3） Fund data query
Check the member's capital account number and account balance information . This module can be based on the member code 、 Transaction account query fund account details list , Including fund account number 、 Member code 、 Member name 、 exchange 、 Creation time and other information .
（4） Transaction data query
Query transaction records and bank business flow information . This module can be based on the member code 、 Transaction account query transaction account details list , Including trading accounts 、 Member code 、 Member name 、 Original trading account number 、 Original member number 、 Creation time and other information .
（5） Asset data query
Query position summary and position details and other information . This module can be based on the member code 、 Product code query position summary details list , Include member number 、 Capital account number 、 Product code 、 Total positions 、 Position cost and other information .
（6） Blockchain information query
Query the height of the block 、 Time stamp 、 Information such as intra block transaction size and block hash . This module can query the detailed information list of recent blocks , Including block height 、 Time stamp 、 Chain length 、 Block hash value, etc .
8 Clearing system testing and analysis
The deployment mode of blockchain nodes in this test scenario adopts 4×4 Matrix deployment , That is, the agreement 4 Blockchain nodes , Each node needs to be configured with 4 Server as the host of blockchain application and the supporting environment of big data platform , Add... In addition 2 platform x3850 As encryption and decryption server , The specific configuration is shown in the table 6.
In order to fully verify the feasibility of this architecture , Tested separately 33.34 Billion historical deals and 6 201 762 Online real-time transactions . The batch historical transaction data display system processes about 5 000 Transaction data ; Online real-time transaction data stability test for about a month . By comparing with the existing clearing system , The measured accuracy of this big data version of the blockchain clearing system has reached 100%. See table 7, Mainly from the original number of transactions 、 The number of atomic transactions 、 Volume of trading data 、 Number of transactions executed per second 、 Maximum block capacity 、 Number of nodes 6 This paper makes a comparative analysis of three dimensions .
By analyzing the above experimental results ,33.34 100 million historical transactions are equivalent to bitcoin since 2008 Year to 2017 The number of all historical transactions in the year 15.5 times （ At bitcoin's current trading speed , Still need 22 Years to reach 33.34 100 million deals ）、 Nasdaq Stock Exchange in the United States 16 Number of transactions per month 、 The London Stock Exchange 14 The number of transactions per year 、Visa Credit card global 231 h The number of transactions .
Because the blockchain system of big data version is complex 、 There are many components , Single point resource consumption is relatively large . After starting the big data blockchain , adopt VisualVM Look at the thread status , The real-time peak value of the thread of the block chain node in the system startup time zone is 316 about , After a period of operation, it reaches a stable period , The number of threads dropped to 200 about . Here I do a lot of optimization HBase The connection pool 、 Optimize SpringBoot Number of core threads 、 Adjust the maximum number of connections 、 Number of core connections and expiration time , In order to balance the number of threads and the maximum system throughput of blockchain . The thread state of the blockchain test node is shown in the figure 5 Shown .
chart 5 Blockchain test node thread state
Performance comparison between Tiande big data clearing chain system and other blockchain systems , See table 8.
Obviously, the actual processing speed of Tiande clearing chain is far faster than that of other blockchains , Parallel Byzantine consensus agreement （CBFT） The transaction is executed in parallel with the voting , The height is decided at the end of the vote , To support HFT , Improve scalability .
9 Prospect of risk decision and risk assessment model of clearing system
The clearing system handles a wide variety of things every day 、 A huge amount of trading data , And the amount involved is huge , Therefore, the importance of risk decision-making and risk assessment model of clearing system is self-evident . At high speed 、 In the process of automated trade clearing business , We need more automated risk decision-making mechanisms , This is the major advantage of integrating the big data platform into the blockchain system , It is also a great innovation and attempt of Tiande blockchain .
Big data blockchain and “ Blockchain + big data ” The biggest difference is that data can be analyzed directly on the blockchain platform , Instead of separating from the chain . For example, to be right 3 Analysis of the data on the blockchain in 2007 , If the historical data of blockchain is migrated to the big data platform for analysis , So the data is doing Data extraction 、 transformation 、 load （extract-transform-load,ETL） May be tampered with in the process of , And integrate the big data platform into the blockchain , You can directly analyze data in the blockchain .
Due to the high integration of blockchain and big data platform , All the data on the blockchain is stored in the big data platform , In this way, we can make full use of the existing big data analysis tools , Such as R、 MLlib、 Statistical products and services solutions （ statistical product and service solutions, SPSS）、 Statistical analysis system （statistical analysis system, SAS） etc. , Big data analysis on blockchain . For example, in a clearing system , We can identify and reduce false transactions by analyzing transaction credit , Improve the efficiency of transaction clearing , Guard against the risk of fraud , At the same time, it is also for the establishment of 、 It provides a new way to improve the risk decision-making and credit risk assessment model of clearing system .
10 The current situation of clearing settlement scheme based on blockchain
2017 year 1 month , American Depository Trust and Clearing Corporation （DTCC） Teamed up with IBM、 Axoni and R3 Develop clearing and settlement system based on blockchain ,DTCC Claim that this is a huge and realistic project , And plan the system in 2018 Annual online .Clearstream and Eurex Together with the Central Bank of Germany and other European central banks, it is announced that , They will work together to develop a blockchain prototype , adopt Silver against （delivery versus payment,DVP） Process for cross border security settlement .
DTCC Of Mark Wetjen Recently on Distributed ledger technology （distributed ledger technology, D LT） I've commented on our solution ：“ because DLT Further reduce risk , Reduce the cost of financial transaction processing and the potential application potential in derivatives data processing ,DLT It's got a lot of attention . however , Use DLT It may not guarantee the efficiency and cost saving of all post transaction processing . for example ,DTCC I didn't see the use of DLT The short-term benefits of clearing in the U.S. stock market and most fixed income markets .”
2017 year 4 month ,Mark Wetjen At MIT in the United States （MIT） At the financial technology conference, the common blockchain design to prevent blockchain from being used for transaction settlement was published ：“ Is there any way to make the net amount （ balance ） It's not that important anymore ？ under these circumstances , Can technologies like blockchain work ？ If not , The system has to settle as a whole , Every day you have to settle every transaction in the day . It's a huge amount of work , And it introduces more risk , So most companies don't want to .”
This shows that Mark Wetjen I have opinions on blockchains that can't support balance calculation and big data processing . Unless blockchain can handle big data （ Huge workload ） Balance calculation , otherwise , The use of blockchain will increase the risk of clearing .
However, these problems do not appear in the Chinese version of the blockchain clearing settlement scheme , The blockchain clearing and settlement used in China is based on the big data platform, which has a multi-level account structure and a mode of full settlement and net settlement , To avoid DTCC Difficulties encountered .
2017 year 4 month , Tiande big data blockchain successfully runs on a clearing system for one month , Processed 33.34 Billion clearing deals , In the blockchain system to complete such a large number of transactions , It's a record in the history of blockchain . Tiande big data blockchain has attracted 100 Many from China 、 The United States 、 The British 、 Teams from Japan and other places have a joint discussion , Including local governments 、 Bank 、 World famous IT And fintech .
This paper introduces the application of Tiande big data blockchain technology in the clearing system , By using the big data platform to store and analyze the data on the blockchain , Get through big data 、 Information barriers between blockchain and clearing system , At the same time, it is proposed that meaningful block data should be deeply processed and mined , Making decisions for clearing system risk 、 Provide information support for risk assessment and audit .
The authors have declared that no competing interests exist.
The author has declared that there is no competitive interest .