【论文笔记】boros协议的UC框架下安全性证明

4 UC框架下的形式化定义

协议安全性的定义

直观来讲,在理想的世界(ideal world)中,有理想函数和模拟器,分别对应现实世界中的协议和敌手。模拟器不但要模拟敌手,还要模拟parties,来和环境交互。在理想函数中,我们定义了哪些数据是可以泄露给模拟器的,根据环境所给的input, 模拟器根据泄露的数据模拟相应的操作,生成相应的output给环境。如果环境无法区分跟它交互的是现实中parties还是理想世界中的模拟器,那么,我们说现实世界的协议实现了该理想函数。

现实世界包含:协议 π \pi π、敌手 A \mathcal{A} A
理想世界包含:理想函数 F \mathcal{F} F、模拟器 S \mathcal{S} S

环境 Z \mathcal{Z} Z可以向理想世界、现实世界的各方提供输入,读取所有输出,可以和敌手进行任意的通信

我们说协议 π \pi π是安全的:环境无法分辨与它交互的是现实世界还是理想世界

通信模型假设

为简单起见,假设协议在一个同步网络运行,即满足以下条件:

1)所有节点一轮一轮地运行,且同时开始运行协议
2)所有在第i轮的消息,会在第i+1轮开始前到达目的地
3)假设理想函数的计算以及消息在网络中的传播时间为0

更详细的关于同步网络的参考在[16,17,20]

账本理想函数 F L \mathcal{F}_{\mathcal{L}} FL

借鉴[9],使用一个账本函数 F L \mathcal{F}_{\mathcal{L}} FL,其中包含的内部状态(对象属性)就是一个map,key为地址(外部地址+合约地址),value为地址所持余额。

这个账本函数提供一个接口transfer,提供交易功能,通过发送消息(transfer, sid, αi, αj , p)可以将p数额的资金从 α i \alpha_i αi转移给 α j \alpha_j αj

简单来说,理想函数也有一个特殊的账户地址 α f \alpha_f αf,当之后的描述出现:“理想函数 F f \mathcal{F}_{\mathcal{f}} Ff收到了A的消息,消息携带了p数额的资金”或“理想函数 F f \mathcal{F}_{\mathcal{f}} Ff向A(不是敌手,就是一个通道内成员,向上面的例子一样)发送了携带p数额资金的消息”,都相当于 F f \mathcal{F}_{\mathcal{f}} Ff F L \mathcal{F}_{\mathcal{L}} FL发送消息,调用接口,实现资金在两个账户之间的转移,更多细节参考[22]

channel hub functionality F N \mathcal{F}_{\mathcal{N}} FN

内部状态也是一个map,key是支付通道对应地址(合约地址),value是这个通道的总余额,一个通道加入了这个channel hub,那么相应的k-v数据就加入了相应的map,退出就是删除了对应k-v

F N \mathcal{F}_{\mathcal{N}} FN提供的接口:加入、退出、转账

F N \mathcal{F}_{\mathcal{N}} FN
在这里插入图片描述
文章解释了一下这几个接口的流程:
1)加入join:当 F N \mathcal{F}_{\mathcal{N}} FN收到一条来自一个理想函数的请求加入消息(携带了c数额的资金)时, F N F_N FN会标记上对应通道加入了hub,总余额为c
2)交易transfer:当 F N \mathcal{F}_{\mathcal{N}} FN收到一条来自A的iou请求消息 ( i o u , β A C , β B D , ∆ x ) (iou, β_{AC} , β_{BD}, ∆x) (iou,βAC,βBD,x)和一个B发送的receipt时, F N \mathcal{F}_{\mathcal{N}} FN会标记 △ x \triangle x x数额的资金从原通道转到另一个通道
3)退出withdraw:通过向 F N \mathcal{F}_{\mathcal{N}} FN发送退出请求消息,一个通道可以随时从hub中退出, F N \mathcal{F}_{\mathcal{N}} FN会向通道的链上账户发送它的余额,并标记上他已经退出

