Stowaway Mining: a Selfish Mining Against Strategy Linqun Wang, Zumin Wang Dalian University, No. 10, Xuefu Street, Jinzhou District, Dalian City, Liaoning Province, Dalian, Index, China Abstract Selfish mining is an attack strategy in blockchain, which "increases" its revenue by accumulating private branches and selectively releasing hidden blocks. Existing work has focused on the enhancement of selfish mining and the against to selfish mining attacks by changing the original mining rules and selfish mining games, but it is difficult to effectively counter the attacks without changing the mining rules. To address this problem, a strategy called "stowaway mining" is proposed, in which an undercover miner is infiltrated into a selfish mining pool to obtain information about its private branches and mine the latest blocks based on the private branches, and the process is modeled as a finite Markov reward process. The theory demonstrates that the relative revenue of the stowaway pool is strictly greater than that of the selfish pool when the stowaway and selfish pools have the same arithmetic power. The simulation compares the relative revenue of a mining pool with an honest mining strategy and with a stowaway mining strategy, and verifies that the stowaway mining strategy can reverse the mining advantage of the selfish mining pool under both equal and lesser arithmetic power, and is an effective strategy to against selfish mining attacks with zero loss. Keywords 1 blockchain; selfish mining; mining pool; pool revenue 1. Introduction As electronic payment technology continues to advance, more and more decentralised digital currencies are appearing in the public eye. Bitcoin[1] as the pioneer of digital currencies, invented a decentralised universal currency system that for the first time used Proof of Work (POW)[2] consensus as the cornerstone of global consensus. The essence of the system is for all miners to calculate mathematical puzzles where the answers are easily verifiable and consensus is formed, and the person who solves it gets the right to keep track of the global electronic bills and receives a certain amount of bitcoins into account. This process is known as mining. However, as hardware performance increases and the amount of computing power put into the Bitcoin system increases dramatically, the difficulty of mining rises, and it can take months or even years for an individual miner to mine a block[3] . To avoid the instability of revenue, many individual miners join mining pools to form mining groups, which are managed by pool managers and work together to mine blocks, splitting their contribution. In the Bitcoin system, if all miners mined according to Bitcoin rules, individual gains would be proportional to their computing power. However, this norm is broken by the selfish mining attack proposed by Eyal and Sirer[4], in which an attacker actively builds a private chain and selectively releases hidden blocks based on factors such as the length of the public chain and the length of their own private chain. The essence behind the attack is to trick honest miners into wasting mining arithmetic. As a result, selfish mining pools can gain a higher relative revenue than their share of arithmetic power. The literature [5-7] models selfish mining as a Markov decision process and obtains a more robust selfish mining strategy that can maximize revenue arbitrarily close to the maximum. The literature [8] solves for the selfish and honest mining probabilities by size method to determine the release of hidden blocks and increase the relative revenue of selfish mining. The literature [9] improves ICBASE2022@3rd International Conference on Big Data & Artificial Intelligence & Software Engineering, October 21- 23, 2022, Guangzhou, China EMAIL: vipwanglinqun@163.com(linqun Wang) ORCID:0000-0002-7169-0999 (linqun Wang); © 2022 Copyright for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0). CEUR Workshop Proceedings (CEUR-WS.org) 120 the efficiency of selfish mining by combining it with other attacks. In the face of selfish mining attacks, literature [10] proposes adding anti-forgery timestamps to the system to counter selfish mining attacks. Literature [11] proposes a mechanism to prevent block hiding, which can make the hidden blocks not recognized by the public chain. The literature [12] proposes a new framework based on deep reinforcement learning, SquirRL, whose experiments show that when faced with a selfish mining attack, using a selfish mining strategy to counteract it is not the best choice. In [13-16], we study the "prisoner's dilemma" caused by the game between mining pools when there are multiple selfish mining pools in the system, and propose some strategies to reduce the wasted computing power caused by the game. However, these researchers do not consider how a selfish mining pool can cope with selfish mining attacks without changing the rules of the Bitcoin system, nor do they propose a way to reverse the mining lead of a selfish pool without changing the rules of the Bitcoin system, which is the focus of this paper. Inspired by the act of sending undercover miners to[17] in the interception attack, this paper proposes a strategy called "stowaway mining", where the set of miners using the stowaway mining strategy is called the stowaway pool and the set of miners using the selfish mining strategy is called the selfish pool. In a stowaway mining strategy, once a stowaway pool discovers the presence of a selfish pool in its system, it sends undercover miners to monitor the length of its private chain and the hash value of the latest blocks on the private chain. With this information, the stowaway pool is able to know the current status of mining in the system, i.e. the length of the public chain and the length of the private chain hidden by the selfish pool. This information is then used to perform different mining behaviour. On the one hand, when the selfish pool is observed to be ahead, the stowaway pool will mine implicitly on top of its lead and force the selfish pool to release hidden blocks under certain conditions. On the other hand, when a stowaway pool is in the lead, it will execute a strategy similar to selfish mining. The main works of this paper are: 1) Based on the selfish mining strategy, a strategy called stowaway mining is proposed, and the stowaway mining strategy is modeled as a two-dimensional Markov chain reward process. 2) It is theoretically demonstrated that the relative revenue of the stowaway mining strategy’s pool is strictly greater than that of the selfish mining strategy’s pool under the same arithmetic power. 3) The simulation quantifies the relative revenue of a mining pool with an honest mining strategy and a mining pool with a stowaway mining strategy, and shows that if there is a selfish mining pool in the system that affects one pool’s revenue, the stowaway mining strategy can protect its revenue and reverse the mining advantage of the selfish mining pool. 4) The simulation simulates the arithmetic power threshold for the stowaway mining strategy to against the selfish mining attack, and verifies that the stowaway mining pool can also effectively against attack when its arithmetic power is smaller than that of the selfish mining pool within a certain range. 2. Stowaway mining strategies 2.1.Models and strategies First define that there are n miners in the Bitcoin system and the system arithmetic share of miner i n is mi , then we can find  mi = 1 , such that H, S, and T are taken as the set of honest miners, selfish i =1 miners, and stowaway miners, respectively. Since honest miners strictly follow the Bitcoin protocol and do not hide block information from each other, they are considered as a whole and are called honest mining pools. Similarly, all selfish miners using a selfish mining strategy are combined together as a single agent, which is known as the selfish pool. The remaining set of miners is called the stowaway pool and uses the following stowaway strategy. Let α be the system arithmetic share of the selfish pool and β be the system arithmetic share of the stowaway pool, then we have α =  mi and β =  mi , i∈S i∈T and the system arithmetic share of the honest pool can be expressed as 1 − α − β , so the arithmetic share of the selfish pool is α , the arithmetic share of the stowaway pool is β , and the arithmetic share of the honest pool is 1 − α − β . Based on previous work at[4][5] , in this paper we also assume that the time to broadcast a block is negligible, that transaction fees are negligible, and that honest miners randomly 121 choose blocks to mine. In other words, these mining pools derive their revenue mainly from block rewards. In addition, block generation is treated as a stochastic model that generates a new block in each time slot, and when there are equal-length chains in the system, honest miners randomly choose one for the next block to mine. The stowaway mining strategy is now described (see Figure 1). Before discussing it in detail, the undercover behavior of undercover miners is explained. Firstly, the behavior of sending undercover miners is borrowed from the undercover[17] behavior of the interception attack, but the undercover of the interception attack only discards the mined blocks and reduces the arithmetic power of the undercovered pool, while the undercover of the stowaway strategy is to gain the mining status of the selfish mining pool. Now an example of undercover scenario, selfish mining behavior will leave many consecutive private chains and some consecutive isolated blocks in the main chain, so the stowaway pool can detect the selfish pool's storage by periodically scanning the main chain[18] , once the stowaway pool finds the selfish pool in the network it will select suitable undercover miners in its own pool, and deliver an undercover message to the miners through the mining pool protocol mining pool manager, after the undercover receives the message through If the manager chooses to execute, the pool manager will inform the undercover miner of the selfish pool found, because the pool is publicly joined, the undercover miner can apply to join the selfish pool without quitting the stowaway pool, and after entering the selfish pool as a member of the selfish pool, it will receive a mining task from the manager of the selfish pool, the mining task assigned by the manager is essentially a The mining task assigned by the manager is essentially a data structure that contains the manager-determinable address, merkle root, nounce and a fixed, unchanging hash value of the previous block, so the undercover agent must be able to get the hash value of the previous block from the task. Normally, this hash value corresponds to the last block of the common chain, but once a selfish mining pool has mined a block, its manager will privately keep the block and issue a new task based on it, at which point the hash value does not match the hash value of the last block of the common chain. From the perspective of the undercover miner, there is no new block released in the public chain, but the manager of the selfish pool releases a new task based on an unknown block. Then, it can be concluded that the manager of the selfish mining pool hides the block. Furthermore, the number of hidden blocks is equal to the sum of the number of unmatched hash blocks. Secondly selfish mining pools expose the hash value of the latest block in the hidden block list when they issue mining tasks, and it is based on this hash value that the stowaway mining strategy overpowers to checkmate selfish pools. Firstly the undercover behaviour takes advantage of the normal rules of the Bitcoin system, secondly the control of the undercover is entirely determined by the mining pool protocol, which is determined by the pool itself and does not attempt to change the Bitcoin system rules, so the undercover behaviour and undercover information gathering is perfectly feasible. The undercover miner takes normal mining behaviour in the selfish pool, working for the selfish pool and receiving mining rewards from the selfish pool, while passing mining information from the selfish pool back to the stowaway pool and receiving undercover rewards from the stowaway pool, a two-way profitable process. The stowaway pool will prefer to choose miners with low arithmetic power and high activity rate as undercover miners, which can ensure the timeliness of message return, and the undercover reward is much larger than the mining reward in the selfish pool, which can increase the loyalty of undercover miners. In order to further improve the accuracy of undercover messages and prevent dishonest behaviour of undercover miners, the stowaway pool will send 3 undercover miners to the selfish pool at the same time, if two or more of the returned messages are the same, the message will be considered accurate, if all 3 messages are different, the original undercover miner will be dropped and 3 miners will be chosen again. Through undercover miners, the stowaway pools gain access to the current mining status in the system, i.e. the length of the public chain and the length of the private chain hidden by the private pools. While all mining pools mine based on the public chain information, the three pools can hold different sub-chains (also called branches) behind the public chain in the mining competition. Let lh , ls ,and lt denote the branch lengths of the Honest, Selfish, and Stowaway pools, respectively. For ease of calculation, the branch lengths are all calculated from 0. In the mining process, the honest pool only knows the length of the honest branch (the public chain of the blockchain), the selfish pool knows the length of both the selfish and honest branches, and the stowaway pool can observe the length of the branches of all three pools. The miners in the above three pools mine blocks based on their own pools' 122 information, and generate blocks through a round-robin competition, with each round starting from the global consensus reached by the longest public chain in the system. When the stowaway pool and the selfish pool have disclosed all their hidden blocks, or no hidden blocks, the current round of competition ends, and the next round starts from the global consensus, and so on. For the first block of each round of competition, there are three possible scenarios. Figure 1 Stowaway mining strategy flow Case 1: The honest pool is the first to mine a block with a probability of 1 − α − β , and after mining a bitcoin block, the honest pool will quickly publish the block to the system public chain, in which case both the selfish pool and the stowaway pool acknowledge the block and the current round of competition ends to move on to the next round of competition. Case 2: The selfish pool is the first to mine the block with a probability of α . In order to balance the complexity of the model and the actual scenario, the selfish pool adopts a selfish mining strategy, that is, when the length of ls has not yet reached 3, the selfish attack behaves in the same way as a traditional selfish attack, but when the length of reaches 3, the selfish pool will actively release all the hidden blocks. The mining strategy of the stowaway pool is obtained through undercover information. When the stowaway pool finds out that the selfish pool has hidden blocks, it will mine based on the top end of the hidden blocks, and once the blocks are mined, it has its own stowaway branch and then moves to its own stowaway branch for mining. The stowaway pool will release its own stowaway blocks in the following two cases: first, the selfish pool releases the hidden blocks on which the stowaway branch depends, and second, when lt =3, the stowaway pool needs to move to the public chain to mine, forcing 123 the selfish pool to release its own hidden blocks, and then the stowaway pool follows by releasing the hidden blocks on its own stowaway branch, reducing the risk of mining while gaining stowaway revenue. Case 3: The stowaway pool is the first to mine a block with a probability of β . When the stowaway pool mines a block first, it is in the mining lead in the system and does not release the block directly in order to maintain the mining lead, but hides it and mines on it implicitly. When the difference between the number of hidden blocks in its own branch and the number of other branches is less than 2, it immediately releases all hidden blocks. The maximum number of hidden blocks is 3. When the number exceeds 3, a block is actively released, always keeping the maximum number of hidden blocks at 3. 2.2.Markov reward processes To analyze the relative revenue of each pool under the stowaway strategy, s = (μ ,ν ) is used to represent the state in the system. μ indicates the number of blocks where the selfish pool is ahead of the honest pool, i.e. the number of blocks hidden by the selfish pool. ν denotes the number of blocks that the stowaway pool has ahead of the hidden branch of the selfish pool, the superscript ofν denotes all blocks mined by the stowaway pool (based on the hidden blocks of the stowaway pool), and the superscript * denotes an equal-length competition phase, where the winning power is determined based on the creation of the next block. For example, (0*,0) means that the selfish mining pool released only one hidden block immediately after the honest mining pool released one block, and then an equal-length competition is formed on the public chain, with the winning right determined by the generation of the next block. A two-dimensional Markov state transfer diagram (see Figure 2) was created based on the above states and transfer probabilities, where the states (0,0) indicate the same state, it’s a return to global consensus. Figure 2 Markov state transfer diagram The Markov state transfer diagram shows that one branch wins at the end of each round of competition (reversion to global consensus), and the gains of each branch at the end of each round of competition can be easily calculated based on the last state change before reversion to global consensus, so the expected gains of each mining pool will be known at the end of a round of competition. According to the model, block vesting during competition is not certain and the expected gain for each mining pool is only accounted for when a round of competition ends and reverts to global consensus. To quantify the relative revenue various parameters in state transfers are elicited, Pss' denotes the 124 probability of going from state s to state s' and Rss' denotes the expected gain from this state transition. It contains three components, corresponding to the payoffs of the honest pool, the selfish pool and the stowaway pool, respectively. Ws denotes the steady-state probability of the state, which can be calculated from the state transfer probability and the state transfer diagram. All steady-state W probabilities can be used to denote ( 0 ,0) . 2.3.Relative revenue Let M = { H ,S ,T } denote the set of miners, miner i ∈ M , where H is the set of honest miners, S is the set of selfish miners, T is the set of stowaway miners, sz = s ( 0,0 ) denotes that the competition starts with a global consensus, Rzi +1 denotes the gain of miner i at the end of a round of competition, and each addition of 1 to z denotes another round of competition, then the relative revenue of any miner i ∈ M is  ∞ i    Rz + k +1 | sz = s ( 0 ,0 )  (1) R R EVi = E  ∞k = 0       z + k +1 z ( ) j R | s = s 0 , 0   k = 0 j∈M  Because it is a finite Markov reward process, the relative revenue will be stable after a certain time, close to the relative payoff expectation for each round of competition, and because the probability of state transfer for each round of competition P and the reward function R depend on α and β . Thus the Markov reward process can be reduced to a binary function on α and β . Then for each miner i ∈ { H ,S ,T } we have: ERi (α , β ) =   Pss' ⋅ Rss' i ⋅ Ws (2) s∈SW s' ∈SW Where SW denotes the set of steady states and Ws denotes the steady state probability of the state s , the relative revenue of the selfish and stowaway mining pools are ERS (α , β ) (3) RRERS (α , β ) = ERH (α , β ) + ERS (α , β ) + ERT (α , β ) ERT (α , β ) (4) RRERT (α , β ) = ER H (α , β ) + ER S (α , β ) + ERT (α , β ) So the relative revenue difference between the stowaway pool and the selfish pool is obtained as: DRRER (α , β ) = RRERT (α , β ) − RRERS (α , β ) (5) Like the previous work at[21], focus first on the case where the stowaway and selfish mining pools have the same arithmetic power. In the α = β scenario, the difference in relative revenue between the stowaway and selfish mining pools can be further reduced to a monadic function on α with the following function. 2α 3 α 2 − 2α 3 + − 4α 5 (1 − α ) 2 (6) D R R E R ( α , β ) = D R R E R T (α ) = 2α 3 2 + 4 α + 8α 3 + − 2α 5 (1 − α ) 2 It is easy to see that the relative revenue difference function between the stowaway pool and the selfish pool is strictly increasing for the same arithmetic power, and the relative revenue of the stowaway pool is always higher than that of the selfish pool, and the higher the arithmetic power, the greater the degree of lead. 125 3. Simulation analysis The simulations in this subsection evaluate the effectiveness of the stowaway mining strategy. The honest mining pool, the selfish mining pool and the stowaway mining pool are treated as three independent agents. Competition between mining pools is modeled as a discrete-time random wandering process. At each step, any pool may generate blocks with a probability proportional to the pool's hash arithmetic power, and after the first block is generated, the other pools react according to their own strategies. The simulation ends after 500,000 steps, and the relative revenue of the process is calculated, which is defined as the percentage of blocks generated by each pool on the public chain. Selfish mining pools because of the accumulation of hidden blocks in the early stage, when the arithmetic power is relatively low, the first hidden block is always annihilated by other arithmetic power, so it leads to a decrease in its gain, and only when the arithmetic power of selfish pools is above a certain threshold, its relative revenue increases rapidly, encroaching on the relative revenue of other miners. Based on previous work[4][20] it is known that this arithmetic threshold is 33%, i.e. for a selfish pool in the system to launch a selfish mining attack, its arithmetic power must reach more than 33% of the system's arithmetic power, and so the simulation is performed above this arithmetic power range. The simulation code is published on the platform https://gitee.com/monstermr/smuggling-and-mining- fa. First, a scenario is simulated where a selfish mining pool launches a selfish mining attack and the stowaway pool remains honestly mining without adopting a against strategy.. Figure 3 Non-adoption of coping strategy Figure 4 Adoption of stowaway mining strategy From the Figure 3, we can see that when the stowaway pool does not adopt any counter strategy under the same arithmetic power, its relative revenue is gradually stolen by the selfish pool, and as the arithmetic power of the selfish pool increases, the stowaway relative revenue rapidly decreases and is significantly lower than the relative revenue in an honest environment. Then, the impact on selfish mining attacks is simulated when a stowaway mining pool adopts a stowaway mining strategy. The Figure 4 shows that the relative revenue of mining pools with the stowaway mining strategy are consistently higher than those of selfish pools under the same arithmetic power, which is consistent with previous theoretical proofs. This is consistent with previous theoretical proofs. As the arithmetic power of the stowaway pool increases, its relative revenue increases rapidly and is always higher than the relative revenue in an honest environment, while the relative revenue of the selfish pool decays rapidly and is lower than its relative revenue in an honest environment. Comparing Figure 3 and Figure 4, we can conclude that when there is a selfish mining attack in the system that affects the pool's revenue at the same computing power, using a stowaway mining strategy not only avoids damage to pool revenue, but also gains "extra revenue" above the revenue in the original honest environment, significantly reversing the advantage of the selfish mining pool, It is an effective strategy to against selfish mining attacks. 126 Figure 5 Stowaway pool arithmetic power threshold Figure 6 Relative revenue spread Next, a scenario with different arithmetic power between the selfish and stowaway pools is simulated to consider whether less arithmetic power can also enable the stowaway pool to gain more revenue while resisting attacks from selfish mining(see Figure 5). The solid line in Figure 5 corresponds to the threshold of RRERT (α , β ) = RRERS (α , β ) , above which the relative revenue of the stowaway pools are higher than those of the selfish pools for the range of arithmetic values, as discussed earlier for the case where the selfish and stowaway pools have the same arithmetic power (indicated by the dashed line). This shows that with a stowaway mining strategy, a smaller amount of arithmetic power can be used to counter a selfish mining attack. Finally, the relative revenue of the stowaway pool ahead of the selfish pool when the selfish pool and the stowaway pool have different arithmetic power is simulated(see Figure 6). As can be seen from the graph, the more the stowaway pool is ahead of the selfish pool in terms of arithmetic power, the more it is ahead in terms of relative revenue, up to 36%. 4. Conclusion This paper models the various competing states between honest, selfish and stowaway pools as state points in a finite-state two-dimensional Markov reward process, and demonstrates that when there is a selfish pool and a stowaway pool with the same arithmetic power, the stowaway pool is able to achieve a higher expected revenue than the selfish pool. This shows that the stowaway pool is able to reverse the dominance of the selfish pool. In addition to the above theoretical results, a series of simulation experiments are conducted in this paper to verify that the stowaway mining strategy can against selfish mining attacks with both equal and lesser arithmetic power. Selfish mining attacks and POW consensus are closely related, so this scheme is applicable to blockchain systems based on POW consensus and does not work on systems based on other consensus algorithms. The research in this paper fails to address the game process of multi-selfish mining pools and multi-stowaway mining pools, and future research will focus on the multi-pool game process under the stowaway mining strategy. 5.Reference. [1] NAKAMOTO S. Bitcoin: a peer-to-peer electronic cash system [EB/OL]. (2008) [2021-12- 01].https://bitcoin.org/files/bitcoin-paper/bitcoin_zh_cn.pdf. [2] BACK A. Hashcash-a denial of service counter-measure [EB/OL]. (2002) [2021-12-01]. http://www.hashcash.org/hashcash.pdf. 127 [3] SCHRIJVERS O, BONNEAU J, BONEH D, et al. Incentive compatibility of Bitcoin mining pool reward functions [C]// Proceedings of the International Conference on Financial Cryptography and Data Security. Berlin: Springer, 2016: 477-498. [4] EYAL I, SIRER E G. Majority is not enough: Bitcoin mining is vulnerable [C]// Proceedings of the International Conference on Financial Cryptography Berlin: Springer, 2014: 436-454. [5] SAPIRSHTEIN A, SOMPOLINSKY Y, ZOHAR A. Optimal selfish mining strategies in Bitcoin [C]// Proceedings of the International Conference on Financial Cryptography and Data Security. Berlin: Springer, 2016: 515-532. [6] Yang Zejun. Blockchain selfish mining strategy based on deep learnin [D]. Shenzhen: Shenzhen University, 2020: 46-58 [7] ZUR R B, EYAL I, TAMAR A. Efficient mdp analysis for selfish-mining in blockchains [C]// Proceedings of the Proceedings of the 2nd ACM Conference on New York: ACM, 2020: 113-131. [8] Gang Yinglin, Cheng Xiaorong. Selfish mining research and analysis in blockchain [J]. Computer Engineering and Applications, 2018, 54(15): 62-66 [9] HEILMAN E. One weird trick to stop selfish miners: fresh bitcoins, a solution for the honest miner (Poster Abstract) [C]// Proceedings of the International Conference on Financial Cryptography andData Security. Berlin: Springer, 2014: 161-162. [10] ZHANG R, PRENEEL B. Publish or perish: a backward-compatible defense against selfish mining in bitcoin. Cham: Springer, 2017: 277-92. [11] KARAME G O, ANDROULAKI E, CAPKUN S. Double-spending fast payments in bitcoin [C]// Proceedings of the 2012 ACM Conference on Computer and Communications Security. New York: ACM, 2012: 906-917. [12] HOU C, ZHOU M, JI Y, et al. SquirRL: automating attack analysis on blockchain incentive mechanisms with deep reinforcement learning [EB/OL]. (2020-08-04) [2021-12- 01].https://arxiv.org/pdf/1912.01798v2.pdf. [13] LIU H, RUAN N, DU R, et al. On the strategy and behavior of Bitcoin mining with N-attackers [C]// Proceedings of the 2018 on Asia Conference on Computer New York: ACM, 2018: 357-368. [14] MARMOLEJO-COSSIO F J, BRIGHAM E, SELA B, et al. Competing (Semi-) selfish miners in Bitcoin [C]// Proceedings of the 1st ACM Conference on Advances in New York: ACM, 2019: 89-109. [15] BAI Q, ZHOU X, WANG X, et al. A deep dive into blockchain selfish mining [C]// Proceedings of the 2019 IEEE International Conference on Communications . Piscataway, NJ: IEEE, 2019: 1- 6. [16] Ran Na, Liu Hanqing, SI Xueming. Catfish effect between selfish miners in proof-of-work based blockchain [J]. Chinese Journal of Computer, 2021, 44(01): 177-192 [17] Liu Zizhou, Cheng Xiaorong, Wang Zhibo. Research and analysis of block interception attacks in blockchain [J]. Computer Engineering and Applications, 2022, 58(04): 118-125 [18] Kędziora M, Kozłowski P, Szczepanik M, et al. Analysis of blockchain selfish mining attacks [C]// Proceedings of the 40th Anniversary International Conference on Information Systems Architecture and Technology. cham: Springer, 2019: 231-240. 128