Abric-language-kotlin High Quality May 2026

// Not actual syntax but representative of Abricot style val secretSharing = protocol val s = secretInput(dealer, "secret") val shares = split(s, 3, 5) // 3-out-of-5 sharing send(shares[0] to alice) send(shares[1] to bob) // ...

// build.gradle.kts dependencies implementation("fr.ens.abricot:abricot-core:0.5.0") implementation("fr.ens.abricot:backend-mpc:0.5.0") abric-language-kotlin

val protocol = protocol val x = input(alice) val y = input(bob) val z = add(x, y) output(z, charlie) // Not actual syntax but representative of Abricot

// Locally refresh: new_share = old_share + random_share - random_share_from_prev val newShares = parties.indices.map i -> add(oldShares[i], randoms[i]) "secret") val shares = split(s

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()

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

Zalo
Contact