精华内容
下载资源
问答
  • 区块链 加密经济学的三个实例 目前至少有三种正在设计中的系统可以被称为“加密经济”。 示例1:共识协议 区块链不必依靠中心信任方便能够达成可靠的共识,是密码经济设计的产物。 我们上文探讨过的比特币解决方案...

    区块链 加密经济学的三个实例

    目前至少有三种正在设计中的系统可以被称为“加密经济”。

    示例1:共识协议 区块链不必依靠中心信任方便能够达成可靠的共识,是密码经济设计的产物。 我们上文探讨过的比特币解决方案叫做“工作量证明”共识,因为矿工必须进行工作(投入硬件和电力),才能参与网络并获得挖矿奖励。

    改进工作量证明系统和设计替代方案是加密经济研究和设计的一个领域。以太坊目前的工作量证明共识机制包含了许多对原始设计的变化和改进,从而实现更快的出块时间,并更能抵抗由ASIC导致的采矿集中。

    在不久的将来,以太坊计划迁移到一个名为Casper的“权益证明”共识协议。 这个协议可以替代工作证明,不需要进行大家熟知的挖矿,因此也就无需专门的挖矿硬件也不需要大量的电力支出。

    要知道,要求矿工购买硬件和花费电力的目的是为了增加矿工的成本,作为提高51%攻击的累积成本的一种方式,导致其成本太高。利益证明制度是使用加密货币保证金来创造相同的抑制性,而不是像硬件和电力这样在真实世界投资。

    为了在证明利益系统中“挖矿”,你必须将一定数量的以太币存进“保证金”智能合约。就像在工作量证明中一样,这么做大大提高了51%攻击的成本,攻击者将不得不投入大量的以太币来成功攻击网络,而他们将在随后永远失去这部分以太币。

    Casper由 Vlad Zamfir , Vitalik Buterin 和其他几个以太坊基金会成员设计。 你可以在 Zamfir 的这个系列文章(编者按:EthFans中译本见文末)中获得关于Casper设计历史的更多内容,他在最近的播客中也经常谈论这个。Buterin在这里(编者按:EthFans中译本见文末链接)写了一篇关于Casper的设计哲学的长文,并在 ethereum GitHub wiki 上解答了有用的常见问题。

    例2:加密经济的应用设计 一旦我们解决了区块链共识的根本性问题,我们就能够在类似“以太坊”这样的区块链区块链交易所、软件开发13828819057上构建应用程序。 底层区块链为我们提供了(1)一个可以用来创造激励和惩罚的价值单位,以及(2)一个工具包,我们可以用“智能合约代码”的形式来设计条件逻辑。 这些工具也可能是加密经济设计的产物。

    例如,预测市场 Augur 依赖加密经济机制才能发挥作用。 Augur 使用它的本地代币 REP 创建一个奖励系统,如果用户向应用程序报告“真相”,就可以获得奖励,随后这个“真相”会被用来结算预测市场的赌注。这一创新之处使去中心化预测市场成为可能。 另一预测市场 Gnosis 也使用了类似的方法,虽然也让用户指定其他机制来确定真正的结果(通常称为“预言机”)。

    加密经济学也被用于设计代币销售或ICO。 例如,Gnosis 使用“荷兰式拍卖”作为其代币拍卖的模型,理论上来说,这样可以带来更加公平的分配(一个结果好坏参半的实验)。我们前面提到,机制设计的实际运用领域之一是拍卖,代币销售为我们提供了一个应用这一理论的新机会。

    与建立底层共识协议相比,代币销售机制是一个不同的问题,但是两者有着足够多的相似之处,都可以看作是加密经济。 建立这些应用程序需要了解激励机制是如何影响用户行为的,还需要能够可靠地产生某种结果的经济机制的设计。他们还需要了解构建应用程序的底层区块链有哪些功能和限制。

    还有许多区块链应用程序并不是加密经济学的产物。例如,Status 和 MetaMask ,这些应用程序属于允许用户与以太坊区块链进行交互的钱包或平台。除了那些已经属于底层区块链的一部分加密经济之外,这些机制不涉及任何其他的加密经济机制。

    例3:状态通道 加密经济学还包括在个体间设计更小的交互实践, 其中最著名的是状态通道。 状态通道不是一个应用程序,而是一个有价值的技术,大多数区块链应用程序可以使用该技术来提高效率。

    区块链应用的根本局限在于区块链很贵。 发送交易需要费用,使用以太坊运行智能合约代码对于其他类型的计算来说成本相对较高。 状态通道让我们可以通过将多个进程移动到链下来提高区块链的效率,同时保持通过使用加密经济设计区块链值得信赖这一特征。

    假设Alice和Bob想要进行大量但每次小额的加密货币交易,正常情况下,他们会通过将交易发送到区块链来完成交易。但这样做效率很低,需要支付交易费用,并等待新区块的确认。

    想象一下,如果Alice和Bob签署本可以直接上链却没有上链的交易呢?他们可以把交易来回发送,而且想多快都行,这一步没有任何费用,因为没有交易触及到区块链。 每次交易都会“胜过”前一次,并更新双方的余额。

    当Alice和Bob完成小额支付交易时,他们向区块链提交最终状态(即最近签署的交易)并“关闭”该通道,仅需支付单次交易费,他们就可以进行无限次的交易。 他们可以相信这个流程,因为双方都知道在他们之间的每次交易都可能在区块链上更新。 如果通道设计得当,没人可以作弊,比方说,尝试提交以前更新的状态,并把这种状态当做最新的状态,因为区块链一直都是可用的。

    为了便于说明,你可以将其视为与我们与其他可信来源(如法律系统)进行互动的方式。 当双方签订了合同,他们在大部分情况下不需要将合同提交给法院,请法官来解释并强制执行合同。 如果合同设计得恰到好处,双方只要做他们承诺要做的事情,根本不需要劳烦法院。 由于任何一方都有可能把对方告上法庭,并请求强制执行合同,这足以使合同有效。

    这种技术(状态通道)不仅对支付有用,而且对于以太坊计划状态的任何更新都是有用的,因此称其为“状态通道”要比称为狭义的“支付通道”更贴切。除了可以来回发送支付交易,用户还可以来回发送更新到智能合约上。有必要的话我们甚至可以发送整个以太坊智能合约到区块链来执行。这些程序即便不执行也有用。他们所需要的只是一个足够高的保证——如果有必要的话一定可以执行的保证。

    未来,大多数区块链应用程序将以某种形式使用状态通道。较少的链上操作几乎已成为强制性的改进,如今在链上完成的许多操作以后可以移入状态通道,同时保持足够程度的安全性。

    上面的描述跳过了很多不同状态通道运行的重要细节和的细微的差别。Ledger Labs 在去年夏天建立了一个模型,展示了基本的概念,在那儿你可以了解到更多的细节。

    转载于:https://juejin.im/post/5c41738af265da614274292f

    展开全文
  • 上篇我们大概认识了哈希,对称和非对称加密算法,混合加密机制,这一次继续认识下OpenSSL加密标准,PKI加密体系,以及同态加密的概念。 (5)OpenSSL标准 OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用...

    前言

    上篇我们大概认识了哈希,对称和非对称加密算法,混合加密机制,这一次继续认识下OpenSSL加密标准,PKI加密体系,以及同态加密的概念。

    (5)OpenSSL标准

    OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL()协议,并提供丰富的应用程序供测试或其它目的使用。

    OpenSSL并不是一种加密算法,它只是为加密算法提供了一个标准。我们这里用OpenSSL加密标准实现以下RSA加密。

    """
        @author: chaors
    
        @file: RSA.py
    
        @time: 2018/04/10 21:00
    
        @desc: 非对称加密算法:openSSL
    """
    
    import rsa
    import base64  #编码库
    from OpenSSL.crypto import PKey  #处理公钥
    from OpenSSL.crypto import TYPE_RSA, FILETYPE_PEM, FILETYPE_ASN1  #处理文件
    from OpenSSL.crypto import dump_privatekey, dump_publickey  #key写入文件
    
    pk = PKey()  #调用openssl加密标准
    pk.generate_key(TYPE_RSA, 1024)  #1024位rsa类型
    print(pk)
    
    #秘钥写入文件
    pubkey_file = dump_publickey(FILETYPE_PEM, pk)
    privatekey_file = dump_privatekey(FILETYPE_ASN1, pk)
    
    #秘钥读取
    pubkey = rsa.PublicKey.load_pkcs1_openssl_pem(pubkey_file)
    privatekey = rsa.PrivateKey.load_pkcs1(privatekey_file, "DER")
    # privatekey1 = rsa.PublicKey.load_pkcs1_openssl_pem(privatekey_file)
    
    print(pubkey.save_pkcs1())
    print(privatekey.save_pkcs1())
    # print(pubkey, privatekey, privatekey1)
    
    data = rsa.encrypt("自古多情空余恨,此恨绵绵无绝期".encode("utf-8"), pubkey)  #加密
    data = base64.b64encode(data)
    print(data)
    data_d = rsa.decrypt(base64.b64decode(data), privatekey)  #解密
    print(data_d.decode("utf-8"))
    复制代码

    (6)PKI加密体系

    PKI并不代表某个特定的密码学技术和流程,PKI是建立在公私钥基础上实现安全可靠传递消 息和身份确认的一个通用框架。实现了PKI的平台可以安全可靠地管理网络中用户的密钥和 证书,包括多个实现和变种,知名的有RSA公司的PKCS(Public Key CryptographyStandards)标准和X.509规范等。

    一般情况下,PKI至少包括如下组件:

    • CA(Certification Authority):负责证书的颁发和作废,接收来自RA的请求,是最核心的部分;

    • RA(Registration Authority):对用户身份进行验证,校验数据合法性,负责登记,审核过了就发给CA;

    • 证书数据库:存放证书,一般采用LDAP目录服务,标准格式采用X.500 系列。

    CA 是最核心的组件,主要完成对证书的管理。

    常见的流程为,用户通过RA 登记申请证书,CA 完成证书的制造,颁发给用户。用户需要撤 销证书则向CA 发出申请。

    之前章节内容介绍过,密钥有两种类型:用于签名和用于加解密,对应称为 签名密钥对 和 加 密密钥对 。

    用户证书可以有两种方式。一般可以由 CA 来生成证书和私钥;也可以自己生成公钥和私钥, 然后由 CA 来对公钥进行签发。后者情况下,当用户私钥丢失后,CA 无法完成恢复。

    PKI体系的简单使用
    """
        @author: chaors
    
        @file: PKIDemo.py
    
        @time: 2018/04/10 21:56
    
        @desc: PKI体系
    """
    
    from  Crypto import  Random  #随机数
    from  Crypto.Hash import SHA  #哈希
    from Crypto.Cipher import PKCS1_v1_5 as CPKCS1_v1_5  #PKI体系加解密标准
    from  Crypto.Signature import PKCS1_v1_5 as SPKCS1_v1_5  #PKI体系签名标准
    from Crypto.PublicKey import RSA
    import base64
    
    rand_maker = Random.new().read  #随机数生成器
    rsa = RSA.generate(1024, rand_maker)  #RSA实例
    #生成秘钥
    public_pem = rsa.publickey().exportKey()
    private_pem = rsa.exportKey()
    
    #保存秘钥
    with open("master-public.pem", "wb") as file:
        file.write(public_pem)
    with open("master-private.pem", "wb") as file:
        file.write(private_pem)
    
    msg = "桃花树下桃花庵"
    #加解密
    with open("master-public.pem", "rb") as file:  #读取公钥加密
        key = file.read()  #读取key
        rsakey = RSA.importKey(key)  #导入key
        cipher = CPKCS1_v1_5.new(rsakey)  #遵循KPI标准
        cipher_txt = base64.b64encode(cipher.encrypt(msg.encode()))
        print("PKI encrypt:", cipher_txt)
    
    with open("master-private.pem", "rb") as file:  #读取私钥解 密
        key = file.read()  #读取key
        rsakey = RSA.importKey(key)  #导入key
        cipher = CPKCS1_v1_5.new(rsakey)  #遵循KPI标准
        txt = cipher.decrypt(base64.b64decode(cipher_txt), rand_maker)
        print("PKI decrypt:", txt.decode())
    
    #签名
    with open("master-private.pem", "rb") as file:  #读取私钥签名
        key = file.read()  #读取key
        rsakey = RSA.importKey(key)  #导入key
        signer = SPKCS1_v1_5.new(rsakey)  #PKI体系签名工具
        digest = SHA.new()  #签名算法
        digest.update(msg.encode())  #导入签名数据
        sign = signer.sign(digest)  #签名
        signature = base64.b64encode(sign)  #编码
        print("PKI Sign:", signature)
    
    with open("master-public.pem", "rb") as file:  #读取公钥验签
        key = file.read()  # 读取key
        rsakey = RSA.importKey(key)  # 导入key
        signer = SPKCS1_v1_5.new(rsakey)  # PKI体系签名工具
        digest = SHA.new()  # 签名算法
        digest.update(msg.encode())  # 导入签名数据
        print("PKI SignVerify:", signer.verify(digest, base64.b64decode(signature)))
    复制代码

    (7)同态加密

    同态加密(Homomorphic Encryption)是一种特殊的加密方法,允许对密文进行处理得到仍 然是加密的结果,即对密文直接进行处理,跟对明文进行处理再加密,得到的结果相同。从 代数的角度讲,即同态性。

    同态加密在云时代的意义十分重大。目前,从安全角度讲,用户还不敢将敏感信息直接放到 第三方云上进行处理。如果有了比较实用的同态加密技术,则大家就可以放心的使用各种云 服务了。遗憾的是,目前已知的同态加密技术需要消耗大量的计算时间,还远达不到实用的水平。

    如果我们有一个加密函数 f , 把明文A变成密文A’, 把明文B变成密文B’,也就是说 f(A) = A’ , f(B) = B’ 。另外我们还有一个解密函数 f1能够将 f 加密后的密文解密成加密前的明文。

    对于一般的加密函数,如果我们将A’和B’相加,得到C’。我们用f1对C’进行解密得到的结果一般是毫无意义的乱码。

    但是,如果 f 是个可以进行同态加密的加密函数, 我们对C’使用 f1进行解密得到结果C, 这时候的C = A + B。

    """
        @author: chaors
    
        @file: HomomorphicEncryption.py
    
        @time: 2018/04/10 22:33
    
        @desc: 同态加密
    """
    
    import numpy as np
    
    #制造key
    def create_key(w, m, n):
        S = (np.random.rand(m, n)*w/(2**16))  #随机数 max(S) < w
    
        return S
    #加密
    def encypt(x,
               S,  #秘钥
               m,
               n,  #范围
               w):  #向量
        e = (np.random.rand(m))  #随机数
        c = np.linalg.inv(S).dot((w*x)+e)  #加密
    
        return c
    #解密
    def decrypt(c, S, w):
    
        return (S.dot(c)/w).astype("int")  #解密
    
    if __name__ == '__main__':
        x = np.array([1, 99, 250, 999, 33, 66, 512, 4096])
        print("x:",x)
    
        m = len(x)
        n = m
        w = 16
        S = create_key(w, m, n)
        print("key:", S)
        c = encypt(x, S, m, n, w)
        print("同态加密:", c)
        print("同态解密:", decrypt(c, S, w))
        #s*c = wx+e
    复制代码

    这个同态加密小白我也是第一次听,看着多少还是有点懵逼。还不是太懂,不过今天就只能写到这了。

    展开全文
  • 没有区块链 没有总帐 非常快,因为去中心化 比比特币便宜100倍 工作量证明 独特的共识协议 预先开采,总容量为20亿ZLD 匿名 用Ruby写 您可以在找到更多详细信息。 您也可以在论坛上找到我们。 加入我们的,现场...
  • Libra协议允许一组来自不同权威机构的副本(也就是校验器)共同维护可编程资源的数据库。 坦白说,这个系统将由一组权威机构以自上而下的方式控制。然而,请注意,该数据库是为“可编程资源”建造的,而不仅仅是为数字...

    全文共5861字,预计学习时长12分钟

    打开百度App,看更多图片
    libra是Facebook新推出的加密货币。Libra协议允许一组来自不同权威机构的副本(也就是校验器)共同维护可编程资源的数据库。
    坦白说,这个系统将由一组权威机构以自上而下的方式控制。然而,请注意,该数据库是为“可编程资源”建造的,而不仅仅是为数字货币建造。
    这些资源通过公钥加密身份验证的不同用户账户所有,且用户需要遵循开发这些资源的工程师详细定制的规则。
    诸如“资源”这一类通用词汇的使用,让人不禁猜想,这不仅仅是为稳定数字币所建的数据库。
    交易基于预定义及用户定义(在未来版本中)的智能合约,其由一种全新的编程语言进行编程——Move。使用Move语言来定义区块链的核心机制,比如货币和校验器会员资格。
    使用定制的智能合约语言会导致很多问题,比如该语言的功能有多丰富,以及该系统因此在抵御对抗性合约方面有多强大。还有一些问题:对开发人员是否友好,以及Libra能在多大程度上防止智能合约的开发人员搬起石头砸自己的脚。
    这些核心机制可以创建一种独特的治理机制,在早期,该机制建立在现有机构的稳定性和声誉之上,但随着时间的推移,其会过渡成完全开放的系统。
    如此看来,在投票系统和一些现存口碑的帮助下,Libra协会将会愈加壮大。在这里插入图片描述
    1. 导论

    图片来源:pexels.com/@pixabay
    这个生态系统将提供一种全新的全球货币——Libra数字货币——一篮子银行存款和高质量的央行国债对其鼎力支持。
    Libra是一个通用加密资产协议,而其第一份资产将会是稳定数字币。
    随着时间的推移,Libra的会员资格将完全开放,依据Libra的持有量决定会员的资格。
    听起来很像权益证明。显然,计划是在五年后开放会员资格,希望到时候他们能搞懂权益证明——尽管有可能他们会遇到与以太坊(Ethereum)相同的问题。
    该协会发表了一些报告,概述了向无许可系统转变的蓝图。
    可以肯定这会是分布式网络从许可系统到无许可系统的首次过渡。或许整个网络都可以转变为权益证明,但为了维持稳定数字币的钉住汇率制/一篮子汇率制,一些实体必须与传统金融体系保持互通。这一点将通过Libra协会持续集中控制。
    校验器轮流推动接受交易的进程。当校验器充当领导者时,无论是由客户直接提交的交易,还是由其他校验器代为提交的交易,都由其向其他校验器提出交易。所有校验器都执行交易,并组建出一个包含新分类帐历史记录的认证数据结构。作为一致性协议的一部分,校验器就此数据结构的身份认证器进行投票。
    听起来有点像实用拜占庭容错算法, 这个算法已经有20年历史,且已被人们充分理解,虽然他们或许做出过一些调整。在白皮书的第5节中可以了解到,这个投票叫作LibraBFT,是HotStuff一致性协议的变体。
    作为在i版本中提交T i交易的一部分,一致性协议在版本i中输出表示数据库完整状态(包括整个历史记录)的签名,以便认证对客户查询的回应。
    这一点值得注意,因为这意味着新校验器能够登入网络并实现快速同步,而不必回顾区块链的整个历史,当然前提是现有的校验器是被信任的。
    这种账户模式说得通,因为Facebook可能不太关心隐私,但他们对智能合约却很感兴趣。在这里插入图片描述
    2. 逻辑数据模型
    Libra协议用基于帐户的数据模型对分类帐的状态进行编码。
    从数据结构的角度来看,Libra更像是以太坊(Ethereum )或瑞波(Ripple),而不是比特币(Bitcoin)。UTXO模型有优点也有缺点:由于其输出型历史的简单性,它会有更好的私密性和更为健全的交易记录,但若用这个模型处理复杂的智能合约可能会更加困难。因此,这种账户模式说得通,因为Facebook可能不太关心隐私,但他们对智能合约却很感兴趣。
    Libra协议不会把账户和真实世界的身份联系起来。用户可以通过生成多个密钥,自由地创建多个帐户。由同一用户控制的多个帐户之间没有内在的联系。该方案效仿比特币(Bitcoin)和以太坊(Ethereum),为用户提供假名。
    这种制度听起来很不错,但是不知道这种制度是否也适用于Libra数字货币这项资产。有一些开发人员致力于开发极其重视隐私性的应用程序,对于他们来说,观察这个系统的开放程度是很有意思的。
    模块会为每一资源申报类型。资源类型是由类型名称和资源申报模块的名称和地址组成的名义类型。
    用户可以生成一个地址,而这个地址会带有随机数量的资产,只要每个资产名称是独一无二的就好。
    执行一笔Ti交易将生成一个新的Si分类帐状态、执行状态代码、气体使用情况和事件表。
    现在可以假设这个系统免遭资源耗竭攻击的方式是利用了一套与以太坊(Ethereum)相似的资源成本系统。
    在分类账的历史上没有交易的概念。
    实际上,在Libra协议中没有区块链数据结构,这更像是一个虚拟的逻辑结构,校验器用它来协调已认证的系统状态快照。现在再看,这一部分的第一句话就更合情合理了:
    Libra区块链中的所有数据都存储在一个单一版本的数据库中。版本号是一个未签名的64位整数,对应于系统执行的交易号。
    几乎每种熟知的加密资产网络,都有着大致相同的运行方式: 先有一个系统状态,然后执行一笔交易,该交易实际上是一个状态转换函数,然后一个新的系统状态出现。
    在这里插入图片描述
    将多笔交易放入本地编辑或代码块的目的是对它们进行排序和时间标记。这一点对于无许可网络来说非常重要,通过动态多方会员签名验证网络中的数据,而校验器可以自由的登入和登出网络。因为Libra运行的系统是经过许可的,所以它可以使用更有效的一致性算法,它不需要批处理交易,因为交易记录基本不会被重写。
    在Libra协议的最初版本中,用户只能使用Move语言的一小部分功能。尽管Move语言是用于定义核心系统概念的,例如Libra数字货币,但是用户无法发布用以申报其资源类型的自定义模块。这种方法可以让Move语言和工具链在向用户公开之前,根据执行核心系统组件的经验走向成熟。这种方法还避免了交易执行和数据存储方面的可伸缩性挑战,而这些挑战是通用智能合约平台所固有的。
    这听起来非常像前文提到的“开放检验器会员资格”计划。看来以太坊(Ethereum )多年来一直在努力解决的这些重大问题,Facebook也还没能解决。
    为了管控对计算量的需求,Libra协议对使用Libra币计价的交易收取交易费。
    Libra币实际上是协议的原生单位,就像ETH是以太坊的原生单位一样。这就引出了另一个关于Libra的假名性质的问题:在没有阵列机语言(AML)/了解客户规则(KYC)的情况下能获得电子货币吗?如果不能,那就意味着匿名状态下无法使用系统的任何功能。从Calibra电子钱包来看,它需要使用阵列机语言(AML)/了解客户规则(KYC)。所以最终是否会有一些系统的入口不受严格控制。
    该系统旨在有足够能力时,在正常运行期间收取低额费用。
    这个概念非常模糊,并引出许多问题: 什么是低额费用? 什么是正常运行? 什么是足够能力?
    在这里插入图片描述
    3. 执行交易
    区块链的许多核心逻辑模块都是由Move语言定义的,包括扣除天然气费用。为了避免循环,VM在执行这些核心组件时禁用了气体计量。
    这听起来相当危险。但是,文件的作者指出,必须编写防御式的核心组件以防止拒绝服务攻击。
    Move的关键特征是能够定义自定义资源的类型…该类型的系统提供特殊的资源保障服务,资源只能移动而无法复制。Move虚拟机静态操作可以实现保障,这样我们能够在Move语言里将Libra硬币当作一种资源。
    这就回答了之前的问题:Libra硬币能否像以太币和比特币一样是一种天然资产呢?我们希望这些硬币是系统启动时的默认或唯一允许的资源类型,其他的资源之后提供。
    Move基于堆栈的字节码比高级源代码的指令更少,此外,每个指令语义简单,可以通过更少的原子步骤表达。这不仅减少了Libra协议的规范存储空间,而且更容易发现执行错误。
    听起来是经过深思熟虑的,这很有可能意味着它们的脚本语言的安全性比以太坊得到更严格的审查。
    我们看到的Libra区块链实则并非区块链。

    在这里插入图片描述
    4. 经过验证的数据结构和存储

    图片来源:pexels.com/@moose-photos-1
    Libra协议使用梅克尔树为分类账历史提供经过验证的数据结构…具体来说就是分类账历史运用梅克尔树的累加法形成梅克尔树,同时也提供了高效的附加操作。
    再一次可以看到,Libra区块链并不是真正意义上的区块链。奇怪的是,这项协议似乎是经过精心起草的,然而当分类账历史的数据结构是一系列被标记的账户状态时,仍将其称之为区块链。验证器正在为每一个分类账状态提供保障,所有的历史分类账状态在梅克尔树中同样得以承诺。但是,我们还没看到任何形成链的反向链表,更别说形成区块了。
    账户的验证器是此序列化表示的哈希值。
    值得注意的是,这种表示法要求在对账户进行修改之后重新计算整个账户的身份验证。这一操作的代价是O(n),其中n是指一个完整账户的字节表示长度。
    如果没有对给定账户的数据存储量设定限制的话,这听起来像是对拒绝服务攻击敞开了大门。
    我们预计,随着系统的使用,与账户相关的存储增长可能会成为一个问题。正如天然气行业鼓励大家负责任地使用计算资源一样,我们可能需要一个基于租赁的存储机制。为此,我们正在探索一系列方法以建立最适合生态系统的租赁机制。
    还有一个问题尚未解决,那就是租赁成本太高了。
    为了使客户端同步到新配置,投票权必须在纪元期间以及之后的一段时间内保持公平公正。离线时间超过这段时期的客户机需要使用外部数据源重新同步,以获取其信任的查核点。
    “这段时期”有多长还不得而知,但如果一个纪元还不到一天的话,那估计这里所指的“这段时期”也是如此。这一共识协议似乎还不够稳健,参与者可能会随时离开并重新进入它们想要加入的网络。
    在这里插入图片描述
    5. 拜占庭容错共识
    LibraBFT假设一组3f+1的投票分布在一系列验证器中,这些验证器有值得信任的,也可能存在拜占庭成员。当最多有f票被拜占庭验证器所控制时,LibraBFT仍然是安全的,可以防止双重支付或叉形指令等攻击。
    这种一致性算法类似于实用拜占庭容错算法,最高可容忍33%的验证器出现错误。而HotStuff修正听起来很合理:

    1. 验证器对区块状态(而非仅仅是交易序列)进行标记以防止非确定性漏洞。
    2. 验证器依托于特定数量的有超时设定功能的起搏器来进入下一个环节——这可以提升延续性。
    3. 无预测的领导机制限制拒绝服务攻击。
    4. 聚合签名保留了签署法定证书的身份验证器以支持块接收。
      在这里插入图片描述
      6. 网络
      Libra协议中的每个验证器都维护着系统的所有成员关系,并直接连接到需要与之通信的任何验证器。不能直接连接的验证器视为在系统所能容忍的拜占庭式故障的范围内。
      想要将系统扩展至成百上千个验证器,需要进行大量的工作。
      在这里插入图片描述
      7. Libra Core软件执行
      Libra区块链的安全性取决于验证器、Move程序和Move服务器的正常运行,而LibraCore所存在的一系列问题仍有待解决。
      总而言之,他们在Rust中编写了执行程序,对于性能和安全性来说也算得上是一个良好的开端。
      在这里插入图片描述
      8. 性能
      我们预计Libra协议的首次实施将可以支持每秒1000次支付交易,每次交易的提交与确认之间有10秒钟的间隙。
      由于只有100个左右的验证器,而且它们都是相互直接连接的,所以10秒的轮档时间应该是可行的。
      最小节点要求:
      · 40 Mbps 互联网连接
      · 1个中央处理机
      · 16 TB固态驱动器
      之前有一些关于维护验证器从头执行初始同步(而非信任其它验证器的标记状态)的能力的引用。我估计,如果Libra得以广泛应用,那么这种执行将变得非常不切实际。因此,节点安全模型将高度依赖于信任验证器。
      在这里插入图片描述
      9. Move语言执行Libra生态系统策略
      在这里插入图片描述
      图片来源:pexels.com/@davidmcbee
      Libra硬币的储备是实现保值的关键机制。通过储备,每枚硬币都有一套稳定的流动资产作为后盾。Libra硬币的合同允许协会在需求增加时铸造新硬币,当需求减少时销毁它们。该协会不能制定货币政策,只能根据授权经销商的要求生产或销毁硬币。用户不必担心通胀或货币贬值。因为想要铸造新硬币,必须有相应的法定存款准备金。
      但是,我们现在讨论的是网络外部的事件。正如前面白皮书所述,网络无法执行使用网络外部数据输入的脚本。因此,上述代码片段中的“可以”和“必须”等修饰语所指的肯定是Libra协会政策或合同义务,而网络内部对此一无所知。
      共识算法依赖于设置了验证器集管理的Move模块来维护当前的验证器集,并管理验证器之间的投票分配。最初,Libra的区块链只给创始成员投票。
      假设验证器对验证器集的更改进行投票,听起来这会导致我们在股权系统证据中看到的类似问题——即远程攻击。如果创始成员的私钥的一个阈值被破坏,那么攻击者可以重新编写一个新的分类帐历史记录吗?如果是,其他节点会接受吗?目前尚不清楚共识协议是否允许重写历史记录,还是只允许追加。
      我们计划逐步过渡到权益证明,以期解决其它问题。
      在这里插入图片描述
      Q&A
      1. 管理如何运作?
      Libra协会是一个由会员组成的委员会,需要获得2/3的绝对多数投票才能改变决策。他们是唯一有权生产或销毁Libra硬币的人,但如果能达成一定共识,他们可以做出任何他们想要的改变。
      2. 是否需要AML(反洗钱) / KYC(了解你的客户)?
      显然,协议级别并不需要。但是,Calibra钱包声称所有的用户都会通过政府发行的身份证进行验证。Calibra钱包看似是至少一段时期内唯一可用的钱包了,目前还不清楚开发人员和用户是否可以在Libra网络上运行那种遵守与Calibra不同标准的应用程序。
      3. 什么是低费用?什么是正常操作?什么才算足够的容量?
      Calibra钱包常见问题承诺收取较低的费用,但这似乎与在高负载状态下底层协议的运行相冲突。
      交易费用是低成本的和透明的,尤其是国际汇款。Calibra将通过削减费用的方式帮助用户省钱。
      4. Libra真的会对开发者开放吗?
      根据计划向非许可型共识发展:
      Libra区块链向所有人开放,任何消费者、开发人员或企业都可以使用Libra网络,在此基础上构建产品,并通过提供服务增加价值。开放获取确保了较低的进入壁垒和创新,鼓励有利于消费者的健康竞争。开放获取使得进入和创新壁垒较低,促进了良性竞争,消费者将从中获益。
      对于研发人员是否能够在这个平台上运行他们理想中的任何有效的技术性应用程序,相信时间会告诉我们答案。
      在这里插入图片描述
      留言 点赞 关注

    我们一起分享AI学习与发展的干货

    欢迎关注全平台AI垂类自媒体 “读芯术”

    展开全文
  • Zcash创建了一个区块链协议,旨在通过屏蔽用户敏感数据来提高隐私。为此,Zcash背后的团队开发了zk-SNARK加密证明技术,可以隐藏重要的区块链交易数据。zk-SNARK技术是区块链领域的一种创新技术,它影响了许多其他...

    1. 引言

    越来越多的个人和企业用户关注隐私、灵活 以及 性能,Zcash基于zk-SNARK构建的隐私协议,可提供相应的解决方案。

    在数字时代,用户隐私经常受到黑客攻击、监视、分析等攻击。Zcash创建了一个区块链协议,旨在通过屏蔽用户敏感数据来提高隐私。为此,Zcash背后的团队开发了zk-SNARK加密证明技术,可以隐藏重要的区块链交易数据。zk-SNARK技术是区块链领域的一种创新技术,它影响了许多其他加密货币项目。然而,近年来,考虑到数据隐私的道德复杂性,Zcash和其他隐私保护区块链协议已经成为监管机构争论的话题。

    2. Zcash历史

    2014年,Zcash创始人 Zooko Wilcox 和 7个科学家一起,发起了一个实验性的基于区块链的生态系统——名为“Zerocash” (又称为“Zcash”),该区块链系统的代币为 名为ZEC 的原生加密货币。
    该提案最终筹集了300万美元用于设计初始协议,2016年10月28日,Zcash网络上线。Zcash首次使用了zk-SNARK(零知识简洁非交互知识论证 zero-knowledge succinct non-interactive arguments of knowledge)——一种特殊类型的密码证明的区块链协议。通常,zk-SNARK用于privately验证交易,而不向公共网络参与者透露任何敏感数据。

    自2016年诞生以来,Zcash经历了多次升级:

    • 2016~2018年,Zcash发布了名为“Sprout series”的一系列早期升级。同时,Zcash技术团队也开始开发了2个核心升级协议——Overwinter和Sapling。
      Sprout、Overwinter、Sapling旨在解决随着区块链网络成熟伴生的一些明显缺陷。
    • 2017年3月,由Zcash创始人捐赠了27.3万个ZEC(当时价值1700万美金)成立了Zcash基金会。
    • 2019年,Zcash母公司更名为Electric Coin Co.。
    • 银行界对zk-SNARK技术很感兴趣,通过与JP Morgan紧密合作,Zcash上线2年后——2018年10月29日,Zcash Sapling升级完成。
    • 2019年12月11日,Zcash的第三次大升级——Blossom 完成,主要改进了transacation settlement,可降低区块生成时间,提高整个网络的吞吐量,最终提高网络的可用性和市场潜力。
    • 2020年6月,第四次大升级——Heartwood,增加了 FlyClient——效率更高的light-client block-header verification 算法,从而提高对企业应用支持。在区块链系统中,轻节点是一种特殊的软件,可与全节点交互。可将轻节点看成是墙壁上砖块之间的灰泥——轻节点帮助将全节点连接在一起,使得全节点可更高效地广播信息以维护整个区块链网络运行。同时Heartwood也对Zcash共识机制进行了修改,支持Coinbase基金挖矿到shielded addresses。
    • 2020年11月,第五次大升级——Canopy。Canopy标志着用于未来4年的新的开发基金的成立。早期的Zcash开发基金是在Zcash网络上线之前成立的,将于2020年11月到期。新的开发基金中,Zcash网络矿工将获得80%的挖矿激励,而剩下的20%分成为:8%给新成立的Major Grants Fund,7%给Electric Coin Co.,5%给Zcash Foundation。
      2020年11月,Zcash减半,相应的区块奖励由6.25ZEC降为3.125ZEC。与Bitcoin类似,Zcash最大供应量为2100万个ZEC。

    3. 零知识证明和zk-SNARK技术

    3.1 what’s zk-SNARK?

    zk-SNARKs借助密码学技术,使得一方(Prover)生成proof,另一方(Verifier)验证proof就可信任 specific information是真的。整个过程都是以密文的形式进行,从而可减少额外敏感数据的泄露。
    A zero-knowledge proof is a cryptographic protocol that allows for information to be accurately verified without having to expose the underlying information itself to the entity doing the verifying.

    3.2 Zcash的隐私特性

    借助zk-SNARKs,Zcash设计了多个先进的功能,支持的地址类型有:【提供了 可供选择的隐私 opt for privacy】

    • z-addresses:为隐私地址,又名shielded address。实际分为两种:
      – 1) Legacy Sprout shielded address:以“zc”开头的地址,为Sprout addresses,通过shielding the wallet address,可为交易提供金融隐私保护,交易用时约为70~90秒。
      – 2)Sapling upgrade shielded address:以“zs”开头的地址,Sapling升级后保留了早期Sprout协议的所有隐私设置,但是相应的交易用时低于1秒。
    • t-addresses:为公开透明地址。t-address 不为交易提供任何隐私保护,与bitcoin交易类似。

    基于以上地址类型,Zcash支持多种交易类型:

    • Private交易类型(从 z-address 到 z-address):由隐私地址到隐私地址,这种情况隐私性最强,交易方和接收方的地址都被掩盖了。
    • Deshielding交易类型(从 z-address 到 t-address):由公开地址到隐私地址,适于与需要一定隐私的交易方交易,可清晰知道资金来源,但资金去处被掩盖了。
    • Shielding交易类型(从 t-address 到 z-address):由隐私地址到公开地址,发送方为隐私的,而接收方对全网可见。
    • Public交易类型(从 t-address 到 t-addresss):由公开地址到公开地址,交易与bitcoin交易类似。为大多数Zcash钱包的默认设置。

    这些交易类型可让用户在Zcash区块链中发起交易时,自由选择是隐藏少量信息还是隐藏所有信息。如,特殊地址的所有者,借助payment disclosure和view-key技术,可选择向可信第三方——无论是基于合规还是审计原因,公开z-address和交易细节。而两个t-addressses之间的交易,与Bitcoin区块链上的交易类似,发送地址、接收地址、交易的数额等信息是对全网可见的。

    零知识证明是密码学的一个创新特性,它可为用户在使用加密货币进行交易时提供更高级别的隐私。

    3.3 零知识证明的未来

    当前零知识证明的关注重点在保证金融交易隐私。然而,零知识证明可为在线活动的隐私保护方面发挥更大的作用。
    数据挖掘和跟踪在线用户行为的程序的出现,越来越需要像类似零知识证明等解决方案来为线上活动提供隐私保护。

    4. Zcash 区块链隐私

    Zcash自2016年上线以来,已经取得了长足的进步,并继续通过其隐私保护功能,为区块链和加密用户提供对其交易数据可见性的控制。zk-SNARK加密证明为全球市场上基于区块链的用户案例建立了隐私标准。各种各样的个人和企业用户都要求提供Zcash协议类似的隐私性、灵活性和性能。自2014年立项以来,Zcash取得了举世瞩目的发展。随着开发基金的引入和Zcash在2020年末的减半,该项目未来10年的发展轨迹将有助于进一步将Zcash确立为区块链产业的基础性成员。

    参考资料

    [1] Zcash: History and Overview of the Iconic Privacy-Based Blockchain Protocol
    [2] Zcash Leads the Way on Zero-Knowledge Proofs With zk-SNARKs

    展开全文
  • Algorithmia将所有当前热门技术术语打包成周二推出的一项新服务—DanKu, 该协议允许非专业人员寻找复杂的机器学习模型,将他们的数据发布在Etherium区块链上,希望找到一位机器学习研究人员为他们的...
  • 以太坊中的区块链协议 1. 什么是区块链协议区块链协议是共识方法的常用术语。这些方法是用于达成共识并验证区块链网络内交易的不同系统。 2. Proof-of-Work(工作量证明): Transforming Energy into Value ...
  • 去年,比特币暴涨,其他币也像雨后春笋一样冒出来,已经有1000...这些问题的答案,我也想知道,就花了很多时间查阅资料、研究协议。前两周发表的《区块链入门教程》和《比特币入门教程》,是我的学习心得。但是,...
  • 去年,比特币暴涨,其他币也像雨后春笋一样冒出来,已经有1000多种了。 很多人都在问,加密货币(cryptocurrency)的时代,真的来临了吗?...前两周发表的《区块链入门教程》和《比特币入门教程》,是我的学习
  • Bifrost项目是Scala客户端,它是根据加密货币/区块链协议设计的,旨在实现三个特定目标: 促进资本从发达经济体的投资者向发展中经济体的企业转移和投资 创建一个商品市场,通过存储和赎回来抵押稳定的货币 建立...
  • 本讲详细讲述了SSL协议中的数据加密的过程,数字证书、对称加密、非对称加密和SSL握手过程等概念。 1 SSL 只要你听过HTTPS,不可能没听过SSL协议吧,SSL协议是一种安全协议。对于互联网协议没有了解的童鞋可以参考...
  • 暴走时评:两名澳大利亚央行的官员最近代表该行发表了对区块链加密货币的看法,表明该机构暂时不会对这种新技术进行监管,因为他们认为该技术的一些固有特质会使监管起不到太大作用。他们还指出区块链可能会为流程...
  • 如果你想看到一亿年以后的地球,假设有一种技术可以使...这是小编所见过的架构最为宏大的一款区块链游戏的白皮书,经开发者同意,将《加密生物演化协议》分享于此,热切期待加密生物游戏的上线。  END. 加密游戏公众号
  • 这些信息对于理解区块链和比特币 (以及其他加密货币) 的真实性质至关重要。 比特币通过挖矿的方式产生,就像黄金一样,但比特币是数字形式的资产。新出的比特币会被隐藏在比特币区块中,并将作为奖励发送给挖出它的...
  • 基于区块链加密协议的网络很可能是新的范式。 这个网络世界可以有效的利用区块链科技作为它的经济层,基于此正日益形成一个包括可穿戴设备、物联网传感器、智能手机、平板电脑、笔记本,量化的自我跟踪设备(如...
  • 注:作者Tuur Demeester是一位独立的投资者,他还是Adamant Research研究机构的主编。 近期ETH价格的增长(ETH市值达到近50亿美元,是比特币市值的30%)令我不禁...我认为最终只会有一种协议赢得80%以上的市场份
  • 其实,区块链技术并不是一种单一的、全新的技术,而是多种现有技术(如加密算法、P2P文件传输等)整合的结果,这些技术与数据库巧妙地组合在一起,形成了一种新的数据记录、传递、存储与呈现的方式。简单的说,区块链...
  • 区块链1.0:货币

    万次阅读 2019-04-07 01:01:20
    A:技术堆栈 从技术角度讲,比特币有三层:区块链协议、货币 第一层是底层技术,即区块链。...对于所有加密货币,区块链协议、货币这三个层次是一种通用结构。每种币都代表一种货币、一种...
  • 区块链相关pdf

    2020-07-09 21:57:11
    Algorand:加密货币高可拓展性拜占庭容错共识协议,Dfinity:一个旨在构建去中心化虚拟区块链计算机的协议,Hyperledger Fabric:基于私有区块链(也叫许可区块链)的去中心化操作系统等关于区块链
  • 2019,区块链的中间层协议之年

    千次阅读 2019-02-06 18:00:00
    翻译 | 贾瑞婷编辑 | 波波尽管加密资产市场的市值已从峰值下跌超过 85%,但这仍不失为一件好事,特别是对于像我这样依旧热衷于加密事业的企业家来说。而且,我认为,加密市...
  • 区块链之殇

    千次阅读 2020-04-07 23:35:14
    区块链的基础设施是互联网,其底层协议基于TCP/IP,从这个角度讲,区块链是互联网领域的一个应用。换言之,区块链技术上能解决的问题,通过传统互联网都能解决。 由此可见,区块链真正吸引很多人关注的原因应该不是...
  • 这几年,随着网络技术的不断发展,各种加密货币(cryptocurrency)不计其数。 很多人都在问,加密货币的...前两篇文章《区块链入门教程》和《比特币入门教程》是我的学习心得,主要介绍基本概念、探讨协议的可行...
  • 电脑网络通过加密的审计线索来保存和验证交易的共识记录。分布式记账本意味着不存在单一的中央机构来验证和执行交易,而参与者的电脑则被用作网络的节点。商业级Dapp的落地或者说区块链行业的发展需要基于一个智能...
  • 1 HTTPS协议是什么 https协议比http协议多了一个s,字面意思...本质上HTTPS协议就是在TCP协议之上又加了一层SSL协议来实现了加密这个操作(不准确的说HTTPS就就是披着是SSL的皮的HTTP协议) 2 HTTPS和HTTP的区别 ...
  • 晕币 开发中 这是什么? Halocoin是我的个人项目,旨在学习,实验和围绕区块链技术进行构建。 这个项目绝不是生产就绪的,也不是比特币协议的实际实现... CLI或GUI可以尝试使用加密货币。 使人们能够学习和共享有关区
  • α协议加密数字货币市场打造专注获取α收益的对冲基金协议共同体,使之成为一个全新意义上的量化交易投资社区。靠谱的项目,活动刚刚开始,小巴是电报首发,老铁们速度了!糖果领取地址:...
  • 2019年区块链的主旋律是中间层协议  过去一年加密资产市场从其峰值下跌超过85%的市值。但对我,一个坚定的区块链企业家,这实际上是一件好事,区块链的未来看起来比以往任何时候都更有希望。2017年ICO热潮开始的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 543
精华内容 217
关键字:

区块链加密协议