Litecoin与Bitcoin差异
发布于 2 年前 作者 maiiz 2142 次浏览 来自 分享

说明

此文档通过阅读Litecoin v0.8.7.1与Bitcoin v0.8.6及v0.9.0源码对比以及整理网上资料而来。整体上Litecoin采用了Bitcoin某个版本的代码(跟v0.8.6比较接近),修改其中相关参数并修改相关Hash算法,但本质上大部分代码跟逻辑与Bitcoin代码没有任何区别。 文档为2年前整理,希望对大家有些帮助

差异对比

下面通过源码印证并解释Litecoin与Bitcoin差异,图片为主,文字为辅。图片左部分为Litecoin代码,右边为Bitcoin代码,差异性目前大致分以下几类。

1.钱包地址

钱包地址(普通类,其它情况除外)ltc钱包地址时是以L开头,而btc地址是以1开头。从代码上来看,由于PUBKEY_ADDRESS参数Litecoin设置为48,Bitcoin设置为0。而地址生成最终是对nVersion+hash160+CheckSum(25字节数据)进行Base58运算,此值会传入运算设置nVersion成员,导致Base58运算生成的地址会以L开头。相关代码如下: 图片1.png

2. 参数及常量

参数化差异是指Litecoin与Bitcoin之间全局变量,宏定义及一些代码中的数字常量值由Litecoin代码修改或者添加,从而导致的不同,主要体现如下:

2.1 全局常量

Litecoin修改Bitcoin源码相关常量,比如DEFAULT_BLOCK_MAX_SIZE、DEFAULT_BLOCK_PRIORITY、MAX_MONEY、添加一些自己需要的常量数据。 图片2.png Litecoin修改处理区块的参数时间为2.5分钟,修改调整参数的周期为3.5天,多处进行总币数量判断时把Bitcoin的21000修改为自己的840000。 图片3.png

2.2 Fee相关变量

Litecoin修改Fee初始相关变量。 图片4.png Litecoin修改计算Fee函数中的相关常数。 图片5.png

2.3 客户端的版本

Litecoin修改版本文件中相关参数重写定义为自己的相关版本。 图片6.png

2.4 GenesisBlock的Hash初始挖矿难度

Litecoin修改hashGenesisBlock变量,修改初始挖矿难度参数。 图片7.png

2.5 名词

Litecoin中大量修改Bitcoin代码中的原来Bitcoin名词为Litecoin。 图片8.png

2.6 功能禁用

Litecoin中默认禁用一些交易或者其它的一些验证函数,在此举例一处。 图片9.png

2.7 默认参数

修改-testnet参数时所返回的RPCPort值 图片10.png

2.8 生成Genesis Block

Litecoin修改生成Genesis Block的相关参数,生成自己的创世块。 图片11.png

2.9 Seed参数

这个参数是提供线程ThreadDNSAddressSeed使用。 图片12.png pnSeed参数决定线程ThreadOpenConnections初始化时连接的IP 图片13.png

2.10 MessageMagic

验证签名的Magic串

const string strMessageMagic = "Bitcoin Signed Message:\n";
const string strMessageMagic = "Litecoin Signed Message:\n"; 

2.11 Message消息头

Litecoin { 0xfb, 0xc0, 0xb6, 0xdb }  
Bitcoin { 0xf9, 0xbe; 0xb4; 0xd9};

3. Hash算法

Litecoin在工作证明时采用一种新Hash算法scrypt,而Bitcoin采用的sha256。从源码上的体现在两个方面。

3.1 区块验证

Litecoin添加GetPowHash函数,该函数调用scrypt算法生成Hash。 图片14.png Litecoin在检验工作证明时使用scrypt,而Bitcoin使用GetHash,GetHash用的sha256。 图片15.png

3.2 挖矿

Litecoin在挖矿函数LitecoinMiner与BitcoinMiner函数区别也只是采用Hash算法是使用scrypt来替换sha256的区别。 图片16.png

4. 总结

Litcoin跟Bitcoin的从表现上来看差异主要体现在几个方面:

  1. 它每2.5分钟而不是10分钟处理一个块,提供更快的交易确认。
  2. 总币数是84000000是Bitcoin的4倍。
  3. 调整难度的周期为3.5天而不是2周。
  4. 它的钱包地址由L开头,而不是Bitcoin的1。
  5. 它在POW中使用Hash算法scrypt替换sha256,使得挖矿更为容易。
1 回复

6、Bitcoin现价¥5185.98/个,Litcoin现价¥27.55 /个

回到顶部