A Blockchain based Witness Model for Trustworthy Cloud Service Level Agreement Enforcement
Huan Zhou, Xue Ouyang, Zhijie Ren, Jinshu Su, Cees de Laat, Zhiming Zhao
Paris 1/May/2019
A Blockchain based Witness Model for Trustworthy Cloud Service Level - - PowerPoint PPT Presentation
A Blockchain based Witness Model for Trustworthy Cloud Service Level Agreement Enforcement Huan Zhou , Xue Ouyang, Zhijie Ren, Jinshu Su, Cees de Laat, Zhiming Zhao Paris 1/May/2019 Outline Cloud SLA / Blockchain: background and challenges
Paris 1/May/2019
4 4
Example: A Cloud customer, C, buys a VM (Virtual Machine), X, from an IaaS Cloud provider, P, for
5 5
Example: A cloud customer, C, buys a VM (Virtual Machine), X, from an IaaS Cloud provider, P, for one
6 6
Example: A cloud customer, C, buys a VM (Virtual Machine), X, from an IaaS Cloud provider, P, for one
7
Hash01 Hash23 Hash3 Hash2 Hash1 Hash0 Tx2 Tx1 Tx0
Prev_Hash Block 10 Timestamp Tx_Root Nounce Prev_Hash Block 11 Timestamp Tx_Root Nounce Prev_Hash Block 12 Timestamp Tx_Root Nounce
Tx3 Sender Address Amount Receiver Address
Transaction View
Alice Bob
transfer x tokens
8
Hash3
Prev_Hash Block 10 Timestamp Tx_Root Nounce Prev_Hash Block 11 Timestamp Tx_Root Nounce Prev_Hash Block 12 Timestamp Tx_Root Nounce
Tx3 Sender Address Interface X Receiver Address
Transaction View
Alice Smart Contract
invoke
EVM State: S EVM State: S’
ADDRESS: 741F7A3 BALANCE: 12 ETH [CODE……..] STORAGE: [0,100,0,A]
Tx3
ADDRESS: 741F7A3 BALANCE: 10 ETH [CODE……..] STORAGE: [0,100,ETH,A] CODE:
Withdraw() { if (sender.adddr == Alice) sender.transfer(2); }
Off-chain Events (e.g. service viola1on) On-chain Transac1ons (e.g. viola1on detec1on)
Who provides the informa1on and data? Is it trustworthy? What is the weather today? Real-world event
Off-chain Events On-chain Transac1ons
Who? Oracle: Perform as “Data Carrier” Is it trustworthy?
Third trusted party Distributed oracles Orisi
For oracles:
and trustworthy;
SoNware Oracle Hardware Oracle
…
report
w1 w2 wN
M-out-of-N reports?
…
w1 w2 wN
come from the deposit of provider and customer
Publish Service Detail and Setup SLA Report violation Enforce the corresponding fees
…
Cloud Customer Cloud Provider Decentralized Witnesses SLA Smart Contract Cloud Service
Monitor
5
Compensation Fee Service Fee Witness Rewards
Test and adopt
3a 2b 4a 1
Off-chain negotiation Provider provision
2a
Accept SLA
3b 4b
Off-chain interaction On-chain interaction (possible happening)
Publish Service Detail and Setup SLA Report violation Enforce the corresponding fees
…
Cloud Customer Cloud Provider Decentralized Witnesses SLA Smart Contract Cloud Service
Monitor
5
Compensation Fee Service Fee
Witness Rewards
Test and adopt
3a 2b 4a 1
Off-chain negotiation Provider provision
2a
Accept SLA
3b 4b
Off-chain interaction On-chain interaction (possible happening)
Some deposits for resisting Sybil attack
… Witnesses Pool Any Blockchain User
U1 U2 UT
ID: 0x9a6baf8cb84cc3614f544fbb8c15e89e5a9311f2 State: Online/Offline/… ID: 0x2e5727a1ae83f0c885e62b62b5561a1456b4bb65 State: Online/Offline/… ID: 0x4cee3a18a79ee7ce25f35bb7a8606e3a2131fd82 State: Online/Offline/…
… Witnesses Pool U1 U2 UT
0x9a6baf8cb… 0x2e5727a1… 0x4cee3a18…
Prev_Hash
Block Bi
Timestamp Tx_Root Nounce Prev_Hash
Block Bi+1
Timestamp Tx_Root Nounce Prev_Hash
Block Bi+j
Timestamp Tx_Root Nounce
Witness-Pool Smart Contract
Provider/Customer invokes
…
1 Request 2 Wait for new j blocks generated Hi Hi-1 Hi+1 Hi+j+1 3 Selection
…
seed = Hi+1+Hi+2+…+Hi+j+1 FOR x = seed%T+1 check Ux reputation check Ux state (online?) seed = Hash(seed) END FOR RETURN N selected witnesses
Witness Committee (W) w1 w2 wN Underlying Blockchain
N > 2
…
report
w1 w2 wN
M-out-of-N reports?
Players: Actions:
(r)
(s)
: wk Report the service violation to the smart contract : wk do not report and keep Silence to the smart contract
(1 < N/2 < M < N)
Payoff function
strategy profile
…
report
w1 w2 wN
M-out-of-N reports? (1 < N/2 < M < N)
Payoff function
(r)
(s)
Wreport ≥ M ?
yes no
(r),σ −k) =10
(s),σ −k) = 0
(s),σ −k) =1
(r),σ −k) = −1
(r)
(r)
3 : Report
3 : Silence
2 : Report
2 : Silence
2 : Report
2 : Silence
1 : Report
1 : Silence
Generate SLA Smart Contract Unbiased Random Sortition Publish Service Detail and Setup SLA Report violation Enforce the corresponding fees
…
Cloud Customer Cloud Provider Witnesses Pool Witness Committee SLA Smart Contract Cloud Service
3
Monitor
7
Compensation Fee Service Fee Witness Fee
2
Test and adopt
Witness-Pool Smart Contract
5a 4b 6a 1
Off-chain negotiation Provider provision
4a
Accept SLA
5b 6b
Off-chain interaction On-chain interaction (possible happening)
two types of smart contracts
Ethereum, when invoking that interface.
30
Witness
Witness-Pool
Smart Contract
SLA
Smart Contract
Provider Customer
XàSLA::genSLAContract return: SLA_address PàSLA::requestSortition + PàSLA::sortitionFromWP
1a
XàWP::register WàWP::turnOn WàWP::turnOff WàWP::reject WàWP::reverse X àWP::checkWState PàSLA::publishService + PàSLA::setupSLA
4 5 6 1b 2a 2b 3b 3a
31
WàWP::register WàWP::turnOn WàWP::turnOff
Confirmation Time Window?
WàWP::reverse
(reputationê)
in WàWP::reject WàSLA:witnessRelease SCàWP::release PàSLA::resetSLA
Witness state transition à
in
Active Fresh Init Completed Customer Provider Witness
PàsetupSLA CàacceptSLA WàreportViolation PàproviderEndNSLAandWithdraw CàcustomerEndVSLAandWithdraw
Violated
PàresetSLA WàwitnessWithdraw PàrestartSLA PàsetCustomer PàpublishService … PàrequestSortition PàsortitionFromWP WàwitnessConfirm WàwitnessRelease
Service Duration End?
Accept Time Window?
in PàcancleSLA
CàresetWitness
Confirmed?
yes no
SLA state transition à