美文网首页
Aleo介绍

Aleo介绍

作者: 雪落无留痕 | 来源:发表于2021-06-07 00:57 被阅读0次

    Aleo允许构建高效,安全和匿名的应用。

    基本概念

    账户

    账户包括 private key, view keyaddress

    private key: 用于授权交易,更新账户记录record的全局状态

    proving key: 由私钥派生,可允许其他证明者为用户交易生成证明

    view key: 用于解密账户记录record, recordaddress进行加密

    address: 用于和他人交互,发送和接收record的应用数据

    程序

    program 用于表示应用程序的逻辑和状态。Aleo引入一种新的编程语言Leo 用于开发匿名应用。 Leo 是一种静态的,功能型编程语言,用于开发隐私保护的应用。

    circuit Point {
        x: u32,
        y: u32,
    
        function new() -> Self {
            return Self { 
                x: 0, 
                y: 0, 
            };
        }
    
        function add(self) -> u32 {
            return self.x + self.y;
        }
    }
    
    function main() {
        let p = Point::new();
        
        p.x = 4u32;
        p.y = 6u32;
    
        let sum = p.add();
        
        console.log("The sum is {}", sum);
    }
    

    ID: 每个program 有一个ID, 由验证密钥的hash生成;

    input: 由用户提供的程序运行的输入,输入为隐私的,除非用户想公开;

    state: 应用的状态;

    output: 用于表示应用的输出,由零知识证明验证输出的有效性;

    程序寄存器: 允许两个program运行时进行交互。

    记录

    record 用来编码用户资产和应用程序的状态。

    每个交易可以消耗一个record, 并生成新的record

    record 的结构如下:

    • owner: 拥有者地址;
    • value: 记录的金额;
    • payload: 记录任意应用程序信息;
    • birth program id: 创建record时指定;
    • death program id: 在消耗record时指定。
    • serial number nonce: 当record被花掉时,生成的一个随机数, 用于防止双花;
    • commitment randomness: 生成record commitment

    交易

    交易的结构如下:

    • old_serial_number: 被花掉的record 的序列号;
    • new_commitments: 新生成的记录的承诺;
    • program_commits: 程序的承诺
    • local data root:对 old records, new records, memorandum, network ID 的承诺
    • value balance: 输入减输出的值,用于计算fee。
    • memorandum: 交易的任意公开的信息
    • networkID: 网络id
    • signatue: 交易的签名
    • Ledger digest:包含所有记录承诺的Merkle 树根
    • Encrypted record: 交易新创建的记录
    • transaction proof : 交易的证明,用于证明交易的有效性

    区块

    区块的结构如下:

    • header: 区块头,503个字节;
    • num_transactions 交易的个数;
    • transactions: 交易的列表

    区块链头header包括如下字段:

    • previous block hash: 前一区块链的hash;
    • Merkle root hash: 所有交易Merkle树的根;
    • Pedersen Merkle root hash: 所有交易的Merkle 树的根,采用pedersen hash计算;
    • proof of succint work: 共识的证明;
    • timestamp: 时间戳
    • Difficult Target: 动态设置挖矿的难度值;
    • Nonce: POSW谜题的解

    共识机制

    Aleo采用POSW (Proof of Succinct Work ) 共识机制,由一种基于SNARK的POW算法,用于激励开发SNARK加速的硬件。

    矿工主要需要计算一个有效的nonce, 解决POSW谜题。

    参考

    https://aleo.org/post/welcome-to-aleo

    https://github.com/AleoHQ/snarkVM

    https://github.com/AleoHQ/leo

    https://github.com/AleoHQ/zexe

    https://github.com/AleoHQ/welcome

    https://aleo.pm/

    https://developer.aleo.org/aleo/getting_started/overview/

    相关文章

      网友评论

          本文标题:Aleo介绍

          本文链接:https://www.haomeiwen.com/subject/kujheltx.html