区块链加密数字货币的开发技术

分享英唐众创关于区块链技术的应用和开发,数字加密技术就是关键。一旦加密方法遭到破解,区块链的数据安全将受到挑战,区块链的不可篡改性将不复存在。加密算法分为对称加密算法和非对称加密算法,区块链中主要应用非对称加密算法,非对称加密算法中公钥密码体制根据其所依据的难题一般分为三类:大整数分解问题类、离散对数问题类、椭圆曲线类。

区块链加密数字货币的开发技术_第1张图片

一、区块链的加密技术的介绍

加密算法一般分为对称加密和非对称加密,非对称加密指为满足安全性需求和所有权验证需求而集成到区块链中的加密技术。非对称加密通常在加密和解密过程中使用两个非对称的密码,分别称为公钥和私钥。非对称密钥对具有两个特点:一是用其中一个密钥(公钥或私钥)加密信息后,只有另一个对应的密钥才能解开。二是公钥可向其他人公开,私钥则保密,其他人无法通过该公钥推算出相应的私钥。

区块链加密数字货币的开发技术_第2张图片

非对称加密一般划分为三类主要方式:大整数分解问题类、离散对数问题类、椭圆曲线类。大整数分解问题类指用两个较大的质数的乘积作为加密数,由于质数的出现具有不规律性,寻找破解只能通过不断的试算。离散对数问题类指的是基于离散对数的难解性,利用强的单向散列函数的一种非对称分布式加密算法。椭圆曲线类指利用平面椭圆曲线来计算成组非对称特殊值,比特币就使用此类加密算法。


非对称加密技术在区块链的应用场景主要包括信息加密、数字签名和登录认证等,其中信息加密场景主要是由信息发送者(记为A)使用接受者(记为B)的公钥对信息加密后再发送给B,B利用自己的私钥对信息解密。比特币交易的加密即属于此场景。数字签名场景则是由发送者A 采用自己的私钥加密信息后发送给B,B使用A 的公钥对信息解密、从而可确保信息是由A发送的。登录认证场景则是由客户端使用私钥加密登录信息后发送给服务器,后者接收后采用该客户端的公钥解密并认证登录信息.

区块链加密数字货币的开发技术_第3张图片

以比特币系统为例,其非对称加密机制如图1所示: 比特币系统一般通过调用操作系统底层的随机数生成器来生成256 位随机数作为私钥。比特币私钥的总量大,极难通过遍历全部私钥空间来获得存有比特币的私钥,因而密码学是安全的。

为便于识别,256 位二进制形式的比特币私钥将通过SHA256 哈希算法和Base58 转换,形成50个字符长度易识别和书写私钥提供给用户。比特币的公钥是由私钥首先经过Secp256k1椭圆曲线算法生成65 字节长度的随机数。该公钥可用于产生比特币交易时使用的地址,其生成过程是首先将公钥进行SHA256和RIPEMD160双哈希运算生成20字节长度的摘要结果(即Hash160的结果),再经过SHA256 哈希算法和Base58转换形成33字符长度的比特币地址。

公钥生成过程是不可逆的,即不能通过公钥反推出私钥。比特币的公钥和私钥通常保存在比特币钱包文件,其中私钥最为重要。丢失私钥就意味着丢失了对应地址的全部比特币资产。现有的比特币和区块链系统中,根据实际应用需求已经衍生出多私钥加密技术,以满足多重签名等更为灵活和复杂的场景。


区块链加密数字货币的开发技术_第4张图片

图1 比特币加密算法介绍


二、可分离介质和一体化钱包的争议

虽然加密算法具有很强的加密能力,但仍然存在被破解的风险。在比特币近几年的发展过程中,就发生过多起账户被盗事件,可见数字加密技术仍然有被破解的风险。因此,相对于当前一体化钱包的方式,市场上出现了可分离介质来保障账户安全。


一体化钱包指的是将支付过程中需要的用户认证、交易确认等交易相关的数字认证过程存贮在同一设备中,有效提升使用者的便利性和快捷性。但一体化钱包一旦被黑客攻破,账户内资金安全会受到极大的威胁。为此,一体化钱包往往需要多层管理以控制损失,比如小额支付低验证难度,大额支付高验证难度;熟悉场景支付低验证难度,不熟悉场景高验证难度等。这在一定程度上提升了账户资金的安全性。