contract functionality F C \mathcal{F}_{\mathcal{C}} FC

对应的是一个支付通道在链上的合约集合,他持有多个实例,对应着多个支付通道。一个通道打开,就加入这个集合,关闭就移除这个集合。包含的接口:open、join、withdraw、close
在这里插入图片描述

UC框架下的安全性定义

E X E C b o r o s , A , Z F L , F N , F C ( λ , x ) EXEC_{boros,\mathcal{A},\mathcal{Z}}^{\mathcal{F}_{\mathcal{L}},\mathcal{F}_{\mathcal{N}},\mathcal{F}_{\mathcal{C}}}(\lambda,x) EXECboros,A,ZFL,FN,FC(λ,x):boros和 F L , F N , F C \mathcal{F}_{\mathcal{L}},\mathcal{F}_{\mathcal{N}},\mathcal{F}_{\mathcal{C}} FL,FN,FC自由通信的协议,也可以和环境 Z \mathcal{Z} Z和安全参数为 λ \lambda λ的敌手 A \mathcal{A} A进行通信,辅助的输入用 x x x表示, x ∈ { 0 , 1 } ∗ x\in \{0,1\}^* x{0,1}

I D E A L F H , S , Z F L , F N , F C ( λ , x ) IDEAL_{\mathcal{F}_{\mathcal{H}},\mathcal{S},\mathcal{Z}}^{\mathcal{F}_{\mathcal{L}},\mathcal{F}_{\mathcal{N}},\mathcal{F}_{\mathcal{C}}}(\lambda,x) IDEALFH,S,ZFL,FN,FC(λ,x):对应理想世界

定义1:我们说协议boros实现了理想功能 F H \mathcal{F}_{\mathcal{H}} FH,当对于任意一个敌手 A \mathcal{A} A,存在一个模拟器 S \mathcal{S} S,使得在任何PPT环境下, E X E C b o r o s , A , Z F L , F N , F C ( λ , x ) EXEC_{boros,\mathcal{A},\mathcal{Z}}^{\mathcal{F}_{\mathcal{L}},\mathcal{F}_{\mathcal{N}},\mathcal{F}_{\mathcal{C}}}(\lambda,x) EXECboros,A,ZFL,FN,FC(λ,x) I D E A L F H , S , Z F L , F N , F C ( λ , x ) IDEAL_{\mathcal{F}_{\mathcal{H}},\mathcal{S},\mathcal{Z}}^{\mathcal{F}_{\mathcal{L}},\mathcal{F}_{\mathcal{N}},\mathcal{F}_{\mathcal{C}}}(\lambda,x) IDEALFH,S,ZFL,FN,FC(λ,x)在计算上不可区分。写成这个样子:

在这里插入图片描述

其中的约等于号即表示计算上不可区分 computational indistinguishability

A.Boros协议对应的理想函数 F H \mathcal{F}_{\mathcal{H}} FH

F H \mathcal{F}_{\mathcal{H}} FH维护两个通道空间,一个是尚未加入channel hub的通道集合 B : β → { c , θ w } \mathcal{B}: \beta\rightarrow\{c,\theta_w\} B:β{c,θw},其中的 β \beta β是通道对应合约地址,c为通道总余额, θ w \theta_w θw为版本号为w的通道内部余额分布情况,可以将它看作一个函数,例如AC通道内A在第w歌版本的余额为 θ w A C ( A ) \theta_w^{AC}(A) θwAC(A),所以说 c = θ w ( A ) + θ w ( C ) c=\theta_w(A)+\theta_w(C) c=θw(A)+θw(C) θ w i ( P ) > = 0 \theta_{w_i}(P)>=0 θwi(P)>=0,版本号w单调递增,初值为1.

另一个通道空间为 B ⊄ : β → { c , θ w } \mathcal{B}_{\not\subset}: \beta\rightarrow\{c,\theta_w\} B:β{c,θw},表示已经加入hub的通道,某通道加入hub就是将他的状态信息从 B \mathcal{B} B移进 B ⊄ \mathcal{B}_{\not\subset} B,反过来也一样

