网站首页 | 收藏本站 网站地图 电子杂志
2013-07-11 星期四 农历六月初四 繁体版

中国贸易投资网

您的位置:中国贸易投资网 >> 企业新闻 >> 正文

飞猪币:公有链,挖矿机制(核心算法)和加密算法

发布时间:2018-06-21 11:05:00 信息来源: 作者:

Flypigcoin,是一个神奇的数字货币,从诞生之日起,就充满了神奇,首先,它是一个真正的加密数字货币,flypigcoin(飞猪币)的挖矿机制是采用的POW+POS核心算法,从密码学的角度来说是采用的SHA256算法和ECC非对称加密算法;同时,flypigcoin(飞猪币)是一个真正的区块链公有链,那什么是公有链?

在区块链领域,我们经常会听到这些与链有关的名词:

公有链、私有链、联盟链、跨链、侧链

这些区块链有着各自的特点和不同场景应用。

1.png 

公有链

公有链是指全世界任何人都可以随时进入到系统中读取数据、发送可确认交易、竞争记账的区块链。

公有链通常被认为是“完全去中心化”的,因为没有任何个人或者机构可以控制或篡改其中数据的读写。

公有链一般会通过代币机制来鼓励参与者竞争记账,来确保数据的安全性。比特币、以太坊、飞猪币都是典型的公有链。

2.jpg 

飞猪币flypigcoin目前的区块高度和区块生成时间戳

私有链

私有链是指其写入权限由某个组织和机构控制的区块链,参与节点的资格会被严格限制。

由于参与节点是有限和可控的,因此私有链往往可以有极快的交易速度、更好的隐私保护、更低的交易成本、不容易被恶意攻击,并且能做到身份认证等金融行业必需的要求。

3.jpg 

联盟链

联盟链是指有若干个机构共同参与管理的区块链,每个机构都运行着一个或多个节点,其中的数据只允许系统内不同的机构进行读写和发送交易,并且共同来记录交易数据。

私有链和联盟链之间的设计隐私权限会有不同,联盟链中的权限设计要求往往会更为复杂。

4.jpg 

 

跨链

跨链,顾名思义,就是通过一个技术,能让价值跨过链和链之间的障碍,进行直接的流通。

区块链是分布式总账的一种。一条区块链就是一个独立的账本,两条不同的链,就是两个不同的独立的账本,两个账本没有关联。本质上价值没有办法在账本间转移,但是对于具体的某个用户,用户在一条区块链上存储的价值,能够变成另一条链上的价值,这就是价值的流通。

如果说共识机制是区块链的灵魂核心,那么对于区块链特别是联盟链及私链来看,跨链技术就是实现价值网络的关键,它是把联盟链从分散单独的孤岛中拯救出来的良药,是区块链向外拓展和连接的桥梁。

5.jpg 

侧链

那什么又是侧链呢?这个概念来自比特币社区,2013 年 12 月提出。

侧链的诞生是由于比特币本身或者某一区块链本身的机制存在一些问题。但是直接在比特协议或者比特币链条上进行修改的话,又容易出错。而且比特币区块在一直不断运行,万一出错了涉及的资金量太大了。这个是不被允许的。

这种情况下,诞生了侧链。

本质上来说,侧链机制,就是一种使货币在两条区块链间移动的机制,它允许资产在比特币区块链和其它链之间互转。降低核心的区块链上发生交易的次数。

侧链(sidechains)实质上不是特指某个区块链,而是指遵守侧链协议的所有区块链,该名词是相对与比特币主链来说的。

那么什么又是POW+POS探矿机制或者核心算法呢?

POW:全称Proof of Work,工作证明。这就是说你的收益取决于你对区块链做出的贡献,也就是我们在挖矿时的有效工作,换句话来说,你的工作效率和效力越高,你的收益就越高。应用于挖矿的区块链技术来说,挖矿时的工作效率越高,所获得的数字货币就越多,不少的主流数字货币都是采用这种模式的。

