本文将对区块链的底层技术进行一定程度的解析,探讨存证于区块链上的知识产权证据作为民事证据在诉讼中存在的问题。
作者李翀浙江京衡律师事务所专职律师编辑
衔蝉
引言
自中本聪(SatoshiNakamoto)于年发布《比特币:一种点对点的电子现金系统》(Bitcoin:APeer-to-PeerElectronicCashSystem)以来,距今已十二年有余,也对世界产生了深远的影响。首先是该文中提到的比特币系统,目前该虚拟货币已达美金/枚(约合人民币元/枚);其次是其底层技术——区块链。年10月24日,中共中央政治局就区块链技术发展现状和趋势进行第十八次集体学习。中共中央总书记习近平现在主持学习时强调,“区块链技术的集成应用在新的技术革新和产业变革中起着重要作用。我们要把区块链作为核心技术自主创新的重要突破口,明确主攻方向,加大投入力度,着力攻克一批关键核心技术,加快推动区块链技术和产业创新发展。”本文将对区块链的底层技术进行一定程度的解析,探讨存证于区块链上的知识产权证据作为民事证据在诉讼中存在的问题。
区块链技术概要
(一)区块链定义自区块链技术这一技术术语被创制以来,其定义便被许多人解读过。笔者认为,区块链是通过一定的规则将交易数据打包成“区块”,并通过时间顺序结合为“链”,并将所有数据同步备份到所有系统参与者的计算机中以实现信息在一定程度上达到不可追溯更改或伪造的技术。因“比特币”系“区块链”的第一个广为人知的应用,在早期,多数人将“比特币”与“区块链”的概念等同。事实上,目前“区块链”的含义已经远远超过了“比特币”的内涵,简单来说,将数据批处理为带时间戳的块的任何数据结构[1],均可称为“区块链”。
(二)区块链的历史沿革及技术解析DavidChaum在其年的论文《由相互可疑的团体建立,维护和信任的计算机系统》(ComputerSystemsEstablished,Maintained,andTrustedbyMutuallySuspiciousGroups.)中首次提出了类似区块链的协议[2]。StuartHaber和W.ScottStornetta于年描述了对加密保护的区块链的进一步研究,他们想实施一个不会篡改文档时间戳的系统[3]。年,Haber,Stornetta和DaveBayer将Merkle树合并到设计中,通过将多个文档证书收集到一个块中来提高了效率[4]。年,一个名叫中本聪的人对区块链的设计进行了重要改进,使用了类似于Hashcash[5]的方法为区块添加时间戳,引入一个困难参数用于稳定将块添加到链中的速率,而无需要求他们由受信任方签名。年,中本聪实现了该方法,并将其作为加密货币——比特币的核心组件。由前述可知,实现“区块链”的技术其实已经存在了几十年,但直至比特币才得以成型。现“区块链”技术虽有发展,但其核心仍未脱离比特币时代的框架。本部分将具体解释区块链技术的内在机理。
1、何为“挖矿”?如果之前接触过数字货币,就会经常听见一个名词,谓之“挖矿”。那么何为“挖矿”呢?简单来说,就是为了获得记录区块的权利所进行的复杂的数学计算。例如比特币中的计算便是反向推算满足需求的散列函数值(代码见图3),其使用的散列函数为SHA。具体的计算方式为,将“前块的头部+十分钟内的交易记录+打包时间的时间戳+随机数”作为一个字符串,并对该字符串作一次SHA-运算,即SHA-(字符串)。SHA-是SHA-2下细分出的一种算法,SHA系SecureHashAlgorithm的简写,是一种密码散列函数算法标准,由美国国家安全局(NSA)研发,美国国家标准与技术研究院(NIST)发布,并经联邦资讯处理标准(FIPS)认证。我们知道,计算机中每一位都是由0和1构成,对于任意长度的输入,SHA-算法的结果都会输出一个长度为位的哈希值,称作信息摘要,该摘要相当于32个字节的数组,通常用一个长度为64的十六进制字符串,且即使在输入数据中轻微改动一个数值,则其结果都会完全不同,且该不同毫无规律可言(见下图)。
(图1:笔者姓名小写拼音SHA-哈希值)
(图2:笔者姓名首字母大写拼音SHA-哈希值)
因此,该结果几乎不可逆向解密。根据前述,在计算的字符串中,“前块的头部”、“十分钟内的交易记录”均为固定,而“打包时间的时间戳”虽为固定,但因信息传递有时间延迟,因此每位挖矿者“打包时间的时间戳”均不同,仅有“随机数”可以变化。所以,在比特币系统中,挖矿者想要获得记录区块的权利,没有任何捷径可走,只能由挖矿者由通过遍历随机数的方式正向计算得出,该遍历随机数的计算过程,便是“挖矿”。
(图3:bnProofOfWorklimit=~uint(0)32;即计算需求,要求bit前32位为0)
2、如何验证电子签名在现实世界中,因每个人的基因、习惯等不同,想要确认某一个人的身份,可以采用生物识别的方式,例如指纹、虹膜等方式验证;也可以采取例如笔迹鉴定等方式验证;而在计算机的世界中,因数据拷贝是计算机最擅长的事,无论是生物数据还是其他数据,均可以完美复制。因此,传统的验证方式在计算机的世界中无法实现,据此,如何确认某条信息是某个特定的人发出的呢?在区块链的世界中,该部分由“非对称加密”实现。我们以比特币系统为例,以经典的“爱丽丝与鲍勃”假设来解释,其加密与解密过程如下:
①爱丽丝进入比特币系统时,比特币系统会给其分配一个公钥a,私钥b与地址c,a、b、c均为一串字符串,使用公钥a可以解密爱丽丝用私钥b加密的密码,其中公钥a、地址c均为公开,任何人均可知晓,私钥b为私密,仅有爱丽丝知晓;
②爱丽丝向鲍勃转50个比特币,则其将该信息x打包,并使用SHA-算法对该信息进行运算,得出SHA-(x),并通过其私钥b对SHA-(x)进行加密,得出密码b(SHA-(x));
③爱丽丝将“爱丽丝向鲍勃转50个比特币”的信息x、其公钥a,以及密码b(SHA-(x))向全网进行广播;
④收到广播的第三方将信息x进行一次SHA-运算,得出SHA-(x),假设该值为p;
⑤收到广播的第三方使用爱丽丝的公钥a解密密码b(SHA-(x)),即a((b(SHA-(x))),假设该值为q;
⑥如果p=q,则确认b(SHA-(x))系爱丽丝使用其私钥b加密而成,又因私钥b仅有爱丽丝一人知道,则可确认该消息由爱丽丝发出。
3、如何避免信息篡改我们在前述文章中提到,区块链中的“挖矿”即为了获取记录区块的权利所进行的复杂的数学计算。那么,如果区块链中的某一个挖矿者为了篡改区块链中的某一个数据,他要做哪些事呢?依旧以比特币系统为例:在比特币系统中有一个“最长链原则”,即全网只认定最长的链为有效链。我们以下图作说明:
(图4:区块链防篡改机制说明)
在一条A、B、C、D链中,如果爱丽丝想篡改(删除或改写)区块B中的交易数据,那么她就应当将其挖出的区块E接在区块A后面。但由于“最长链原则”的限制,此时全网的算力挖出的区块仍会接在区块D后,A、E事实上为无效链,因为长度不够而无法获得全网的认同,如果想将该链变为有效链,那爱丽丝就应当继续挖出F、H、I区块接在区块E后,且还要求全网算力还未算出任何一个区块接在区块D后,只要A、E、F、H、I的链在某一天长度大于A、B、C、D,爱丽丝篡改区块B交易数据的行为便会获得全网的认同,该次篡改即获得成功。在前述“挖矿”节中我们讲解过,在比特币系统中,挖矿者想要获得记录区块的权利,只能由挖矿者由通过遍历随机数的方式正向计算得出,即算力越高,其获得记账权的可能行就越大。这也是为什么比特币系统中存在一个集合全网51%算力即可篡改比特币数据说法的由来。在前述假设中,全网的算力仅49%,拥有51%算力的爱丽丝确实有可能将A、E、F、H、I链算得比A、B、C、D链长,届时,篡改了信息的A、E、F、H、I链将被全网确认为真正的适格链。
(三)区块链分类区块链大体可分为公有链、私有链。公有链亦可称作公共区块链,系完全去中心化的区块链。任何人都可以参与,且任何人均自由访问该链,并在该链上发送、接收、认证交易。一些加密数字货币系统例如BTC、ETH、EOS均可归入该类别。私有链是指只对特定的团体开放,且仅限于特定成员参与,其共识过程受到预选节点的控制,且拟加入或退出该链均需要通过授权才可实现,该类区块链由中心化机构控制,并不具有去中心化的属性。例如德勤和ConsenSys于年宣布创建的数位银行ConsenSys计划、由以太坊、Chain.