F H \mathcal{F}_{\mathcal{H}} FH提供的接口:打开通道、通道内交易、加入hub、跨通道交易、退出hub、关闭通道

1)打开通道: F H \mathcal{F}_{\mathcal{H}} FH收到来自A和C的打开请求,分别包含余额 x a , x c x_a, x_c xa,xc,认为通道可以打开, F H \mathcal{F}_{\mathcal{H}} FH本地存储相应状态信息
2)通道内交易:包含一个两阶段过程,接收A发送的更新请求, F H \mathcal{F}_{\mathcal{H}} FH向C请求确认消息,C回复确认消息后, F H \mathcal{F}_{\mathcal{H}} FH就更新相应通道的余额分布状态
3)加入hub:只有当一个通道内状态被2个通道成员达成共识,且此通道尚未加入任何hub时,它才能申请加入一个hub. 当 F H \mathcal{F}_{\mathcal{H}} FH接收到A发送的请求加入hub消息, F H \mathcal{F}_{\mathcal{H}} FH向C请求确认加入消息,C回复确认消息后, F H \mathcal{F}_{\mathcal{H}} FH就更新相应通道的加入状态
4)跨通道交易:只能在已经加入同一hub的2个通道之间发生。包括一个三阶段过程,准备阶段时两个通道对于交易的发生表示同意,余额转移阶段时 F H \mathcal{F}_{\mathcal{H}} FH收到来自A(交易发起方)的iou消息和来自B的receipt消息就更新通道余额状态,最后一个阶段由通道内交易请求触发,A和B分别在各自通道发起通道内余额分布更新请求, F H \mathcal{F}_{\mathcal{H}} FH得到C和D的确认后就更新两通道内的余额分布状态
5)退出hub:只有已经加入hub的通道才能退出(这种废话必不可少), F H \mathcal{F}_{\mathcal{H}} FH收到来自通道某一方的退出请求,标记其已退出,并输出退出成功消息(这里的输出理解为向环境输出,让环境知道当前系统的状态),理想函数保证一个诚实节点一定可以申请他所在通道再一段固定时长内成功退出hub
6)关闭通道: F H \mathcal{F}_{\mathcal{H}} FH收到通道某一方的退出请求后,将节点资金在3轮之内退回链上账户,理想函数保证一个诚实节点一定可以在一段固定时长内成功退出所在支付通道
在这里插入图片描述
下面解释一下为什么这样的理想函数可以满足上面所提到的安全性,即:

Boros可以保证以下安全特性:
1、诚实节点们对于某通道或节点是否加入了channel hub总是能达成一致
2、诚实节点们对于某通道或节点在hub的余额总是能达成一致
3、诚实节点绝不会损失资金

1. F H \mathcal{F}_{\mathcal{H}} FH会输出(广播)给所有节点通道加入或退出的结果,所以保证了hub内所有party的一致性视图
2. F H \mathcal{F}_{\mathcal{H}} FH会输出(广播)给所有节点通道 m c t m_{ct} mct消息,保证所有节点对通道余额分布的一致性视图
3.诚实节点资金的安全性包含两方面,一方面是上面第二点,另一方面是通道内部余额分布状态的正确性,由版本号保证,使得节点退出通道时,其余额遵循最新版本状态,回归到链上账户中去

B. Boros协议

下面就是对Boros协议的形式化定义,它包括了图4所示的合约函数 F C \mathcal{F}_{\mathcal{C}} FC以及图5、6中的各个节点角色行为规范

