首页

行情

快讯

名人库

专栏

搜索

GRIN(古灵币)

¥2.4700 -0.28%

~$0.3530

讨论 交易 新闻 公告
  • 0/300
  • Grin架构设计选择分析

    Grin架构设计选择分析

    Grin是一种在Rust中实现的加密货币,它利用Mimblewimble交易和Cuckatoo算法来执行工作量证明(PoW)计算。Grin项目的主要设计目标是隐私,事务缩放和简化设计...

    |  区块链研究实验室 |  05-21 10:47

    Grin与BEAM之间技术公开对比

    Grin与BEAM之间技术公开对比

    Grin和BEAM是两个基于Mimblewimble协议的开源加密货币项目。Mimblewimble协议最初是由匿名用户使用笔名Tom Elvis Jedusor(《哈利·波特》系列书籍中伏地魔名字的法...

    |  区块链研究实验室 |  05-19 09:50

    Grin Coin,基于Mimblewimble协议的私有轻量级实现

    Grin Coin,基于Mimblewimble协议的私有轻量级实现

    这是一个基于Mimblewimble协议的社区项目。Grin Coin是一种专注于隐私、安全(PoW)和可伸缩的加密货币,支持电子交易,不受审查和限制。Grin提出了一种基于...

    |  区块网社区 |  02-29 13:31

    Grin的问题根本不是隐私性,而是没人用

    Grin的问题根本不是隐私性,而是没人用

    今年年初刚刚面世的 Grin,这一年过得并不好。或者说,对于 Grin 的投资者来说,这个被誉为「下一代比特币」的项目表现,并不如预期。投资者刚刚被喂...

    |  区块律动BlockBeats |  11-20 10:56

    手把手教你使用Bminer开始Grin古灵币挖矿

    手把手教你使用Bminer开始Grin古灵币挖矿

    简而言之-Grin是一种隐私数字货币,它使用MimbleWimble协议并以布谷鸟算法的工作量证明(PoW)运行,并且设计为无法储存,要求矿工拥有具有高存储容量的...

    |  彩云比特 |  11-15 11:07

    Grin开发基金再次收到50 BTC匿名捐赠,捐赠者是09-10年比特币“上古大神团体”

    Grin开发基金再次收到50 BTC匿名捐赠,捐赠者是09-10年比特币“上古大神团体”

    据古灵币(Grin)委员会成员Lehnberg在grin-forum论坛表示,古灵币开发基金今日再次收到一笔50BTC(价值约43.5万美元)的匿名捐赠,捐赠者是来自09-10年时期的...

    |  区块链资讯 |  11-12 11:56

    Bitgrin优化Grin释放曲线,举起MW匿名技术大旗

    Bitgrin优化Grin释放曲线,举起MW匿名技术大旗

    MimbleWimble匿名技术是2016 年 7 月由一位化名为 Tom Elvis Jedusor 的人在 IRC 频道#bitcoin-wizards 上发布。其灵感来源于单向聚合签名(OWAS)协议和由 Bitcoin Core 开发...

    |  区块链资讯 |  09-28 10:59

    Grin矿机一台2万美金,日赚千元,Asic矿机争夺战要开打了

    Grin矿机一台2万美金,日赚千元,Asic矿机争夺战要开打了

    Grin热度最高是2019年年初,无ICO、无预挖、无投资人,“三无”履历让它一时间成为耀眼明星。1月16日以来,Grin价格经历过三次高峰,分别是14.7美元、13...

    |  区块链资讯 |  08-07 18:38

    深入探究Grin交易文件的内容

    深入探究Grin交易文件的内容

    与其他加密货币不同,Grin不使用地址。要发送或接收Grin,发件人和收件人必须在彼此之间来回发送信息。方法是通过文件共享。此文件可以在几秒,几天...

    |  区块链研究实验室 |  07-01 10:20

    古灵币(GRIN)计划在7月中旬进行首次硬分叉升级

    古灵币(GRIN)计划在7月中旬进行首次硬分叉升级

    古灵币[GRIN]项目开发人员终于决定了该项目第一个硬分叉的日期。根据BlockCypher核心开发人员之一的软件工程师Quentin Le Sceller的说法,新的硬分叉升级将在...

    |  彩云比特 |  06-06 14:01

  • GRIN(古灵币) (GRIN)

    Grin致力于提供隐私、可扩展性的加密货币,其有几个独特的属性:使用名为MimbleWimble隐私保护区块链格式;只在区块链中存储少量数据,运行完整节点既便宜又容易;Mimblewimble由匿名人士开发,团队分布在世界各地;没有任何预挖的PoW机制,更平等和去中心化。 Grin是一个社区驱动的项目,没有ICO也没有预挖。出块规则恒定:每分钟出一个区块,每个区块奖励60个代币。所以Grin是一个通胀货币,但是其通胀率随着时间会逐渐变低,最后趋于0。

    关键指标【数据截止至1970年01月01日】

    最新价格

    目前流通市值

    交易额

    发行量

    总市值

    官方网站 https://grin-tech.org/

    重要里程碑

    最新进展

    GRIN简介

    代币销售和经济状况

    路线图和进展

    Grin致力于提供隐私、可扩展性的加密货币,其有几个独特的属性:使用名为MimbleWimble隐私保护区块链格式;只在区块链中存储少量数据,运行完整节点既便宜又容易;Mimblewimble由匿名人士开发,团队分布在世界各地;没有任何预挖的PoW机制,更平等和去中心化。

    Grin是一个社区驱动的项目,没有ICO也没有预挖。出块规则恒定:每分钟出一个区块,每个区块奖励60个代币。所以Grin是一个通胀货币,但是其通胀率随着时间会逐渐变低,最后趋于0。

    团队概况

    Grin底层基于Mimimblewinwimble协议。交易双方分享“盲因子”(电子货币的一种技术),只有两方知道他们正在交易,节点永远不知道交易金额是多少。

    在Grin中没有地址概念,所有的交易都发生在钱包端。交易实际上是在跟另一个钱包“沟通”,完成后再被记录在链上。

    ASIC矿机的出现,使全网的算力被几个ASIC巨头所垄断。Grin跟比特币一样使用工作证明机制,但却使用了Cuckoo cycle算法。

    Cuckoo cycle是一种ASIC抗性挖掘算法,该算法主要通过存储器强度来设法抵抗ASIC,借此来鼓励矿工去中心化,也给GPU矿工提供机会。

    Grin的货币策略:没有发行上限,每一分钟出60枚。

    交易数据

    Grin具有隐私性和可扩展性。可以说,Grin是一个新的致力于提供“隐私性”和“可扩展性”的加密货币。不同于比特币等加密货币,Grin使用MimbleWimble的隐私保护区块链格式,使得代币可以互换,用户将拥有强大的匿名保证。

    MimbleWimble上的Grin支持机密交易,通过同态加密隐蔽所有交易数据,并使用范围证明解决有效性的问题,但其并不支持脚本编写。在比特币网络中,加入网络的新验证节点必须从创世区块开始同步,并验证每一笔交易的有效应。在Grin网络中,新的验证节点只需要同步区块头、未花费的交易输出和多余的数据(记录输出和输入之间的差异的交易数据,以及交易涉及的各方所创建的签名)。交易信息是无法区分的,并不存在地址或数量。也就是说,你是无法查询到每一笔交易的具体地址和数量的,因为,信息是被打乱的。

    Mimblewimble只在区块链中存储少量数据,使得运行完整节点既便宜又容易,新节点将能够快速有效地与网络同步。此外,MimbleWimble既可以在比特币的侧链上实现,也可以作为一个扩展块来实现。


    去中心化的POW挖矿机制

    为什么说Grin为矿工点亮了希望之火,这与它的另一个特性——无预挖矿的POW机制有关。Grin将有一个没有任何预挖的公平的POW机制:Cuckoo Cycle POW机制,至少在近期内,她比其他方案更加平等和抗中心化。比特币虽然也是建立在平等透明的原则之上进行挖矿,但有限的数量使得其成为价值储存的数字货币,挖矿变得有利可图,算力的垄断使得其去中心化的色彩变淡。Grin项目无ICO、无预挖矿,基本上是社区驱动,与比特币接近,但无限的数量又不会造成大面积算力垄断。

    Grin是一个具有强大隐私性和可扩展性,且拥有无算力垄断去中心化POW挖矿机制的数字货币,以纯社区的方式驱动,用线性供应货币政策另辟蹊径,让它不再是货币通胀,这也更像是一种新的区块链实验和尝试。

    技术概况

    Grin的开发团队中许多人都是匿名和分散在世界各地的。当初中本聪使用区块链技术挖比特币时,他并没有公开自己的身份,而是采用了匿名的方式,他似乎在创造创世区块的时候,就已经意料到了后面的结果。

    Grin在2016年出现时,也是被匿名工程师推出的。准确来说,Grin是MimbleWimble的实现,MimbleWimble是一款大规模、可扩展的基于区块链的分类帐本,Grin基于MimbleWimble的加密货币。MimbleWimble由化名为Tom Elvis的匿名工程师推出,而Grin的算法则由化名为Ignotus Peverell的匿名工程师开发。

    产品和指标

    MimbleWimble 交易

    交易结构的设计显示了MimbleWimble的一个关键原则:强大的隐私性和保密性。

    MimbleWimble的交易确认依赖于两个基本属性:

    · 0和验证。 输出总和减去输入总是等于零,证明交易没有凭空创造新的资金,而且不会显示实际金额。
    · 拥有私钥即拥有交易输出的所有权。 像大多数其他加密货币一样,交易输出通过拥有ECC私钥来保证其所有权。 然而,在MimbleWimble中,证明一个所有者拥有这些私钥并不是通过直接签署交易来实现的。

    下面介绍账户余额、所有权、变更和证明,并借此说明上面的这两个基本属性是如何得以实现的。

    等式平衡

    基于上面描述的ECC的属性,可以在交易数据中掩盖实际交易值。

    如果 v 是交易输入或输出的值,而 H 是椭圆曲线,我们可以简单地在交易中嵌入v * H而不是 v。 这是因为使用ECC操作,我们仍然可以验证交易的输出总和等于输入总和:v1 + v2 = v3  =>  v1*H + v2*H = v3*H

    验证每笔交易的这个属性允许协议验证交易不会凭空创造出金钱,而无需了解实际的交易值是多少。但是,可用数值是有限的,攻击者可以尝试每一个可能的数值来猜测你的交易值。 另外,知道v1(来自 上面的交易示例)和v1 * H,就等于在整个区块链中揭露了等于v1的交易。 出于这些原因,我们引入了第二个椭圆曲线 G(实际上 G 只是与 H 相同的曲线组上的另一个发生器点)和私钥 r 用作致盲因子。

    交易中的输入或输出值可以表示为:r*G + v*H

    其中:

    · r 是一个私钥,用作致盲因子, G 是一个椭圆曲线点,他们的乘积 r*G 是 r 在 G 上的公钥。
    · v 是输入或输出值,H 是另一个椭圆曲线点。

    无论是 v 还是 r 都不能被推导出来,从而利用了椭圆曲线密码学的基本属性。 r * G + v * H被称为 Pedersen Commitment 。

    作为一个例子,我们假设我们想用两个输入和一个输出创建一笔交易。 我们有(忽略费用):

    · vi1 和 vi2 作为输入值
    · vo3 作为输出值

    满足:vi1 + vi2 = vo3

    为每个输入值生成一个私钥作为致盲因子,将上面的等式替换每个值为他们各自的 Pedersen Commitments,我们获得:(ri1*G + vi1*H) + (ri2*G + vi2*H) = (ro3*G + vo3*H)

    并且要求:ri1 + ri2 = ro3

    这是MimbleWimble的第一个支柱:验证交易的算术运算可以在完全不知道任何实际交易值的情况下完成。

    补充最后一点说明,这个想法实际上派生自Greg Maxwell的机密交易,机密交易本身是从Adam Back提出的用于比特币的同态值提议中发展而来。

    所有权

    在前面的章节中,我们介绍了一个私钥作为致盲因子来掩盖实际交易值。MimbleWimble的第二个见解就是这个私钥可以用来证明值的所有权。

    Alice 给你发了3个币并且隐藏了这个数字,你选择了28作为你的致盲因子(请注意,在实践中,致盲因子是一个私钥,是一个非常大的数字)。 区块链上的某处显示以下交易输出,并只能由你来用(做交易输入):X = 28*G + 3*H

    X, 上述加法的输出值,是对所有人可见的。 但是值3只有你和 Alice 知道,而28就只有你自己知道了。

    为了再次转移这3个币,协议要求(交易者)以某种方式知道28。 为了演示这是如何工作的,假设你想将这3个相同的币转移给Carol。 您需要构建一个简单的交易,以便:Xi => Y

    其中 Xi 是一个输入,它花掉你之前得到的输出值 X ,而 Y 是 Carol 的输出。如果不知道你的私钥28,就没有办法建立这笔交易。的确,如果Carol要平衡这个交易,她既需要知道发送的值,也需要知道你的私钥, 以便:Y - Xi = (28*G + 3*H) - (28*G + 3*H) = 0*G + 0*H

    通过检查一切已被清零,我们可以再次确认没有创造新的金钱。

    等等! 停一下! 现在你知道了 Carol的输出中的私钥(在上面的情况下,它必须与你的相同,为了让等式两边平衡),所以你可以把钱从Carol那里偷回来!

    为了解决这个问题,我们允许Carol增加她选择的另一个值。 113,最后在区块链上的结果变成了:Y - Xi = (113*G + 3*H) - (28*G + 3*H) = 85*G + 0*H

    现在交易不会再归零了,我们在_G_上有一个 excess value(85),这是所有致盲因子总和的结果。 但是因为85 * G是椭圆曲线 G 上的有效公钥,85, 对于任何x和y,只有y = 0是 G 上的x * G + y * H有效公钥。

    因此,协议需要验证的其实就是:(Y - Xi)是_G_上的一个有效公钥,以及交易者知道私钥(我们与Carol的交易中的85)。最简单的方法就是要求使用excess value(85)进行签名,然后验证:

    · 交易者知道这个交易输出的私钥
    · 交易输出的和,减去输入,加起来等于0

    这个关联到每笔交易的签名,附加一些额外数据(比如交易费),被称为交易核(transaction kernel)。

    一些更深入的细节

    本节阐述创建交易,通过讨论交易的找零机制和范围证明的要求以便所有值都被证明为非负。 这些都不是了解MimbleWimble和Grin的必需内容,所以如果你想快速了解,随时可以直接跳过本节内容,直接到Putting It All Together.

    找零

    在上面的例子中,你必须分享你的私人密钥(致盲因子)给Carol。 一般来说,即使私钥永远不会被重用,这也不是一个十分可取的方法。 实际上,这不是问题,因为交易包括找零输出。

    比方说,你只想从你收到的来自Alice的3个币里送出2个币给Carol。你简单地生成另一个私钥(比如12)作为一个致盲因子来保护你的找零输出,并告诉Carol 你正在发送2个币给她。Carol像以前一样使用自己的私钥:
    Your change output:  12*G + 1*H
    Carol's output:      113*G + 2*H

    最终,链中发生的交易基本上就是上述这种过程。签名使用_excess value_,例如这个例子当中就是97。
    (12*G + 1*H) + (113*G + 2*H) - (28*G + 3*H) = 97*G + 0*H

    范围证明(Range Proofs)

    在所有上述计算中,我们都依赖交易值始终为正值。如果可能的话,引入负值将是非常有问题的,由于可以在每笔交易中凭空捏造新的金钱。

    例如,可以创建一个输入为2并且输出为5和-3的交易,并且依照前面章节中的定义仍然可以获得平衡的事务。 这是不容易被检测到的,因为即使x是负数,ECDSA曲线上的对应点x.H看起来也是任何值。

    为了解决这个问题,MimbleWimble利用了另一个加密概念(也来自机密交易),称为范围证明:一个数字落在给定范围内的证明,而不会泄露数字。 我们不会详细说明范围证明,您只需要知道,对于任何r.G + v.H,我们都可以创建一个证明,证明 v 大于零且不会溢出。

    同样重要的是要注意,为了从上面的示例中创建有效的范围证明,必须知道在创建和签署excess value时使用的值113和28。

    小结

    MimbleWimble交易包括以下内容:

    · 一组输入,参考和花费一组以前的输出。
    · 一组新的输出包括:
       · 一个值和一个致盲因子(它只是一个新的私钥)在曲线上相乘并相加为r.G + v.H.
       · 范围证明显示v是非负的。
    · 明确的交易费用。
    · 一个签名,通过采取excess value(所有输出加费用之和减去输入)并将其用作私钥来计算。

    区块状态和链状态

    我们已经在上面解释了MimbleWimble交易如何在保持有效区块链所需的属性的同时提供强大的匿名性保证,即交易不会凭空捏造出货币,并且通过私钥建立所有权证明。

    MimbleWimble区块格式通过引入一个附加概念来构建:核销(cut-through)。 有了这个补充,一个MimbleWimble链可获得:

    · 极大的可扩展性,因为绝大部分交易数据主体可以随时间消除,而不会影响安全性。
    · 通过混合和删除交易数据进一步匿名。
    · 新节点能够非常高效地与网络其余部分同步。

    交易聚合(Transaction Aggregation)

    回顾一下一笔交易的组成:

    · 一系列交易输入,用来引用并花掉一系列以前的交易输出
    · 一些列新的交易输出(Pedersen commitments)
    · 一个交易核,包含:
       · kernel excess,用来确保等式平衡
       · 交易签名(采用kernel excess作为签名公钥)

    例如:(42*G + 1*H) + (99*G + 2*H) - (113*G + 3*H) = 28*G + 0*H

    这个例子中使用的签名公钥是 28*G。

    任何一笔交易必须满足以下条件: (为了描述简便,这里忽略掉交易费部分)

    sum(outputs) - sum(inputs) = kernel_excess
    这个条件同样适用于区块,因为区块只是一系列聚合的交易输入、交易输出和交易核。我们可以把所有的交易输出加起来,减去所有的交易输入,将结果与所有交易核中的kernel excess之和做比较:sum(outputs) - sum(inputs) = sum(kernel_excess)

    简单来说,(依然忽略交易费部分)我们可以认为,对MimbleWimble区块的处理方法和对MimbleWimble交易的处理方法是严格一致的。

    交易核偏移因子(Kernel Offsets)

    上面描述的MimbleWimble区块和交易设计有一个小问题,有可能从一个区块中的数据来重建交易(即找出一笔或几笔完整的交易,分辨哪一笔交易输入对应哪一笔交易输出)。这个对于隐私而言当然是不好的事情。这个问题也被称为子集问题("subset" problem) - 给定一系列交易输入、交易输出和交易核,有可能能够从中分辨出一个子集来重新拼出对应的完整的交易(很像拼图游戏)。

    例如,假如有下面的两笔交易:
    (in1, in2) -> (out1), (kern1)
    (in3) -> (out2), (kern2)

    我们能够聚合它们并构建下面的区块(或一笔聚合交易(aggregate transaction)):(in1, in2, in3) -> (out1, out2), (kern1, kern2)

    很容易利用等式平衡关系用穷举法试验所有可能的组合,从而找出原始的交易关系:(in1, in2) -> (out1), (kern1)

    只要找出了一笔交易,那么剩下的当然也是符合等式平衡关系的,于是很容易就拼凑出另一笔交易:(in3) -> (out2), (kern2)

    为了大幅降低这个拼凑的可能性,从而缓解这个问题的不利影响,我们设计一个交易核偏移因子(kernel offset)给每一个交易核。 这也是一个致盲因子(或者说一个私钥),它需要加到kernel excess当中用于验证等式平衡关系:sum(outputs) - sum(inputs) = kernel_excess + kernel_offset

    当我们聚合这些交易到区块的时候,我们在区块头中存储一个(且仅一个)聚合偏移因子(aggregate offset)(即所有交易核偏移因子的总和)。这样一来,因为我们一个区块只有一个偏移因子,再也不可能将其分拆对应到每一笔交易的交易核偏移因子了,从而也就不可能再从区块中拼凑出任何一笔交易了。
    sum(outputs) - sum(inputs) = sum(kernel_excess) + kernel_offset

    具体的实现方法就是,在创建交易时将 k 分割成 k1+k2。 对于交易核 (k1+k2)*G,我们在交易核中发布出去的是 k1*G (称之为:the excess),以及 k2(称为:the offset),并跟以前一样使用 k1*G 作为公钥来对交易进行签名。 在矿工构建区块的时候,我们对打包的所有交易的k2(the offset)求和,以生成一个单个的聚合值(aggregate k2 offset)用于该区块所打包的所有交易。一旦区块打包完成并发布和被链所接受,其原始的对应每笔交易的k2 (the offset)即成为不可恢复的。

    核销(Cut-through)

    区块让矿工将多个交易组合成一个单个集合添加到链中。 在下面的区块表示中,包含3个交易,我们只显示交易的输入和输出。 输入关联其花费的输出。 前一个区块中包含的输出标记为小写字母x。

    I1(x1) --- O1
            |- O2

    I2(x2) --- O3
    I3(O2) -|

    I4(O3) --- O4
            |- O5

    我们注意到以下两个属性:

    · 在这个区块内,一些输出直接被包含的输入消耗(I3花费O2并且I4花费O3)。
    · 每笔交易的结构并不重要。 由于所有的单个交易均归于零,因此所有交易输入和输出的总和也必须为零。

    与单个交易类似,所有需要在一个区块中进行检查的是所有权已经被证实(来自交易内核 transaction kernels),并且整个区块没有增加任何货币供应(除了coinbase所允许的之外)。 因此,匹配输入和输出可以被消除,因为它们对总和的贡献被抵消了。 这导致了以下更紧凑的块:

    I1(x1) | O1
    I2(x2) | O4
           | O5

    请注意,所有的交易结构已被消除,输入和输出的顺序已不再成问题。 但是,该块中所有输出的总和减去输入,仍然保证为零。

    一个块的建立来自:

    · 块头。
    · 核销(cut-through) 后剩余的输入列表。
    · 核销(cut-through) 后剩余的输出列表。
    · 每个交易的交易核(transaction kernels)包含:
       · 从所有commitments总和中获得的公钥r * G。
       · 使用excess value生成的签名。
       · 挖矿费用 (fee)。

    当区块以这种方式构建时,MimbleWimble区块提供了非常好的隐私保证:

    · 更多的交易可能已经完成,但不会显式出现(在区块中)。
    · 所有的输出看起来都是一样的:只是一些非常大的数字,不可能相互区分。 如果有人想排除某些输出,他们将不得不排除所有输出。
    · 所有的交易结构已被删除,使得区分哪个输出与哪个输入匹配成为不可能任务。

    然而,区块仍然可验证!

    尽可能多地核销(Cut-through)

    回到前面的示例块,I1和I2花费的输出x1和x2必须先前出现在区块链中。因此,在添加此区块后,这些输出以及I1和I2也可以从整体链中移除,因为它们不会影响整体总和。

    总而言之,我们得出结论:任何时间点的链状态(不包括区块头)都可以通过这些信息来概括:

    1. 链中采矿产生的硬币总量。
    2. 未使用的交易输出(即UTXO)的完整集合。
    3. 每笔交易的交易内核。

    第一条信息可以使用块高度(与起始块的距离)推导出来。未使用的输出和交易内核都非常紧凑。这有两个重要的后果:

    · MimbleWimble区块链中给定的节点需要维护的状态非常小(对于比特币大小的区块链,几个G字节大小的数量级,可能优化到几百兆字节)。
    · 当新节点加入构建MimbleWimble链的网络时,需要传输的信息量也非常小。

    另外,未使用的交易输出(即UTXO)组成的完整集是不可篡改的,即使只是想去添加或删除一些交易输出。这样做会导致交易内核中所有致盲因因子的总和与输出中致盲因素的总和不同。

    社区数据

    竞争者概况

    附录