Author

Topic: [ANN][GRV] gravas.network (Read 651 times)

jr. member
Activity: 32
Merit: 1
June 10, 2022, 02:32:10 AM
#11
sorry discord link doesn't work. Is it normal?
newbie
Activity: 21
Merit: 0
May 26, 2022, 08:07:43 PM
#10
Discord is broken, website lists no meaningful information, github is empty.

What is going on with this project? I was so intrigued.
newbie
Activity: 13
Merit: 0
April 22, 2022, 02:35:02 AM
#9
The discord link on your website is broken. Please fix it
newbie
Activity: 4
Merit: 0
April 21, 2022, 02:52:16 PM
#8
This is an incredibly preemptive ANN.  Is mainnet set for Q2/Q3 2023?
We were wondering when someone was going to ask about the site countdown!  The epoch referenced is the phase1 gnode inception.  
While we would always prefer to be preemptive over corrective, the timing of the announcement has more to do with phase0.
News about phase0 PoS launch, wallet release and premine staking mechanism will be coming soon.  


Is it time for some more info?  Is this project mineable?  If so, what algo and when mainnet launch?  Plehz.

We think it is absolutely time for more info.  

We have been... busy.  
Project IS mineable, but with some difficulty if you could ascertain from the descriptions above.
Big news incoming. Whitepaper soon.
newbie
Activity: 21
Merit: 0
February 07, 2022, 08:59:08 AM
#7
This is an incredibly preemptive ANN.  Is mainnet set for Q2/Q3 2023?
We were wondering when someone was going to ask about the site countdown!  The epoch referenced is the phase1 gnode inception.  
While we would always prefer to be preemptive over corrective, the timing of the announcement has more to do with phase0.
News about phase0 PoS launch, wallet release and premine staking mechanism will be coming soon.  


Is it time for some more info?  Is this project mineable?  If so, what algo and when mainnet launch?  Plehz.
newbie
Activity: 4
Merit: 0
January 15, 2022, 07:53:18 PM
#6
This is an incredibly preemptive ANN.  Is mainnet set for Q2/Q3 2023?
We were wondering when someone was going to ask about the site countdown!  The epoch referenced is the phase1 gnode inception.  
While we would always prefer to be preemptive over corrective, the timing of the announcement has more to do with phase0.
News about phase0 PoS launch, wallet release and premine staking mechanism will be coming soon.  
newbie
Activity: 10
Merit: 0
January 15, 2022, 04:32:25 AM
#5
Hello! Wen phase 1 starts ?
newbie
Activity: 21
Merit: 0
January 15, 2022, 01:37:47 AM
#4
This is an incredibly preemptive ANN.  Is mainnet set for Q2/Q3 2023?
newbie
Activity: 4
Merit: 0
January 14, 2022, 03:33:26 PM
#3
Seems a good project. Does pow will start from beging ?


Proof of Work will begin after the first block of phase1 (after the gnode deployment phase)
copper member
Activity: 145
Merit: 0
January 14, 2022, 02:50:06 AM
#2
Seems a good project. Does pow will start from beging ?
newbie
Activity: 4
Merit: 0
January 13, 2022, 07:46:51 PM
#1