图5展示的是和传统支付通道相同的部分。
1)打开通道:A使用 x a x_a xa代币(在第一轮)部署合约实例 F C \mathcal{F}_{\mathcal{C}} FC,部署后,合约实例发送打开请求给C,一旦合约在下一轮之内(第三轮之前)收到C的确认消息以及代币 x c x_c xc,则通道 β A C \beta_{AC} βAC打开成功,否则合约就要给A退款并且输出(给环境)打开失败的消息。
2)通道内交易:一旦通道打开,节点就可以在没有区块链的参与下进行通道内交易。首先A向C发送通道内更新请求,其中包含了一个新版本的余额分布函数 θ w + 1 \theta_{w+1} θw+1,C收到此请求后,他会检查请求中包含的通道 β A C \beta_{AC} βAC的余额分布是否满足: θ w + 1 ( A ) + θ w + 1 ( C ) = θ w ( A ) + θ w ( C ) \theta_{w+1}(A)+\theta_{w+1}(C)=\theta_{w}(A)+\theta_{w}(C) θw+1(A)+θw+1(C)=θw(A)+θw(C),若满足C就向环境 Z \mathcal{Z} Z发送更新请求(update-request),问询其是否同意更新,若环境回复update-ok消息,则C向A发送确认消息,完成更新。其中的余额检查是十分必要的因为支付通道的余额变化只能由跨通道交易导致。
3)关闭通道:A向合约 F C \mathcal{F}_{\mathcal{C}} FC发送包含某版本(A若是诚实节点,就会发送其本地持有的最新版本)余额分布函数 θ w 1 \theta_{w1} θw1的关闭请求,合约收到后转发给C,若在下一轮内C回复了某版本的余额分布函数 θ w 2 \theta_{w2} θw2,那么合约计算最新版本号 w = m a x ( w 1 , w 2 ) w=max(w1,w2) w=max(w1,w2),根据此版本余额分布给A和C发送链上资金。
在这里插入图片描述
扩展功能在图6里
1)加入hub:A发送消息给C,消息包含(目标加入的hub实例 H ⊄ \mathcal{H}_{\not\subset} H、通道资金c、通道最新版本状态 θ w \theta_w θw、A对此消息的签名 σ A \sigma_A σA),C收到后发送join-request给环境 Z \mathcal{Z} Z,环境回复 j o i n − o k join-ok joinok后,C向合约 F C \mathcal{F}_{\mathcal{C}} FC发送包含了A和C签名的加入请求,合约收到后在链上向hub F N \mathcal{F}_{\mathcal{N}} FN发送c资金,加入hub就完成了
2)跨通道交易:3阶段过程。prepare阶段,A和B分别向C和D发送 m p c c m_{pcc} mpcc消息,表明自己要和B或A在hub H ⊄ \mathcal{H}_{\not\subset} H内进行交易,交易金额为 △ x \triangle x x,若C或D验证通过(看A在通道 β A C \beta{AC} βAC内的余额是否少于 △ x \triangle x x)并同意就向ABD或ABC发送 m g c c m_{gcc} mgcc消息(包含C对 m p c c m_{pcc} mpcc的签名),最终所有节点持有 m g c c A C m_{gcc_{AC}} mgccAC m g c c B D m_{gcc_{BD}} mgccBD消息;capacity transfer阶段,A代表通道 β A C \beta_{AC} βAC向hub F N \mathcal{F}_{\mathcal{N}} FN(链下中心化服务器)发送iou消息, F N \mathcal{F}_{\mathcal{N}} FN验证后传递给B,B验证后回复receipt(包含B的签名)给 F N \mathcal{F}_{\mathcal{N}} FN,然后 F N \mathcal{F}_{\mathcal{N}} FN更新本地账本里2个通道地址对应的余额,更新成功后回复A和B确认消息conf( m c t m_{ct} mct);in-channel update阶段,A向C发送icu(res)消息,包括上一阶段的执行结果(余额分布函数 θ w + 1 \theta_{w+1} θw+1,即 θ w + 1 ( A ) = θ w ( A ) − △ x 且 θ w + 1 ( B ) = θ w ( B ) + △ x \theta_{w+1}(A)=\theta_{w}(A)-\triangle x且\theta_{w+1}(B)=\theta_{w}(B)+\triangle x θw+1(A)=θw(A)xθw+1(B)=θw(B)+x)和hub的服务中心对结果的签名,C收到后验证有效性,回复确认消息conf。B和D之间的消息交换类似
3)退出hub:A向合约 F C \mathcal{F}_{\mathcal{C}} FC发送包含最新版本余额分布和通道总余额的消息,合约通知C,C回复同意并签名后,合约发送退出hub请求给 H ⊄ \mathcal{H}_{\not\subset} H