可分离介质指对支付过程中需要的数字验证过程进行物理分离,由两个或两个以上的物理设备共同完成支付过程,分离介质可以是数字证书(CA)、冷钱包等。可分离介质从物理层面保护了用户账户安全,黑客即使破解了联网设备,也因为无法调用分离介质而无法盗取账户资金。但可分离介质一方面存在丢失风险,另一方面降低了用户体验,因此应用并不广泛。


加密数字货币的核心技术价值是区块链,正如各种法币有国家信用背书一样,区块链承载的就是信用,是一个无需实物抵押、不需政府或金融机构担保的信用。如果没有区块链,包括比特币在内各种加密数字货币也会变得一文不值。


加密数字货币目前有三种主要场景,一种就是数字货币,用作流通和结算;第二种是为了在各自网络中支付特定的操作,是交易和使用相关区块链资源过程燃烧的燃料(Gas),用户只是使用其计算能力来接收它,以便验证交易并促进它的发展;第三种是作为产品或社区运营的激励机制和运营工具,也就是代币或虚拟货币的角色。可以说,加密数字货币对于很多去中心化的应用的作用还是很大的。


加密数字货币的基础技术体系

货币的核心基础是信任,这里有基于实物如黄金的信任,更多基于国家背书的信任,只有保证了货币的价值稳定和价值存储能力,才使货币获得了人们的信任。


在虚拟和数字时代的,除了解决信任问题外,网络安全是数字货币的另外一个关键因素。比特币之前的任何货币,无论是物理实体黄金,还是电子化的法币,都不存在网络安全的问题,但黑客攻击和破解、技术垄断这些不稳定安全因素却极大制约着数字货币的发展。数字货币对金融安全提出了更高的要求,一方面,数字货币去中心化的特性淡化了中心化管理和机构监管,出了问题不容易刹车和纠正(如the DAO事件的处理),另一方面,区块链和数字货币这类创新金融体系尚未经历过多少风雨,在应对大数据冲击、黑客破坏、网络攻击等方面略显力不从心。


加密数字货币的目标就是要建立一个去中心化的自动运行的经济系统,应具备可流通性、可存储性、可离线交易性、可控匿名性、不可伪造性、不可重复交易性、不可抵赖性七个特性,而加密数字货币的技术基础区块链,具有不可篡改性,所有的账本都是公开透明和可追溯性,他基本解决了数字货币流通中的这些技术问题。但对于数字货币的真正落地和运行,他对信任和网络安全两个最关键的核心因素有着更高的要求。

这两个因素具体到加密数字货币的技术基础体系中,就是支撑这个系统的发行和维护网络安全的机制。其中机制有多种,如PoW,PoS,DPoS等,各有利弊,PoW有高耗能和51%攻击的风险,而PoS和预挖矿的方式会导致大量的币保留在创始人和少数人中,信用基础不够牢固,流动性不确定,因此往往会采取综合的机制,目前很多研究认为,“工作量证明机制Pow+权益证明机制Pos/DPoS”的币,才是最为完美的。采用哪种这个机制策略,将很大程度决定你的数字货币发展的前景空间。


数字货币应用层开发

构建自己原生的数字货币体系后,除了宣传官网和社交媒体外,你还需要对应开发相关的挖矿软件、ICO众筹网站、交流社区、钱包、交易市场等应用层软件。


挖矿软件:这个是针对类似比特币等Pow模式的体系,这些需要对应的挖矿软件,专业一些需要有相应矿机。首先,从git上下载现成的挖矿工具(通常支持sha和scrypt算法)、矿池,改名字编译,部署,也同样直接就可以用了。通常都是C++开发语言。


ICO众筹网站:主要是数字货币的初期资金的筹集,目前比较多的是筹集比特币和以太币,这个可以自己搭建,也可以采用第三方的ICO众筹网站如币众筹。开发语言:主流Web开发语言。


交流社区:主要用来发布资讯和給币使用者交易者交流使用,这个可以直接使用第三方的开源代码进行搭建,这类代码非常多,根据你熟悉的开发语言来选择就是了。开发语言:主流Web开发语言。


钱包:这个非常重要和关键的用户客户端,可以花多些时间好好设计一些这个的UI,提供多终端的钱包。开发语言:主流Web开发语言或App开发语言


交易市场:一般这个交易市场更多是通过淘宝或第三方交易市场来提供,但也不排除你要开发类似的交易市场,来提供給本数字货币与其他数字货币的兑换。开发语言:主流Web开发语言。


你可能感兴趣的:(区块链开发)