POS:全称Proof of Stake,股权证明。这种模式就相当于你持有数字货币的量和时间,分配给你相应的利息。给大家举个例子来说,比如你每个币每天产生1币龄,假设你持有100个币,共持续了30天,那么你的币龄就是3000,这个时候,如果你发现了一个POS区块,那么你的币龄就会被清空为0,每清空一次就会获得相应的利息,当你打开钱包的时候,利息就会近日你的账户,但是当你离线的时候,不管你存入多少币,都不会获得相应的利息

相比而言,POW是一个在比特币出现之前就有了的东西,而因为比特币的成功,POW基本上特指比特币的POW。但相反,POS是个新东西,目前并没有成熟的POS应用,所以,当提到POS的时候,并不是指某一个算法,而是一类。

那为什么飞猪币为什么会选择一套pos+pow核心算法呢?

我们从飞猪币的创始团队中了解到:PoW机制转变到PoW+PoS交易混合机制,这样做的转变很小,能够更快捷,更安全,相比较而言对用户更有利。因为我们要避免机制转变带来的危险性,等到整个系统更安全以后,才能进行更大的投入。

 

6.jpg 

进一步,我们了解到飞猪币所采用的区块链的加密算法有两种:

SHA256算法和ECC非对称加密算法。

比特币算法——SHA256算法介绍