在这里插入图片描述

c.安全定义

篇幅原因,写在附录里了

定理:boros协议安全地实现了 ( F L , F N , F C ) (\mathcal{F}_{\mathcal{L}}, \mathcal{F}_{\mathcal{N}} , \mathcal{F}_{\mathcal{C}}) (FL,FN,FC)混合模型中的理想函数 F H \mathcal{F}_{\mathcal{H}} FH

证明:

环境Z的任何输入都被转发到敌手 A \mathcal{A} A A \mathcal{A} A的任何输出都被复制成为 S \mathcal{S} S的输出

S \mathcal{S} S是这样模拟的:

1)打开通道:\mathcal{S}来模拟 F C \mathcal{F}_{\mathcal{C}} FC和诚实节点的行为。1.环境 Z \mathcal{Z} Z向A发送 ( o p e n , s i d , β A C , x a ) (open, sid, \beta_{AC},x_a) (open,sid,βAC,xa),向C发送 ( o p e n , s i d , β A C , x c ) (open, sid, \beta_{AC},x_c) (open,sid,βAC,xc);(上帝指示A和C进行交易)2.若A没有腐败,则在第一轮向 F C \mathcal{F}_{\mathcal{C}} FC发送 ( o p e n , s i d , β A C , x a ) (open, sid, β_{AC} , x_a) (open,sid,βAC,xa),以及 x a x_a xa量的代币(A发起通道建立请求);若A腐败了,整个过程终止;3. S \mathcal{S} S F L \mathcal{F}_{\mathcal{L}} FL发送 ( t r a n s f e r , s i d , A , α C , x a ) (transfer, sid, A, α_{\mathcal{C}},x_a) (transfer,sid,A,αC,xa)(A的锁定资金锁入合约内部),以 F C \mathcal{F}_{\mathcal{C}} FC的名义向C发送 ( o p e n i n g , s i d , β A C ) (opening, sid, β_{AC} ) (opening,sid,βAC)(通知C,A已经锁钱了,通道正在打开中);4.下一轮,若C向 F C \mathcal{F}_{\mathcal{C}} FC发送 ( o p e n , s i d , β A C , x c ) (open, sid, β_{AC} , x_c) (open,sid,βAC,xc)以及代币 x c x_c xc(C也锁定资金),则 S \mathcal{S} S F L \mathcal{F}_{\mathcal{L}} FL发送 ( t r a n s f e r , s i d , C , α C , x c ) (transfer, sid, C, α_{\mathcal{C}},x_c) (transfer,sid,C,αC,xc)(C的资金锁入合约),并以 F C \mathcal{F}_{\mathcal{C}} FC的名义输出 ( o p e n e d , s i d , β A C , c ) (opened, sid, β_{AC} , c) (opened,sid,βAC,c)(通知通道打开成功);若C腐败了,没有向 F C \mathcal{F}_{\mathcal{C}} FC发送 ( o p e n , s i d , β A C , x c ) (open, sid, β_{AC} , x_c) (open,sid,βAC,xc)以及代币 x c x_c xc,那么 S \mathcal{S} S F C \mathcal{F}_{\mathcal{C}} FC的名义向 F L \mathcal{F}_{\mathcal{L}} FL发送 ( t r a n s f e r , s i d , α C , A , x a ) (transfer, sid,α_{\mathcal{C}}, A, x_a) (transfer,sid,αC,A,xa)(退款给A),并在第三轮输出open-failed消息