@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&*/@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   @@@@@@@@@@@@@@@@@@@#**********&@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   @@@@@@@@@@@@@@@/******************#@@@@@@@@
@@@@@@(        @@@       ,@(       &@@   /@@@%   @@       .@@@@*      /@@@@@@@@        *@@@@@*      #@@@,      .@*   @@@   @@@   .@@@       &@@@#       @@   @@@    @@@@@@@*#@@#************&@@//@@@@@@@
@@@@@   .&&&   @@@   /@@@@@@@@@@@   %@@   @@@   %@@@@@@@/   @@/   @@@@@@@@@@@@@   @@@    @@%   &&&*   @@,   @@@@@@   (@(   .@&   @@    &&&    @@#   @@@@@@   @   .@@@@@@@@@*****/@@&***/@@&*****/@@@@@@@
@@@@%   &&&&   @@@   /@@@@@         #@@&   @   (@@&         @@@(      @@@@@@@@@   @@@(   @@.          @@,   @@@@@@@   @  #  &   @@@   &&&&&   @@#   @@@@@@       @@@@@@@@@@**********@%*********/@@@@@@@
@@@@@          @@@   /@@@@,   &&&   #@@@#     #@@@   /&&&   @@@@@@@@   @@/**@@@   @@@(   @@%   *@@@@@@@@/   @@@@@@@&    ,@*    #@@@.   &&&    @@#   @@@@@@   @&    @@@@@@@@**********@%*********/@@@@@@@
@@@@@@@@@@@@   @@@   /@@@@@*        #@@@@&   &@@@@@         @@        @@@***(@@   @@@(   @@@@/       #@@@%      @@@@%   @@@   /@@@@@@       @@@@#   @@@@@@   @@@/   (@@@@@@**********@%*********/@@@@@@@
@@@@@/        (@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*******@%******/&@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&***@%**/@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@




something important is coming







// decentralization redefined  
// trustless, feeless PoW + PoS  
// hybrid multi-ledger blockchain
// atomic cross-chain interoperability




fn main() {  
    //  the cryptographer's blockchain
.
    let hello.world = "this is gravas. \n
         a group of Satoshi-acolytes, cryptographers and developers \n
         working to bring true decentralization \n
         to the world." ;
    println!("hello, world! {}", hello.world)
}





ultra security and immutability


  • Quantum resistant cryptography via Schnorr signature
  • XChaCha20-Poly1305 encryption

      + XChaCha20-Poly1305 can safely encrypt a practically unlimited number of messages with the same key
      + Up to ~ 264 bytes message size
      + 192-bit nonce size, allows random nonces to be safely used.

    Code:
    use chacha20poly1305::XChaCha20Poly1305;
    use aead::{Aead, NewAead, generic_array::GenericArray};

    let key = GenericArray::clone_from_slice(b"an example very very secret key."); // 32-bytes
    let aead = XChaCha20Poly1305::new(key);

    let nonce = GenericArray::from_slice(b"extra long unique nonce!"); // 24-bytes; unique
    let ciphertext = aead.encrypt(nonce, b"plaintext message".as_ref()).expect("encryption failure!");
    let plaintext = aead.decrypt(nonce, ciphertext.as_ref()).expect("decryption failure!");
    assert_eq!(&plaintext, b"plaintext message")
    let salt = grv.kystr.aed(nonce, timestamp(), cipherdata);

    impl PublicKeyExt for grv.wallet{
        fn encrypt(
            &self,
            plaintext: &[u8],
            associated_data: &[u8],
            nonce: &[u8],
        ) -> Result, chacha20poly1305::aead::Error> {
            PublicKey::from(self).encrypt(plaintext, associated_data, nonce)
        }
    }

    impl zgrv.enc for g.encrypt {
        fn decrypt(
            &self,
            message: &[u8],
            salt: &[u8],
            nonce: &[u8],
        ) -> Result, chacha20poly1305::aead::Error> {
            let mut decrypted = Vec::with_capacity(message.len() - ECIES_HEADER_LEN);
            decrypted.extend_from_slice(&message[ECIES_HEADER_LEN..]);

            let mut grv_public_key = [0_u8; X25519_KEY_LEN];
            grv_public_key.copy_from_slice(&message[0..X25519_KEY_LEN]);
            let grv_public_key = PublicKey::from(grv_public_key);

            let tag = Tag::from_slice(&message[X25519_KEY_LEN..ECIES_HEADER_LEN]);
            PublicKeyEncryption::new(self, &grv_public_key).decrypt_in_place(
                XNonce::from_slice(nonce),
                &mut decrypted,
                salt,
                tag,
            )?;

            Ok(msg)
        }
    }



  • Ed25519 + SkeinHash + Whirlpool key derivation:


        (1)     Ed25519 key pair generation (seed)
                       |
        (2)            |------   Skein-256 hash derived from (1)
                                        |
        (3)                             |------  Whirlpool hash derived from (2)
                                                          |
        (4)                                               |-- RIPEMD-160 hash of base58 string derived from (3)
                                                                   |
        (5)                                                        |---- "g"+`base58 string derived from (4) `  [unique  address]
     



    ed25519:         AAAAC3NzaC1lZDI1NTE5AAAAIB0xfkeoXhefwkcP7OfMmkbjeHiJikuKzEg6Xwc6b8fx
    skein-256-256:   25d32b3a526752aac7e5d853535dbe40279a69a98a75f4b471308f6f39c7beca
    whirlpool:       61WQmi8jGZYEN5uzdzvL8VfUcqUCaAN6Bg1kmVsxHRW3dPinfmp3KYuofJg5TpjN8MjMMwnAym7ttLA hf7ZSCa2G
    ripemd-160:      854a565db0a649cc1f72f81b6281071ed71506dc
     
    address:         g854a565db0a649cc1f72f81b6281071ed71506dc





    gnosis multi-ledger


    • atomic swaps managed by multiple parallel ledgers, the "gnosis" multi-ledger



                             l0      l1      l2    ...     ln
                         || DASH || GRV || BTC || ... ||  ?  ||
                              <----> <----> <---->  <---->
                                 \     /       \    /
                                    o0            ol

                           in : ledger containing data relevant to the tokenized assets in transaction
                           on : oracle link between ledger  l



    • cross-network atomic swaps via embedded smart contract layer in gnosis oracles
    • lightweight CLI written in Rust for tokenization, wallet/node management
    • multi-language integration via SDK's
    • absolutely no vc's or web3's
    • 100% feeless transactions

                      [] transcations on the gravas.network are exlusively feeless and shall remain so for the existence of the network

                      [] feeless transactions are made possible by a consensus "grava" or tax on the network, achieved by either proof of stake or proof of work.

                              - ie. a given delegation transaction must :
                                      1) compute a Proof of Work greater than or equal to the sum of GRV delegation
                                      2) have staked a sum of GRV greater than or equal to the sum of the delegation

       
      Code:
                                     // compute grava

                                      fn set_grv_block(&mut self, head_block: HashDigest, head_timestamp: i64) {
                                              if head_block != self.head_block {
                                              self.head_block = head_block;
                                              self.untried_timestamp = head_timestamp + 1;
                                              self.target_hash = self.target_step.clone();
                                              if self.target_hash.0[self.target_hash.0.len() - 1] < 255 {
                                                      self.target_hash.add_in_place(&self.target_step);
                                              }
                                      }
                                      fn compute_proof_hash(
                                              head_block: &HashDigest, public_key: &PublicKey) -> HashDigest {
                                                      let mut proof_bytes = head_block.0.to_vec();
                                                      proof_bytes.push_all(&public_key.0);
                                              }       hash(&proof_bytes)




      network actors


      phase.0: "contribubutor PoS launch"  
      8 000 000 GRV premine
      Fair-Launch protocol :
                      
      • 0% VC allocation, forever

                        
      • 100% fair launch of premine:



        12-month BTC staking mechanism
        ex. 0.10 BTC stake :
                                        
      • 0.10 BTC staked = 2500 GRV minted
      • staking decay breakdown:

                 duration |   stake   |     mint    |                     summary
                 ---------+-----------+-------------+-----------------------------------------------

                 month 1  | 0.10 BTC  | 1000  GRV   | 0.00 BTC returned , 1000   GRV minted
                 month 6  | 0.08 BTC  | 800   GRV   | 0.02 BTC returned , 800    GRV minted
                 month 7  | 0.06 BTC  | 400   GRV   | 0.02 BTC returned , 400    GRV minted
                 month 8  | 0.05 BTC  | 100   GRV   | 0.01 BTC returned , 100    GRV minted
                 month 9  | 0.04 BTC  | 100   GRV   | 0.01 BTC returned , 100    GRV minted

                                 .
                                 .
                                 .

                 month 12 | 0.01 BTC  | 100   GRV   | 0.01 BTC returned , 100    GRV minted




      phase.1: "gnodes Launch"

      Contributors encouraged to participate in the network by deploying gnodes

                                      
      • PoW reward  60 GRV / block
      • PoS reward  30 GRV / block

      gnodes (nodes):

      • gnodes have embedded oracles with node-specific API

      • gravas (master) node :  gravas ledger
          + requirements: 200 000 GRV

      • gnosis (interop) node : x-chain ledger
          + requirements: 25 000 GRV + PoW
          + liquidity tokenization for X-chain smart contract layer





        network specifications:




        • algorithm implementation

          implementation across the PoW algorithm differs from the PoS algorthm.

           + PoW: sybil-resistant DAG ledger build on modified Quark algorthim

           + PoS:  oracle-linked multi-ledger hashgraph algorithm with virtual-voting process

        • distributed consensus mechanisms
            + deterministic: user-defined representative gnodes must contain the ledger(s) required to process their transactions and will be queried according to their function.

            + passive participation: not all network participants are nodes in the consensus algorithms

            + synchronized: consensus achieved per epoch across all ledgers globally and maintained synchronized via gnosis oracles

          schnorr signature implemented at every transaction

          majority algorithm (part.)
          Code:
              pub fn grv.commit(&self, use_group_commit: bool, l: &impl grv.index) -> (u64, bool) {
                  if self.participants.is_empty() {
                      return (u64::MAX, true);
                  }

                  let mut grv.stack: [MaybeUninit; 7] = unsafe { MaybeUninit::uninit().assume_init() };
                  let mut grv.heap;
                  let matched = if self.participants.len() <= 7 {
                      for (i, v) in self.participants.iter().enumerate() {
                          grv.stack[i] = MaybeUninit::new(l.acked_index(*v).unwrap_or_default());
                      }
                      unsafe {
                          slice::from_raw_parts_mut(grv.stack.as_mut_ptr() as *mut _, self.participants.len())
                      }
                  } else {
                      let mut buf = Vec::with_capacity(self.participants.len());
                      for v in &self.participants {
                          buf.push(l.acked_index(*v).unwrap_or_default());
                      }
                      grv.heap = q.more(buf);
                      grv.heap.as_mut().unwrap().as_mut_slice()
                  };
              pub fn grv.vote(&self, check: impl Fn(u64) -> Option) -> q.res {
                  if self.participants.is_empty() {
                      return q.res::Pass;
                  }

                  matched.sort_by(|a, b| b.index.cmp(&a.index));
                  let quorum = crate::majority(matched.len());

                  let (mut yes, mut missing) = (0, 0);
                  for v in &self.participants {
                      match check(*v) {
                          q.more(true) => yes += 1,
                          q.less => missing += 1,
                          _ => (),
                      }
                  }
                  let q = crate::majority(self.participants.len());
                  if yes >= q {
                      q.res::Pass
                  } else if yes + missing >= q {
                      q.res::Ind
                  } else {
                      q.res::Fail
                  }
              }


          (c) 2022 THE GRAVAS DEVELOPERS
          https://gravas.network
Jump to: