一个节约区块体积的设想
比特币吧
全部回复
仅看楼主
level 11
目前的区块体积是十几G,已经大到明显影响新手入门的程度了。
一个小白下载了客户端,结果同步了一两天发现C盘被撑满了,那么对比特币的映像估计不会太好。
然后我就设想节约体积的可能性。
然后我想到,像下图这样的情况,是有压缩数据长度的余地的。
N个输入,来自同一个地址,输出较少。
查看其数据(Raw transaction)
发现其中出现了多个格式如下的内容:
 {
  "prev_out":{
  "hash":"1c50d2e2f47f2419e0560537d4f91c1b7e600f0294c384cca3b30b42fee3c03e",
   "n":1456
  },
  "scriptSig":"3045022100bf42b9c0e9f2db7e595e2f50dddb32fe28efe152eabed6563a59fbd88e430f230220213eba86d18289270b4ac807174beb2b9f42f8b8e317a63a33e9871280ea938f01 02229d7942a38599383979885067c89c427ba403751acdf1d4ff0a289c86ffad95"
 },
也就是说,对于每一个输入,都要有一个签名。每个签名要100字节的话,那么10个输入就要用同一个签名签10遍,占用1000字节。
我想,要是把这些输入打包到一起,只签一个名,那一下子就能省下900字节。
同一个地址的小额比特币越多,省下来的空间越多。想那些经常领免费币的,如果始终用的都是同一个地址,那么省下来的手续费还是较可观的。
2013年12月12日 05点12分 1
level 11
不仅是输入为相同地址的情况。
当输入为10个各不相同的地址的时候,把这10个交易的信息放在一起,跟上10个公钥,然后用第一个私钥对其签名,然后用第二个私钥对第一个签名经行签名,依次类推。
最后浓缩为只有一个签名。
验证这个签名的时候,就是把这个过程反过来。
这样的话,一个输入很多的交易,体积可以压缩一半左右。
通常的交易,输入很少完全相同,也很少各不相同,所以压缩率也会介于两者之间。
2013年12月12日 07点12分 2
level 6
好想法,
2013年12月12日 07点12分 3
level 6
治标不治本。
现在BTC的交易量才多少,如果按照1%世界现行货币的水平,也就是BTC达到9000美元的高峰时,区块的体积会比现在大得多,到时候别说C盘,整个硬盘都不够。
现在维护小组已经在想要不要抛弃一些老旧的区块,这样可以减小体积;
另外一种就是所谓的轻客户端,但轻客户端不是个好苗头。
2013年12月12日 09点12分 4
的确。轻客户端一定程度上削弱了去中心化。但新手入门完全没问题。以后的发展显然是要考虑的,但如果短期内就能较少无效空间的浪费,则可以缓解一下燃眉之急。
2013年12月12日 09点12分
level 8
没看,但是我想说,你觉得比特币的官方那帮人会怎么想。
2013年12月12日 10点12分 5
1