2)通道内交易:让 S \mathcal{S} S模拟诚实节点行为。1. Z \mathcal{Z} Z向A发送 ( u p d a t e , s i d , β A C , θ ) (update,sid,\beta_{AC},\theta) (update,sid,βAC,θ)(上帝指示);2.若A向C发送了 ( u p d a t i n g , s i d , β A C , θ ) (updating,sid,\beta_{AC},\theta) (updating,sid,βAC,θ),那么 m a t h c a l S mathcal{S} mathcalS以A的名义向 F H \mathcal{F}_{\mathcal{H}} FH发送 ( u p d a t e , s i d , β A C , θ ) (链下中心化节点接收 A 的交易请求) (update,sid,\beta_{AC},\theta)(链下中心化节点接收A的交易请求) (update,sid,βAC,θ)(链下中心化节点接收A的交易请求);3.若C未被侵入,并且在下一轮向A发送 ( u p d a t e − o k , s i d , β A C , θ ) (update-ok,sid,\beta_{AC},\theta) (updateok,sid,βAC,θ)(更新消息),那么 m a t h c a l S mathcal{S} mathcalS以C的名义向 F H \mathcal{F}_{\mathcal{H}} FH发送 ( u p d a t e − o k , s i d , β A C , θ ) (update-ok,sid,\beta_{AC},\theta) (updateok,sid,βAC,θ)(模拟);4.若C被入侵,不发送update-ok消息, S \mathcal{S} S怎么模拟呢?分析一下,由于诚实节点不会响应任何非诚实节点参与的更新过程,所以C和A诚实情况下都会发起退出hub和支付通道,当C诚实时就会在退出过程中发送链下状态,此时 S \mathcal{S} S以C的名义向 F H \mathcal{F}_{\mathcal{H}} FH发送 ( u p d a t e − o k , s i d , β A C , θ ) (update-ok,sid,\beta_{AC},\theta) (updateok,sid,βAC,θ),让这个更新正常发生;当C不诚实,就不响应退出, S \mathcal{S} S F L \mathcal{F}_{\mathcal{L}} FL发送消息,将C的锁定资金转给A

3)加入channel hub:模拟器去模拟诚实节点、 F C \mathcal{F}_{\mathcal{C}} FC F N \mathcal{F}_{\mathcal{N}} FN的行为。1. Z \mathcal{Z} Z向A发送 ( j o i n , s i d , β A C , H ⊄ ) (join,sid,\beta_{AC},\mathcal{H}_{\not\subset}) (join,sid,βAC,H)(上帝指示);2.A未被入侵,则在接下来的第1轮向C发送 ( j o i n , s i d , β A C , H ⊄ , c , θ w , σ A ) (join,sid,\beta_{AC},\mathcal{H}_{\not\subset},c,\theta_w,\sigma_A) (join,sid,βAC,H,c,θw,σA),则 S \mathcal{S} S以A的名义向 F H \mathcal{F}_{\mathcal{H}} FH发送 ( j o i n , s i d , β A C , H ⊄ ) (join,sid,\beta_{AC},\mathcal{H}_{\not\subset}) (join,sid,βAC,H);若A被入侵,则 S \mathcal{S} S终止进程;3.下一轮,C向 F C \mathcal{F}_{\mathcal{C}} FC发送 ( j o i n , s i d , β A C , H ⊄ , c , θ w , σ A , σ C ) (join,sid,\beta_{AC},\mathcal{H}_{\not\subset},c,\theta_w,\sigma_A,\sigma_{C}) (join,sid,βAC,H,c,θw,σA,σC) S \mathcal{S} S F C \mathcal{F}_{\mathcal{C}} FC的名义向 F N \mathcal{F}_{\mathcal{N}} FN发送 ( j o i n , s i d , β A C , c ) (join,sid,\beta_{AC},c) (join,sid,βAC,c),以 F N \mathcal{F}_{\mathcal{N}} FN的名义向 F L \mathcal{F}_{\mathcal{L}} FL发送 ( t r a n s f e r , s i d , α C , α N , c ) (transfer,sid,\alpha_{\mathcal{C}},\alpha_{\mathcal{N}},c) (transfer,sid,αC,αN,c),并且输出joined

