安全なマルチパーティ計算を使用するプログラムに次のコードスニペットがあります。
c = self.runtime.open(b) # open result
c.addCallback(self.determine)
j = self.compute(i)
return j
この関数determine
は、c の値に応じてブール値を false または true に設定します。このブール値は、関数によって使用されますcompute
。
プログラムの残りの部分が実行される前に、コールバックが常に最初に実行されると思いました。ただし、compute
ブール値が定義されていないというエラーが発生します。
が実行される前に コールバックを強制的に実行するにはどうすればよいcompute
ですか?
セキュアなマルチパーティ計算フレームワーク内で作業しているため、値c
が共有秘密であるため、コールバックを使用する必要があります。ただし、秘密の共有がないと問題が発生することもあると思います。言語はパイソンです。
とのコードは次のようになりますdetermine
。compute
def determine(c):
global computeB
computeB = False
if c == 1:
computeB = True
else:
computeB = False
return c
def compute(i):
if computeB:
do this
else:
do this
return result