SHA256是安全散列算法SHASecure Hash Algorithm)系列算法之一,其摘要长度为256bits,即32个字节,故称SHA256SHA系列算法是美国国家安全局 (NSA) 设计,美国国家标准与技术研究院(NIST) 发布的一系列密码散列函数,包括 SHA-1SHA-224SHA-256SHA-384 和 SHA-512 等变体。主要适用于数字签名标准(DigitalSignature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。下面介绍该算法计算消息摘要的原理。

对于任意长度(按bit计算)的消息,SHA256都会产生一个32个字节长度数据,称作消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据是否发生改变,即验证其完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。

  SHA算法有如下特性:1.不可以从消息摘要中复原信息;2.两个不同的消息不会产生同样的消息摘要。

  一、术语和概念

  (一)位(Bit),字节(Byte)和字(Word

  SHA始终把消息当成一个位(bit)字符串来处理。本文中,一个Word)是32位,而一个字节Byte)是8位。比如,字符串“abc”可以被转换成一个位字符串:01100001 01100010 01100011。它也可以被表示成16进制字符串:0x616263.

   二、SHA256算法描述

  (一)补位

  信息必须进行补位,以使其长度在对512取模以后的余数是448。也就是说,(补位后的消息长度)Q2 = 448。即使长度已经满足对512取模后余数是448,补位也必须要进行。

  补位是这样进行的:先补一个1,然后再补0,直到长度满足对512取模后余数是448。总而言之,补位是至少补一位,最多补512位。以信息“abc”为例显示补位的过程。

  原始信息:01100001 01100010 01100011

  补位第一步:0110000101100010 01100011 1

  首先补一个“1”

  补位第二步:0110000101100010 01100011 10…..0

  然后补423“0”

  我们可以把最后补位完成后的数据用16进制写成下面的样子

  61626380 0000000000000000 00000000

  00000000 0000000000000000 00000000

  00000000 0000000000000000 00000000

  00000000 00000000

  现在,数据的长度是448了,我们可以进行下一步操作。

  (二)补长度

  所谓的补长度是将原始数据的长度补到已经进行了补位操作的消息后面。通常用一个64位的数据来表示原始消息的长度。如果消息长度不大于2^64,那么第一个字就是0。在进行了补长度的操作以后,整个消息就变成下面这样了(16进制格式)

  61626380 0000000000000000 00000000

  00000000 0000000000000000 00000000

  00000000 0000000000000000 00000000

  00000000 0000000000000000 00000018

  如果原始的消息长度超过了512,我们需要将它补成512的倍数。然后我们把整个消息分成一个一个512位的数据块,分别处理每一个数据块,从而得到消息摘要。

  (三)使用的常量

  在SHA256算法中,用到64个常量,这些常量是对自然数中前64个质数的立方根的小数部分取前32bit而来。这64个常量如下:

    428a2f98 71374491 b5c0fbcf e9b5dba5 
        3956c25b 59f111f1 923f82a4 ab1c5ed5 
        d807aa98 12835b01 243185be 550c7dc3 
        72be5d74 80deb1fe 9bdc06a7 c19bf174 
        e49b69c1 efbe4786 0fc19dc6 240ca1cc 
        2de92c6f 4a7484aa 5cb0a9dc 76f988da 
        983e5152 a831c66d b00327c8 bf597fc7 
        c6e00bf3 d5a79147 06ca6351 14292967 
        27b70a85 2e1b2138 4d2c6dfc 53380d13 
        650a7354 766a0abb 81c2c92e 92722c85 
        a2bfe8a1 a81a664b c24b8b70 c76c51a3 
        d192e819 d6990624 f40e3585 106aa070 
        19a4c116 1e376c08 2748774c 34b0bcb5  
        391c0cb3 4ed8aa4a 5b9cca4f 682e6ff3 
        748f82ee 78a5636f 84c87814 8cc70208 
        90befffa a4506ceb bef9a3f7 c67178f2
 
  (四)需要使用的函数

   CHx, y, z) = (x AND y) XOR ( (NOT x) AND z)  
        MAJ( x, y, z) = (x AND y) XOR (x AND z) XOR (y AND z)  
        BSIG0(x) = ROTR^2(x) XOR ROTR^13(x) XOR ROTR^22(x)  
        BSIG1(x) = ROTR^6(x) XOR ROTR^11(x) XOR ROTR^25(x)  
        SSIG0(x) = ROTR^7(x) XOR ROTR^18(x) XOR SHR^3(x)  
        SSIG1(x) = ROTR^17(x) XOR ROTR^19(x) XOR SHR^10(x) 
        其中xyz皆为32bit的字。
        ROTR^2(x)是对x进行循环右移2

  (五)计算消息摘要

        基本思想:就是将消息分成N512bit的数据块,哈希初值H(0)经过第一个数据块得到H1),H1)经过第二个数据块得到H2),......,依次处理,最后得到HN),然后将HN)的832bit连接成256bit消息摘要

        I、哈希初值H0

        SHA256算法中用到的哈希初值H0)如下:
        H(0)0 = 6a09e667 
        H(0)1 = bb67ae85  
        H(0)2 = 3c6ef372 
        H(0)3 = a54ff53a 
        H(0)4 = 510e527f 
        H(0)5 = 9b05688c 
        H(0)6 = 1f83d9ab 
        H(0)7 = 5be0cd19
注:这些初值是对自然数中前8个质数35711等的平方根的小数部分取前32bit而来

        II、 计算过程中用到的三种中间值:
        16432bit字的message schedule标记为w0w1w63
        2832bit字的工作变量标记为abcdefgh
        3、包括832bit字的哈希值标记为H(i)0H(i)7
       

        III、 工作流程:
        原始消息分为N512bit的消息块。每个消息块分成1632bit的字标记为M(i)0M(i)1M(i)2M(i)15然后对这N个消息块依次进行如下处理
        For i=1 to N
         1   For t = 0 to 15 
                     Wt = M(i)t 
                 For t = 16 to 63 

                     Wt = SSIG1(W(t-2)) + W(t-7) + SSIG0(t-15) + W(t-16) 
         2  a = H(i-1)0 
                b = H(i-1)1 
                c = H(i-1)2 
                d = H(i-1)3 
                e = H(i-1)4 
                f = H(i-1)5 
                g = H(i-1)6 
                h = H(i-1)7
         3For t = 0 to 63 
                    T1 = h + BSIG1(e) + CH(e,f,g) + Kt + Wt 
(责任编辑:bianji_pub1)

上一篇:投稿人赵静女士称:佛山妙...  下一篇:2018第二届中国消费金融...
相关新闻