mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-07 22:04:03 -05:00
@@ -14,7 +14,7 @@ $(cm_{c_2},r_{c_2})=COMM(pk^{COIN}||\tau||v_c||\rho_{c_2})$,
|
||||
$\tau$ is the clock current time. \emph{$sn_c$} is the coin's serial number revealed to spend the coin.
|
||||
$$sn_c=PRF_{root_{sk}^{COIN}}^{sn}(\rho_c)$$
|
||||
$$\rho=\eta^{sk_{sl}^{COIN}}$$
|
||||
$\eta$ is is from random oracle evaluated at $(Nonce||\eta_{ep}||sl)$, $\rho$ is the following epoch's seed. $\emph{ptr}$ is the hash of the previous block, $\pi$ is the NIZK proof of the LEAD statement.
|
||||
$\eta$ is from random oracle evaluated at $(Nonce||\eta_{ep}||sl)$, $\rho$ is the following epoch's seed. $\emph{ptr}$ is the hash of the previous block, $\pi$ is the NIZK proof of the LEAD statement.
|
||||
|
||||
## st transactions
|
||||
the blockchain view is a chain of blocks, each block $B_j=(tx_{lead},st)$, while st being the merkle tree structure of the validated transactions received through the network, that include transfer, and public transactions.
|
||||
|
||||
@@ -10,7 +10,7 @@ class SynchedNTPClock(object):
|
||||
|
||||
def __init__(self, epoch_length, slot_length=60, ntp_server='europe.pool.ntp.org'):
|
||||
#TODO how long should be the slot length
|
||||
self.epoch_length=epoch_length # how many slots in a a block
|
||||
self.epoch_length=epoch_length # how many slots in a block
|
||||
self.slot_length=slot_length
|
||||
self.ntp_server = ntp_server
|
||||
self.ntp_client = ntplib.NTPClient()
|
||||
|
||||
@@ -42,7 +42,7 @@ $$sn_{c_i}=PRF_{root_{sk_{c_i}^{COIN}}}^{sn}(\rho_{c_i}), \forall_i \in \{1,2\}$
|
||||
|
||||
## homomorphic encryption mechanism
|
||||
|
||||
spending the coin by nullifier defined as a poseidon hash of the secret key of the sender, and the serial number generated at random as such $H = PRF^{poseidon}(sk||sn)$ as a a proof of burn.
|
||||
spending the coin by nullifier defined as a poseidon hash of the secret key of the sender, and the serial number generated at random as such $H = PRF^{poseidon}(sk||sn)$ as a proof of burn.
|
||||
|
||||
and the tx include encrypted note with the receipient public key
|
||||
``` rust
|
||||
|
||||
@@ -140,7 +140,7 @@ impl Hashable for MerkleNode {
|
||||
/// - the root is at layer 0.
|
||||
/// `l` is MERKLE_DEPTH_ORCHARD - layer - 1.
|
||||
/// - when hashing two leaves, we produce a node on the layer
|
||||
/// above the the leaves, i.e. layer = 31, l = 0
|
||||
/// above the leaves, i.e. layer = 31, l = 0
|
||||
/// - when hashing to the final root, we produce the anchor
|
||||
/// with layer = 0, l = 31.
|
||||
fn combine(altitude: Level, left: &Self, right: &Self) -> Self {
|
||||
|
||||
Reference in New Issue
Block a user