4)hub内的跨通道交易:模拟器去模拟诚实节点、 F N \mathcal{F}_{\mathcal{N}} FN的行为。
阶段一:1. Z \mathcal{Z} Z向A和B发送 ( c c − t r a n s f e r , s i d , β A C , β B D , △ x , H ⊄ ) (cc-transfer,sid,\beta_{AC},\beta_{BD},\triangle x,\mathcal{H}_{\not\subset}) (cctransfer,sid,βAC,βBD,x,H)(上帝指示);2.A未被入侵,则在接下来的第1轮向C发送 ( p c c , s i d , β A C , β B D , △ x , H ⊄ ) (pcc,sid,\beta_{AC},\beta_{BD},\triangle x,\mathcal{H}_{\not\subset}) (pcc,sid,βAC,βBD,x,H),则 S \mathcal{S} S以A的名义向 F H \mathcal{F}_{\mathcal{H}} FH发送 ( c c − t r a n s f e r , s i d , β A C , β B D , △ x , H ⊄ ) (cc-transfer,sid,\beta_{AC},\beta_{BD},\triangle x,\mathcal{H}_{\not\subset}) (cctransfer,sid,βAC,βBD,x,H);若A被入侵,则 S \mathcal{S} S终止进程;3.下一轮,C广播(pcc,sid,\beta_{AC},\beta_{BD},\triangle x,\mathcal{H}_{\not\subset}),, S \mathcal{S} S以C的名义向 F H \mathcal{F}_{\mathcal{H}} FH发送gcc-ok消息;否则,若C恶意不同意交易,模拟器就终止该进程
阶段二:资金被转入 F N \mathcal{F}_{\mathcal{N}} FN,模拟器去模拟诚实节点、 F N \mathcal{F}_{\mathcal{N}} FN的行为。1.A在第3轮向 F N \mathcal{F}_{\mathcal{N}} FN发送 ( i o u , s i d , β A C , β B D , △ x , H ⊄ , m g c c A C , m g c c B D ) (iou,sid,\beta_{AC},\beta_{BD},\triangle x,\mathcal{H}_{\not\subset},m_{gcc}^{AC},m_{gcc}^{BD}) (iou,sid,βAC,βBD,x,H,mgccAC,mgccBD),则 S \mathcal{S} S F N \mathcal{F}_{\mathcal{N}} FN的名义向B发送次iou消息;否则,模拟器就终止该进程;3.下一轮,B向 F N \mathcal{F}_{\mathcal{N}} FN回复 ( r e c e i p t , s i d , β A C , β B D , △ x , H ⊄ , m g c c A C , m g c c B D ) (receipt,sid,\beta_{AC},\beta_{BD},\triangle x,\mathcal{H}_{\not\subset},m_{gcc}^{AC},m_{gcc}^{BD}) (receipt,sid,βAC,βBD,x,H,mgccAC,mgccBD) S \mathcal{S} S F N \mathcal{F}_{\mathcal{N}} FN的名义向A,C,B,D发送 ( t r a n s f e r r e d , s i d , β A C , β B D , △ x , H ⊄ , m g c c A C , m g c c B D ) (transferred,sid,\beta_{AC},\beta_{BD},\triangle x,\mathcal{H}_{\not\subset},m_{gcc}^{AC},m_{gcc}^{BD}) (transferred,sid,βAC,βBD,x,H,mgccAC,mgccBD)
阶段三:1.A向C发送 ( i n C h a n n e l U p d a t e , s i d , β A C , m c t , θ w + 1 ) (inChannelUpdate, sid, β_{AC}, m_{ct}, θ_{w+1}) (inChannelUpdate,sid,βAC,mct,θw+1) S \mathcal{S} S以A的名义向 F H \mathcal{F}_{\mathcal{H}} FH发送icu-request消息;2.下一轮C回复A ( c o n f i r m , s i d , m c t , θ w + 1 ) (confirm, sid, m_{ct}, θ_{w+1}) (confirm,sid,mct,θw+1),S以C (conf-ok) to FH in the name of C.

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值