电子数据的认定包含3个重要的部分,称为“三性”:
真实性 关联性 合法性 1. 真实性认定 由于电子数据存证的特殊性,其真实性可以从三个不同的层面来认定:
电子证据载体的真实性 电子数据的真实性 电子证据内容的真实性 1.1 电子证据载体的真实性 电子证据载体的真实性,是指存储电子数据的媒介、设备在诉讼过程中保持原始性、同一性、完整性,不存在被伪造、变造、替换、破坏等问题。 主要包括两个方面的要求:
电子证据载体来源的真实性 电子证据载体在诉讼前和诉讼流转过程中的真实性。 具体来说,法官审查电子证据时往往会关注:提交的电子证据是否包括原始存储介质,原始存储介质的收集程序、方式是否符合法律规定和有关规范;如果无法提取原始存储介质,如何确保其他存储介质能够保障电子数据的真实性。 这是对电子证据载体原始性和同一性的审查。
二是电子证据载体在诉讼前和诉讼中流转过程中的真实性。诉讼前和诉讼中,证据会在多个主体(如刑事案件的公、检、法和民事、行政案件中原告、法院、被告)间流转。在此过程中需要考察:电子证据载体在移送、 流转中是否保持同一性,是否符合鉴真的要求;电子证据载体是否保持完整性,没有被改变、破坏等。
区块链技术极大地扩展了电子证据的载体外延,并可以从技术上确保电子证据载体的真实性。具体而言,区块链存证使用分布式存储并附加防篡改校验机制,使电子证据可以脱离原始存储介质而 安全存储,同时无被篡改之虞
区块链技术有效解决了电子证据载体真实性认定的问题。
1.2 电子数据的真实性 电子数据的真实性问题,是指作为电子证据信息在技术层面的存在形式的电子数据是否真实,是否与原始数据保持一致,是否存在被修改、删除、增加等问题。
电子数据的真实性,是区块链存证的真实性评价中的一个关键问题。因为,如前述,区块链技术可以保障电子证据的载体及载体上证据副本的真实性,但载体的真实和副本数据的真实,无法决定电子数据本身的真实性(意思是虽然副本和原件相同,但原件不一定是真实的)。同时,在区块链存证场景下,如果电子证据或其证据指纹(或称校验数据)上链并分布式存储,则证据的真实性已经具有技术保证。
则欲保障电子数据的真实性,则需要确保作为电子证据的数据信息(或其证据指纹)在生成时即同步上链, 或者确保该数据信息在上链前未被篡改。考虑到确保作为电子证据的数据信息在上链前未被更改实际上是一个传统的电子证据鉴定场景,不能发挥区块链技术的优势,故而在区块链存证领域,比较理想的确保电子数据真实性的方案即为作为电子证据的数据信息(或其证据指纹)在生成时即同步上链。
1.3 电子证据内容的真实性 电子证据内容的真实性,是指:(1)在“排除合理怀疑”的证明标准场合,电子证据所包含的信息可以与案件中其他证据所包含的信息能够相互印证,从而准确证明案件事实;(2)在“优势证据”证明标准场合, 电子证据所包含的信息可以证明一定的法律事实,特别是证明当事人的意思表示和法律行为。
电子证据内容的真实性是电子证据真实性的核心问题,不少语境中,电子证据的真实性,往往也是指电子证据内容的真实性。在司法实践中,鉴定意见、证据相互印证是确认电子证据内容真实性的主要方式,有些情况下二者还会同时使用。
附加可信时间戳的上链数据,可以推定为形成于特定时间点,则该数据中的时间信息就具有内容真实性。
同理,通过区块链达成的智能合约,在作为证据使用时可以推定合约内容数据真实,合约内容数据也具有了内容真实性。(意思是如果交易通过智能合约达成,可以保证交易是真实的,那么交易的内容就具有了内容真实性)
2. 关联性认定 证据的关联性,是指证据必须和需要证明的案件事实或其他争议事实具有一定的联系。
区块链在单纯的存证场景应用,技术本身并不增强电子证据的关联性。如果是一类或一系列业务运行在区块链上,因其全流程留痕,可能因为可追溯性使证据的关联更加明确,方便进行关联性认定。
无论如何,上链证据和案件无关的情况不可避免,区块链存证不能确保电子证据具有关联性,而是在部分场景下为电子证据的关联性认定提供参考。(证据链)
3. 合法性认定 证据的合法性认定包括取证主体合法性、证据形式的合法性、取证程序合法性以及证据保存与运用方式合法性四个方面。它是证据认定主体机械式对比法条的过程,其中不掺杂证据认定主体的私人价值评价。因此,与证据的真实性、关联性要求不同,证据的合法性判断不应考虑与案件事实的联系,而与法律规定密切相关。(这就不是区块链要考虑的问题了)
4. 可信时间戳 由于区块链本身上存储的只是哈希值,而非原件,因此在示证的时候如果没有原件与哈希值相对应,存证也将无法达到目的。因此,电子数据存储电子数据原件也是区块链司法存证系统的重要部分。
可信时间戳是将用户的电子数据信息和权威时间源绑定,由国家授时中心提供授时信息,将对电子数据信息和授时信息进行数字 签名生成时间戳。通过可信时间戳可确定电子数据信息生成的精确时间,并防止电子文件被篡改,为电子数据提供可信的时间证明和内容真实性、完整性证明。
可信时间戳是表示电子数据在一个特定时间点已经存在的完整的可验证的数据。
5. 区块链存证系统对电子数据认定的作用 区块链技术对电子数据证据认定的作用,即对电子证据“三性”的影响,首先在于对电子证据真实性的判定所产出的显著影响。此外,对于某些业务类型,诸如证据在链上形成并同步存储的情形,该系统对于证明所存证据的合法性和关联性也具有一定帮助。
具体而言,该系统对于证据认定辅助功能主要通过以下四个层面来实现。
安全架构确保电子数据载体真实性 关键技术提高电子数据真实性 相关技术提高证据认定效率 相关业务和链下治理辅助证据认定 6. 总结 在理想情况下(即电子数据生成时即同步上链):...
1. evm虚拟机 交易的执行是区块链节点上的一个重要的功能。是把交易中的智能合约二进制代码取出来,用执行器(Executor)执行。在交易的执行过程中,会对区块链的状态(State)进行修改,形成新区块的状态储存下来(Storage)。执行器在这个过程中,类似于一个黑盒,输入是智能合约代码,输出是状态的改变.
以太坊虚拟机(environment virtual machine,简称EVM),作用是将智能合约代码编译成可在以太坊上执行的机器码,并提供智能合约的运行环境。它是一个对外完全隔离的沙盒环境,在运行期间不能访问网络、文件,即使不同合约之间也有有限的访问权限。以太坊虚拟机提供了面向合约的高级编程语言solidity,这使得开发者可以专注于应用本身,更方便、快捷的开发去中心化应用程序,同时也大大降低了开发难度。
EVM是一种基于栈的虚拟机(区别于基于寄存器的虚拟机),用于执行智能合约,同时EVM是图灵完备的,EVM操作数栈调用深度为1024,EVM机器码长度一个字节,最多可以有256个操作码,目前已经定义了144个操作码,还有100多个操作码可以扩展,每个操作码都根据其弹栈数、压栈数定义了相应的gas消耗数量。泰岳链应用了以太坊EVM机制来实现智能合约,并增加了对国密算法的支持(SM3)。
2. solidity语言 Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的目的是能在 以太坊虚拟机(EVM) 上运行。
Solidity 是静态类型语言,支持继承、库和复杂的用户定义类型等特性。
直接看这里:Solidity最新中文文档
3. 使用Ganache与truffle进行合约开发 Ganache
ganache可以快速的在本机上启动一条以太坊链,用户可以方便的在上面部署合约,调用合约,完成各种与合约之间的交互。
ganache提供了Windows、Linux以及Mac三种系统的版本,直接到其官网或GitHub页面下载安装即可。
安装完成后,即可以快速部署一条链 使用QUICKSTART模式部署的链只会在本次会话中存在,关闭当前会话或注销当前用户都会导致链的撤销,如果只是写个小demo的话,那么使用这种方式即可。
NEW WORKSPACE则会创建一条持久化的链,不会因会话结束或用户注销而撤销链。
使用QUICKSTART模式启动
ganache会自动创建10个测试账号,每个账号分配了100个原生币,交易需要消耗这些原生币。 在页面的上方,还有其他一些选项卡,可以方便的查看当前区块、交易、事件、日志等。需要注意的是在这些选项卡的下方,还标注了本链的一些信息,如它的端口,网络ID等。 truffle
truffle提供了合约开发、测试、部署等一系列工具,通过与Ganache配合可以十分方便的测试你的合约。
安装truffle
npm install -g truffle 新建一个truffle项目
mkdir MyContract truffle init truffle会创建如下的目录结构:
├── contracts │ └── Migrations.sol ├── migrations │ └── 1_initial_migration.js ├── test └── truffle-config.js contract目录中存放我们的合约;migrations目录中存放migrate文件,功能类似数据库migrate文件,简单来说,就是让你的应用从一个状态迁移到另一个状态;test目录中存放测试文件(还未创建);truffle-config.js是配置文件,其中配置了链的地址等信息。
根据提示我们来创建一个简单的合约模板:
truffle create contract Counter truffle创建了Counter.sol文件,再次查看目录结构:
├── contracts │ ├── Counter....
1. 什么是同质化代币(FT) 同质化代币是一种能够相互替换,具有统一性,可接近无穷拆分的代币。在同质化代币的交易中,只需要关注代币交接的数量即可,其价值可能会根据交换的时间间隔而改变,但其本质没有发生变化。 举例来说,美元,人民币都是同质化代币,虽然每一张美元或人民币的序号不同,但在面额相同的情况下,不同序号的币对持有者来说没有区别。
2. 什么是非同质化代币(NFT) Non-Fungible Tokens
非同质化代币包含了记录在其智能合约中的识别信息。这些信息使每种代币具有其独特性,因此不能被另一种代币直接取代。它们不能以一换一,因为没有两个 NFT 是相同的。 此外,非同质化代币也不可分割,就像不能送给别人演唱会门票的一部分一样,门票的一部分并不值钱也不能兑换。 非同质化的独特属性使得它通常与特定资产挂钩,可以用来证明数字物品(如游戏皮肤)的所有权,甚至实物资产的所有权,主要应用于游戏和加密收藏品领域。 FT 和 NFT 的一大区别在于使用了不同的合约接口,前者为 ERC-20,后者为 ERC-721。
3. 什么是ERC-20? ERC-20 协议是以太坊区块链较早的、比较流行的代币规格协议。若以太坊平台上两种代币都以 ERC-20 发行,则两者之间可以进行自由置换。ERC20 是标准代币接口,规定了其基本功能 , 方便第三方使用。系统开源使得 ERC20 的标准已经简单到可以 5 分钟发行一个 ERC-20 代币。ERC-20 代币听命于同一组代币合约的命令,也就意味着所有 ERC-20 协议中的代币都可轻松实现转移、请求、批准等功能,但其功能因此也具有局限性。
4. 什么是ERC-721? 相比于 ERC-20,ERC-721 协议功能更多且技术更先进。该协议是以太坊的针对不可置换代币的 NFT 数字资产的第一个标准,应用于 CryptoKitties、Decentraland 等项目。ERC721 标准正是由 CryptoKitties 的 CTO Dieter Shirley 所创建和发布的,Dieter Shirley 是 NFT 的奠基人之一。
虽然 ERC-721 较 ERC-20 用例较少,功能还处于探索之用,但 721 协议下的资产——画作、债券、房子或是汽车——的优势在于能保证所有权的安全性、所有权转移的便捷性以及所有权历史的不可更改性和透明性。另外,ERC721 还可以促进追踪、交易和管理真实资 产的交易和管理等等。随着游戏虚拟资产不断流行起来,5G 和 VR 不断普及,搭载区块链技术,721 协议前景一片光明。
1. 区块链定义 区块链技术本质上是一个去中心化的数据库,它是比特币的核心技术与基础架构,是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改、不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
1.1 区块链的技术特征 区块链上存储的数据需由全网节点共同维护,可以在缺乏信任的节点之间有效地传递价值。相比现有的数据库技术,区块链具有以下技术特征。
块链式数据结构
区块链利用块链式数据结构来验证和存储数据,通过上文对区块链基本概念的介绍可以知道,每个区块打包记录了一段时间内发生的交易是对当前账本的一次共识,并且通过记录上一个区块的哈希值进行关联,从而形成块链式的数据结构。 分布式共识算法
区块链系统利用分布式共识算法来生成和更新数据,从技术层面杜绝了非法篡改数据的可能性,从而取代了传统应用中保证信任和交易安全的第三方中介机构,降低了为维护信用而造成的时间成本、人力成本和资源耗用 密码学方式
区块链系统利用密码学的方式保证数据传输和访问的安全。存储在区块链上的交易信息是公开的,但账户的身份信息是高度加密的。区块链系统集成了对称加密、非对称加密及哈希算法的优点,并使用数字签名技术来保证交易的安全。 1.2 区块链的功能特征 区块链系统的以上技术特征决定了其应用具有如下功能特征。
多中心 不同于传统应用的中心化数据管理,区块链网络中有多个机构进行相互监督并实时对账,从而避免了单一记账人造假的可能性,提高了数据的安全性。
自动化 区块链系统中的智能合约是可以自动化执行一些预先定义好的规则和条款的一段计算机程序代码,它大大提高了经济活动与契约的自动化程度。
可信任 存储在区块链上的交易记录和其他数据是不可篡改并且可溯源的,所以能够很好地解决各方不信任的问题,无需第三方可信中介。
2. 区块链的相关概念 区块链以密码学的方式维护一份不可篡改和不可伪造的分布式账本,并通过基于协商一致的规范和协议(共识机制)解决了去中心化的记账系统的一致性问题,其相关概念主要包括以下三个。
交易(Transaction)
区块链上每一次导致区块状态变化的操作都称为交易,每一次交易对应唯一的交易哈希值,一段时间后便会对交易进行打包。 区块(Block)
打包记录一段时间内发生的交易和状态结果,是对当前账本的一次共识。每个区块以一个相对平稳的时间间隔加入到链上,在企业级区块链平台中,共识时间可以动态设置。 链(Chain)
区块按照时间顺序串联起来,通过每个区块记录上一个区块的哈希值关联,是整个状态改变的日志记录。 区块链的主要结构 如何解决交易中的信任和安全问题 区块链技术体系不是通过一个权威的中心化机构来保证交易的可信和安全,而是通过加密和分布式共识机制来解决信任和安全问题,其主要技术创新有以下4点。
分布式账本 交易是由分布式系统中的多个节点共同记录的。每一个节点都记录完整的交易记录,因此它们都可以参与监督交易合法性并验证交易的有效性。不同于传统的中心化技术方案,区块链中没有任何一个节点有权限单独记录交易,从而避免了因单一记账人或节点被控制而造假的可能性。另一方面,由于全网节点参与记录,理论上讲,除非所有的节点都被破坏,否则交易记录就不会丢失,从而保证了数据的安全性。
加密技术和授权技术 区块链技术很好地集成了当前对称加密、非对称加密和哈希算法的许多优点,并使用了数字签名技术来保证交易的安全性,其中最具代表性的是使用椭圆曲线加密算法生成用户的公私钥对和使用椭圆曲线数字签名算法来保证交易安全。打包在区块上的交易信息对于参与共识的所有节点是公开的,但是账户的身份信息是经过严格加密的。
共识机制 共识机制是区块链系统中各个节点达成一致的策略和方法。区块链的共识机制替代了传统应用中保证信任和交易安全的第三方中心机构,能够降低由于各方不信任而产生的第三方信用成本、时间成本和资本耗用。常用的共识机制主要有PoW、PoS、DPoS、Paxos、PBFT等,共识机制既是数据写入的方式,也是防止篡改的手段。
智能合约 智能合约是可以自动化执行预先定义规则的一段计算机程序代码,它自己就是一个系统参与者。它能够实现价值的存储、传递、控制和管理,为基于区块链的应用提供了创新性的解决方案。
3. 区块链分类 按照节点参与方式的不同,区块链技术可以分为:公有链(Public Blockchain)、联盟链(Consortium Blockchain)和私有链(Private Blockchain)。按照权限的不同,区块链技术可以分为:许可链(Permissioned Blockchain)和非许可链(Permissionless Blockchain)。前述的三大类区块链技术中,联盟链和私有链属于许可链,公有链属于非许可链。...