Abric-language-kotlin

Abricot introduces Secret<T> as a type that cannot be observed by the runtime unless explicitly declassified or reconstructed via MPC. This enables automatic tracking of information flow.

output(finalShares, parties)

val proactiveRefresh = protocol val parties = listOf(p1, p2, p3) val oldShares = inputShares(parties) // Each party generates a random blinding share val randoms = parties.map randomShare() abric-language-kotlin

// Locally refresh: new_share = old_share + random_share - random_share_from_prev val newShares = parties.indices.map i -> add(oldShares[i], randoms[i]) Abricot introduces Secret&lt;T&gt; as a type that cannot

val protocol = protocol val x = input(alice) val y = input(bob) val z = add(x, y) output(z, charlie) Abricot introduces Secret&lt

// Send random contributions to the next party parties.indices.forEach i -> val next = (i + 1) % parties.size send(randoms[i] to parties[next])

// After receiving, subtract the incoming random receiveAll() val finalShares = parties.indices.map i -> val prev = (i - 1 + parties.size) % parties.size sub(newShares[i], randoms[prev])

© Copyright 2021 Shining Rock Software
Website Design & Branding by Carrboro Creative
menu-circlecross-circle linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram