当前位置:首页 » 比特币问答 » 比特币单位bits

比特币单位bits

发布时间: 2025-06-30 04:07:02

1. 为什么比特币总量是2100万枚

比特币有争议的属性之一就是它的固定的供应量。当前每10分钟又25个新的比特币被生产出来,并且这一数字每4年减半。总的来讲,不会有超过2100万个比特币的存在>。另一方面,每个比特币可以被划分成1亿份(每份叫做1“聪”),如果一美分都足够买辆车的话,用美元来交易就麻烦重重了,但比特币就算升值到和上面假设的美元的>状况,也不会遇到那样的问题。因此,总之,将永远存在的货币单位的总数字是2,100,000,000,000,000,也就是2100万亿,或者说250.899。在选择这个数值的方>面,中本聪比大多数人意识到的要幸运的多或者说聪明的多。首先,这个数字远小于264-1,这是一台计算机里面可以以标准整数形式存放的最大整数,超过那个值的话,>数值将像里程表那样归零。
其次,然而,还有一个总“聪”数要设法低于的更小的阈值:可以用浮点的格式表示的可能的最大整数。整数不是计算机可以存储的唯一一种数字;为了处理小数,计算机>使用一种做浮点表示法的格式。浮点表示法本质上就是一个科学记数法的二进制版本。举个例子,下面是一个在你学习物理学的时候会遇到的值:
地球的质量: 5.972 1024 kg
太阳的质量: 1.989 1030 kg
光速: 2.998 108 m/s
一光年: 9.460 1015 m
质子的质量: 1.672 10-27 kg
普朗克长度: 1.616 10-35 m
我们可以注意到,科学记数法是如何使得你可以在合理的精度下表示所有的这些数值,尽管它们的大小相差极大。浮点表示法本质上就是二进制的科学记数法;当你存储数>字9.625的时候,你的计算机存放的是“1.001101
* 1011”(或者说,它存放的是01000000 00100011 01000000 00000000 00000000 00000000
>00000000
00000000,这是高精度序列形式的同样一回事)。在这个高精度形式中,系数(也就是不是指数的那部分)有52位(52bits)。这意味着高精度(更加精>确的说法是“双精度”)浮点数足以存贮高达253的数字,但不能再高了,如果超过了,你就得开始砍掉末尾的数字。比特币的250.9这一以指数形式表现的总“聪”数,刚>好低于这个最大值。
如果我们有了整数,我们为什么还要关心浮点值呢?因为更多的高阶编程语言(比如说Javascript)并不开放低阶的“浮点”和“整数表示法”,而只给程序员提供“数”的>概念
– 当然以浮点的形式提供。如果中本聪当时选择了2亿1千万而不是2100万这个值的话,用很多语言里比特币编程就会比现在要麻烦得多了。
注意,Stefan Thomas不幸的在他写BitcoinJS的时候没有及时留意到这个,以至于那个库使用了一个专门的‘大数big
number’对象,而不是一个普通数来存储教程输出值;我自己分叉的的BitcoinJS(同时还加入了其他的改进)使用了普通数。

2. 比特,字节,字都有什么区别初学者,别笑我呀

比特(bit):一位二进制数据就称为一比特数据,是信息量的最小单位。有时利用小写的b来代表。“bit”一词的来历就是把“二进制”和“数字”两个英文单词“binary”和“digit”的头尾组合而成。

字节(Byte):将8比特数据作为一个整体称为一个字节。有时候利用大写的B来代表,通常作为衡量存储器容量或文件长度的单位。

字(word):将两个字节,即16比特数据作为一个整体称为一个字。有时利用大写的W来代表。

字长:是在计算机内部对于数据进行处理的基本单位。也是内部存储器,数据存储器和数据总线的宽度。在不同的计算机中,字长可以不同。

指令:人们指定CPU或单片机执行某项具体操作的命令叫指令。通常一条指令码中包含指令码和操作数两个部分。

比特率的单位是什么? bps是什么意思?

两个概念:

1) 计算机专业术语,是信息量单位,是由英文BIT音译而来。二进制数的一位所包含的信息就是一比特,如二进制数0101就是4比特。

2)二进制数字中的位,信息量的度量单位,为信息量的最小单位。数字化音响中用电脉冲表达音频信号,“1”代表有脉冲,“0”代表脉冲间隔。如果波形上每个点的信息用四位一组的代码表示,则称4比特,比特数越高,表达模拟信号就越精确,对音频信号信号还原能力越强。

计算机中的位

二进制数系统中,每个0或1就是一个位(bit),位是数据存储的最小单位。其中8bit就称为一个字节(Byte)。计算机中的CPU位数指的是CPU一次能处理的最大位数。例如32位计算机的CPU一次最多能处理32位数据。

Bit,乃BInary digit(二进制数)位的缩写,是数学家John Wilder Tukey提议的术语(可能是1946年提出,但有资料称1943年就提出了)。这个术语第一次被正式使用,是在香农著名的《信息论》,即《通信的数学理论》(A Mathematical Theory of Communication)论文之第1页中。

假设一事件以A或B的方式发生,且A、B发生的概率相等,都为05,则一个二进位可用来代表A或B之一。例如:

1)二进位可以用来表示一个简单的正/负的判断

2)有两种状态的开关(如电灯开关) ,

3)三极管的通断,

4)某根导线上电压的有无,或者

5)一个抽像的逻辑上的然/否,等等。

由于转换成二进制后长度会发生变化,不同数制下一位的信息量并不总是一个二进位,其对应关系为对数关系,例如八进制的一位数字,八进位,相当于3个二进位。除二进位外,在电脑上常用的还有八进制,十进制,和十六进制等的八进位,十进位,和十六进位等。

名字 缩写 次方 名字 缩写 次方

kilobit kbit 10^3 kibibit Kibit 2^10

megabit Mbit 10^6 mebibit Mibit 2^20

gigabit Gbit 10^9 gibibit Gibit 2^30

terabit Tbit 10^12 tebibit Tibit 2^40

petabit Pbit 10^15 pebibit Pibit 2^50

exabit Ebit 10^18 exbibit Eibit 2^60

zettabit Zbit 10^21 zebibit Zibit 2^70

yottabit Ybit 10^24 yobibit Yibit 2^80

编辑本段单比特与多比特

数码转换器的基本构造,通常分为接收、数码滤波、数/类转换、I/V转换、类比放大等机个部分。以下仅就数码滤波与数/类转换作一浅释。

CD的取样频率为441KHz,这个规格的制定是根据Nyquist的取样理论而来,他认为要把类比讯号变成分立的符号(Discrete Time),取样时的频率至少要在原讯号的两倍以上。人耳的听觉极限约在20KHz,所以飞利浦在一九八二年推出CD时就将其制定为441KHz。取样是将类比讯号换成数码讯号的第一步,但精密度仍嫌粗糙,所以超取样的技术就出现了。一般八倍超取样就等于将取样频率提高到3528KHz,一方面提高精度,一方面经过DAC之后产生的类比讯号比较完整,所需的低通滤波器(滤除音取样时产生的超高频)次数与斜率都可大幅降低,相位误差与失真也都会获得巨大改善。不过CD每隔000002秒才取样一次,超取样后样本之间就会产生许多空档,这时需要有一些插入的样本来保持讯号完整,而这样的任务就落在数码滤波器身上(Digital Filter)。比较先进的设计是以DSP(Digital Signal Processor)方式计算,以超高取样来求得一个圆滑曲线,例如Krell的64倍超取样,但目前只有Theta、Wadia、Krell、Vimak拥有这样的技术。另一类数码滤波是事先将复杂程式与在晶片中,有类似DSP的功能,日本Denon、Pioneer 皆有这样的设计。最普通的方法是利用大量生产的晶片,NPC、Burr-Brown都有成品供应,当然效果会受一些限制。

在数码滤波之后,就进入DAC了,从这里开始有单比特与多比特的区别。多比特是数码讯号通过一个电流分配器(Current Switch),变成大小不同的电流输出,因为数码讯号是二进制关系,所以DAC的电流也以1、2、4、8的倍数排列。每一个比特分别控制一个电源分配器,随著音乐讯号变动,输出电流也跟著改变,接下来是一个速度很快的I/V转换线路,把这些电流变成电压,再接下来经过低通滤波器,完整的类比讯号就出现了。一个二十比特的DAC,其输出电流变化是1,048,576个,解析度已经相当高了。现在最常用的二十比特晶片有Burr-Brown的PCM-63与改良型PCM-1702,最贵的大概是Ultra-Analog的模组。

比特流(Bitstream)是飞利浦八八年提出的技术,构造很单位。首先二进制的数码讯号进入一个有参考电压的模组中,输入讯号比参考电压高输出就是非曲直,反之则为0;第二个讯号再与第一个讯号比较,更高的就输出1,较低输出0…以此类推。因为它只比较间的大小,所以样本要增加,需要更高的取样频率,从早期的256倍到最新的384倍就是个好例子。只有一个比特的讯号会进入一个叫开关电容(Switched Capacitor)的DAC中,还原成类比讯号。常用的单比特晶片都是飞利浦制品,最早有SAA7320,现在则把SAA7350与TDA1547合在一起称为DAC7线路,Crystal也有类似产品。

何者为优并无定论,唯一可以肯定的是绝大部分高价机种都是多比特设计。

编辑本段比特率

比特率这个词有多种翻译,比如码率等,表示经过编码(压缩)后的音频数据每秒钟需要用多少个比特来表示,而比特就是二进制里面最少的单位,要么是0,要么是1。比特率与音频压缩的关系简单的说就是比特率越高音质就越好,但编码后的文件就越大;如果比特率越少则情况刚好翻转。

VBR(Variable Bitrate)动态比特率 也就是没有固定的比特率,压缩软件在压缩时根据音频数据即时确定使用什么比特率,这是以质量为前提兼顾文件大小的方式,推荐编码模式;

ABR(Average Bitrate)平均比特率 是VBR的一种插值参数。LAME针对CBR不佳的文件体积比和VBR生成文件大小不定的特点独创了这种编码模式。ABR在指定的文件大小内,以每50帧(30帧约1秒)为一段,低频和不敏感频率使用相对低的流量,高频和大动态表现时使用高流量,可以做为VBR和CBR的一种折衷选择。

CBR(Constant Bitrate),常数比特率 指文件从头到尾都是一种位速率。相对于VBR和ABR来讲,它压缩出来的文件体积很大,而且音质相对于VBR和ABR不会有明显的提高。

影响声音的大小的物理要素是振幅,电脑上的声音必须也要能精确表示乐曲的轻响,所以一定要对声波的振幅有一个精确的描述,“比特”就是这样一个单位,x比特就是指把波形的振幅划为2的x次方个等级,根据模拟信号的轻响把它划分到某个等级中去,就可以用数字来表示了。比特率越高,越能细致地反映声音的轻响变化。

为了体现正常的声音信息,16bit为基本的需求,较好的cd使用的是20bit甚至24bit。CS呢?顶多顶多算及格。而声道就别提了,连mp3都是2 Channel。

说白了比特率就是每秒钟传输的数位

8bit=1B,如果在一条线路每秒钟能传送8bit的数据,就说此线路的比特率为8bps(bit per second)。

编辑本段比特犬

比特犬、pit bull terriers,原产美国,也称美国比特犬。起源于19世纪,比特犬主要是由美系斯塔夫(AMERICAN STAFFORDSHIRE TERRIER)和美国斗牛犬(AMERICAN BULL DOG)培育出来的。美国斗牛犬的体重范围比较大,从30公斤到58公斤。

也称美国比特犬,比特斗牛犬。产于19世纪的美国。主要是由美国斗牛犬和美系斯塔夫繁育出来的,体型差异比较大。

比特犬头呈宽大的石板状,两颚强壮有力,每平方厘米的咬合力可以达到80公斤。此犬擅长连续奔跑,耐力惊人。顽强的斗志和坚韧的性情也使它成为了一种优秀的斗牛犬。据说它只要咬住了对手就不会撒口。而紧凑的身体结构,强壮的肌肉群和没有痛感神经的皮肤更仿佛是为了斗牛而生!这也是此犬得以称霸斗犬界百余年之最大的法宝!

比特犬虽然对对手凶猛,但对主人是绝对忠诚。

有的人也把那些做事坚韧不屈,勇往直前人们的精神称之为“比特精神”!

一只身高45厘米,体重30公斤左右的比特能把一只身高95厘米,体重100公斤左右的高加索犬在几分钟内咬倒在地。比特犬的骨头比其它犬硬3倍以上,不会被别的犬咬骨折,牙齿的咬合力可以达到每平方厘米80KG 以上!它还具有一副坚韧而没有疼痛感觉神经的皮肤再加上发达的肌肉群,用以抵抗咬击。 它的耐力也很好可以在跑步机上连续跑200多公里。

您正在看的文章来自相思红豆论坛 >

电脑的存储单位比特具体怎么说?

比特币(BitCoin)的概念最初由中本聪在2008年提出,根据中本聪的思路设计发布的开源软件以及建构其上的P2P网络。比特币是一种P2P形式的数字货币。点对点的传输意味着一个去中心化的支付系统。

与大多数货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生,比特币经济使用整个p2p网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节安全性。

p2p的去中心化特性与算法本身可以确保无法通过大量制造比特币来人为操控币值。基于密码学的设计可以使比特币只能被真实的拥有者转移或支付。这同样确保了货币所有权与流通交易的匿名性。比特币与其他虚拟货币最大的不同,是其总数量非常有限,具有极强的稀缺性。该货币系统曾在4年内只有不超过1050万个,之后的总数量将被永久限制在2100万个。

比特,是一种计算机专业术语,是信息量单位,是由英文BIT音译而来。二进制数的一位所包含的信息就是一比特,如二进制数0100就是4比特。那么,比特这个概念和货币联系到一起,不难看出,比特币非现实货币,而是一种计算机电子虚拟货币,存储在你的电脑和手机上。比特币:“比特币”既可以指这种虚拟货币单位,也指比特币网络或者网络节点使用的比特币软件。BTC:BTC 是用于标示一个比特币 (B□) 的常用单位。Bit:Bit 是次于比特币的一个常用单位 -- 1,000,000 bits 等于1个比特币。这个单位通常在标示小费,商品和服务时更加方便。地址:比特币地址(例如:)由一串字符和数字组成。它其实是通过对160位二进制公钥哈希值进行base58check编码后的信息。就像别人向你的email地址发送电子邮件一样,他可以通过你的比特币地址向你发送比特币。bps(bits per second)是数据传输速率的常用单位,意思是比特率、比特/秒、位/秒、每秒传的位数。比特(bit)是信息技术中的最小单位。文件大小(例如文本或图像文件)通常以字节(Byte)为单位。一字节对应八比特。在数据传输中,数据通常是串行传输的,即一个比特接一个比特地传输。数据速率的单位是比特每秒(bps),含义是每秒串行通过的位数。比特率是指每秒传送的比特(bit)数。单位为bps(Bit PerSecond),比特率越高,传送的数据越大。比特率表示经过编码(压缩)后的音、视频数据每秒钟需要用多少个比特来表示,而比特就是二进制里面最小的单位,要么是0,要么是1。比特率与音、视频压缩的关系,简单的说就是比特率越高,音、视频的质量就越好,但编码后的文件就越大;如果比特率越少则情况刚好相反。Bps (Bytes per second), 即字节每秒,因为一字节对应八比特,所以1 Bps = 8bps。比特率是指每秒传送的比特(bit)数。单位为 bps(Bit PerSecond),比特率越高,传送数据速度越快。声音中的比特率是指将模拟声音信号转换成数字声音信号后,单位时间内的二进制数据量,是间接衡量音频质量的一个指标。通信和计算机行业内经常利用“类似国际单位制”的前缀来表示更大的衍生单位:1000 bit/s = 1 kbit/s (一千位每秒)1000 kbit/s = 1 Mbit/s (一兆或一百万位每秒)1000 Mbit/s = 1 Gbit/s (一吉比特或十亿位每秒)。

bit中文名称是位,音译“比特”,是用以描述电脑数据量的最小单位。

二进制数系统中,每个0或1就是一个位(bit)。

单位换算

1Byte=8bit

1Kb=1024byte(字节)=81024bit

1Mb=1024kb

1Gb=1024Mb

1Tb=1024Gb

一个"比特"(二进制位的简称)是计算机中数据的最小单位。一个"比特"拥有一个值,0或1。计算机在存储数据和执行指令的时候是以一组"比特"为单位的,通常又叫做"字节"。在绝大多数的计算机系统中,一个"字节"包含了八个"比特"。"字节"的一半(四个"比特")被称作半位元组。在一些系统中,八位元组被用来替代字节成为八个"比特"的存储单位,而另一些系统中,四个"字节"或八位元组又构成了一个32位的字。在这些系统中,指令的长度通常以全字(32位长)或者半字(16位长)的形式表示。在电信传输中,比特率是在给定的时间内所传输的"比特"的数量,通常单位时间是秒。

3. 什么是账本区块链,区块链中的账本

区块链技术通俗讲解本质是分布式账本

什么是区块链技术?简单解释一下区块链是什么。2019年伊始,一种新的货币开始进入数字货币的行列,并逐渐吸引了众多数字货币玩家的目光,那就是区块链科技。但是有人发现网上关于它的消息真的少得可怜,这不仅引起了很多人的疑惑,这是什么,为什么这么神秘?区块链是比特币最早的基础技术,目前全世界都在研究,可以广泛应用于金融等各个领域。

基本原理编辑

区块链的基本原理不难理解。基本概念包括:

交易:导致账簿状态发生变化的操作,如增加一条记录;

区块:记录一段时间内发生的交易和状态结果,是对当前账簿状态的共识;

链式:由块按照发生顺序串联而成,是整个状态变化的日志记录。

如果把区块链看成一个状态机,每一次事务都是一次改变状态的尝试,而每次协商一致产生的块就是参与者。

阐述编辑

用通俗的话来阐述:如果我们假设数据库是一本账本,那么读写数据库就可以看作是一种记账的行为。区块链技术的原理是在一段时间内找出最快最好的记账人,这个人来记账,然后把账本上的这一页信息发给整个系统的其他所有人。这相当于将数据库中的所有记录都进行了更改,并发送到整个网络中的每一个其他节点,因此区块链技术也称为分布式账本。

什么是“区块链”?

区块链有两个含义:

1、区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。

2、区块链是比特币的底层技术,像一个数据库账本,记载所有的交易记录。这项技术也因其安全、便捷的特性逐渐得到了银行与金融业的关注。

狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。

广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。

区块链中的超级账本是什么?

账本(Ledger)是具有一定格式与若干账页组成,以会计凭证为依据,对所有经济业务进行序时分类记录的本籍,也就是通常我们所说的账册。区块链表示一种特有的数据记录格式,区块链就是“区块+链”,所谓的区块就是数据块的意思,每一个区块之间通过某个标志连接起来,从而形成一条链。

超级账本

Hyperledger(中文名为超级账本,统称为Hyperledger)是Linux基金会于2015发起的推进区块链数字技术和交易验证的开源项目。Hyperledger的目标是让成员共同合作、共建开放平台以满足来自多个不同行业各种用户的需求,同时能大大简化业务流程。Hyperledge啲创始成员有IBM、Intel、思科等大公司。截至本书完稿时已经加入Hyperledge啲机构和公司已经超过183个,并高速增长中。

Hyperledger项目成初Linux基金会已经收到了多个不同的代码库,包括IBM代码库(一定程度上受以太坊启发),还有DAH(BitsofProof比特币代码库)和Sockstream代码库(是比特币代码库的扩展)。除此之外还有DigitalAsset和Ripple等贡献的代码。随着行业的发展,单一的项目已经无法满足业务的需求,因此Hyperledger逐步由一个单一的项目发展成了一个项目组。目前Hyperiedger已经不是某个具体的技术,而是代表一组区块链技术框架的集合。截至目前,Hyperledger项目组中一共包含9个正式项目和50多个这些正式项目的相关模块。

链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。

金窝窝所说的区块链分布式记账是什么意思?

金窝窝所说的区块链分布式记账是什么意思?,该怎样去理解金窝窝区块链技术的分布式记账?

区块链技术也称为分布式账本,通俗的来讲,如果我们把数据库假设成一本账本,读写数据库就可以看做一种记账的行为,区块链技术的原理就是在一段时间内找出记账最快最好的人,由这个人来记账,然后将账本的这一页信息发给整个系统里的其他所有人。这也就相当于改变数据库所有的记录,发给全网的其他每个节点,不仅可保证数据安全,还可以保证数据的真实性,从而提升社会信用度。

金窝窝的区块链技术所说的分布式记账有什么特点?,如何简单理解金窝窝网络科技的区块链技术的分布式记账功能?

区块链技术采用了分布式记账的模式,不论是在登记结算场景的实时对账能力,还是在数据存证场景上的不可篡改能力,都可以为溯源、防伪、供应链场景提供有力的保障。而金窝窝是以区块链技术源头来保证产品数据安全。

我们该如何理解金窝窝区块链技术的分布式记账?

分布式存储是一种数据存储技术,通过网络使用每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在网络中的各个角落。

金窝窝区块链技术中的分布式储存是什么?

重庆金窝窝分析研究区块链技术中的分布式储存如下:

一是区块链每个节点都按照块链式结构存储完整的数据,传统分布式存储一般是将数据按照一定的规则分成多份进行存储。

二是区块链每个节点存储都是独立的、地位等同的,依靠共识机制保证存储的一致性,而传统分布式存储一般是通过中心节点往其他备份节点同步数据。

金窝窝是如何解释区块链即分布式账本模式的?

区块链技术也称为分布式账本,通俗的来讲,如果我们把数据库假设成一本账本,读写数据库就可以看做一种记账的行为,区块链技术的原理就是在一段时间内找出记账最快最好的人,由这个人来记账,然后将账本的这一页信息发给整个系统里的其他所有人。这也就相当于改变数据库所有的记录,发给全网的其他每个节点,不仅可保证数据安全,还可以保证数据的真实性,从而提升社会信用度。

区块链的信任来自于底层技术,即用历史信息换得现行的信任。这是一种低成本的信用机制,从诞生到慢慢地茁壮成长,即区块链,必然会得到关注和推广。

区块链的分布式记账是什么意思?

这个问题问的好,我举个例子吧,比如我在银行存了100元,这个存钱的数据只记录在银行的数据库,别人无法获取,即“中心式记账”。而区块链是是分布式记账,是一种新的信息记录技术,而且是“加密的”“分布式的”,数据不存在一个中心了,而是在全网的计算机上都存一次。比如我向你转了100元,我会向全网所有的计算机都喊一嗓子,大家一起记一下账,即“分布式记账”。

金窝窝区块链技术中的分布式的储存是什么?

重庆金窝窝分析:大数据,指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

大数据需要应对海量化和快增长的存储,这要求底层硬件架构和文件系统在性价比上要大大高于传统技术,能够弹性扩张存储容量。

金窝窝网络:区块链中的分布式储存是怎样的?

金窝窝网络分析:在区块链中,数据被存储在不同计算机上,不仅实现了去中心化,还拥有高度的加密性和安全性,同时也降低了成本。

而且如果你的电脑有多余的存储空间,你甚至还可以把多余的存储容量租出去,一举多得。

4. 比特币区块里的各个字段含义(先写了个nonce)

nonce是个啥意思?根据bitcoin wiki

nonce是一个4-byte大小的区域,nonce的值设定使得该块的hash是以一串0开头的。
对于块数据的一点点改变(比如nonce)都会引起block hash的巨大变化。由于逆向预测hash值相对应的一组bit值(hash原文)是不可行的,在尝试足够多的nonce值且计算每个nonce值相对应的block hash之后可以找到一个满足有指定数量 0 bits (0比特位) 的hash值。而 0 bits的数量值是由difficult设定的。最终产生的hash须得是一个小于当前difficulty值。
因为这个迭代的计算耗费时间和资源,块的出现也就是得到了正确的nonce值,这构成了 proof of work

关于以太坊里的nonce 网上很多解释,很多一上来就是 交易计数器 , 然而却把跟POW有关的丢了吗?事实上以太坊里的nonce有两种意思,一个是proof of work nonce,一个是account nonce。

那智能合约呢?合约也算是Account的一种,那也有nonce吗?

是的,而且合约里面的nonce也差不多,也是一个counter。在智能合约里,nonce的值代表的是该合约创建的合约数量。只有当一个合约创建另一个合约的时候才会增加nonce的值。但是当一个合约调用另一个合约中的method时 nonce的值是不变的。

在以太坊中nonce的值可以这样来获取(其实也就是属于一个账户的交易数量):

但是这个方法只能获取交易once的值。目前是没有内置方法来访问contract中的nonce值的,除了自己定义一个counter来计数...

那好,再来看一下Ethereum Block中的nonce:
以太坊和比特币区块链一样,也需要proof of work(计划转移到股份证明也早已在做了)。在比特币区块链中,pow应该是要算出一个符合难度要求的值,通常是以一串0开头的。这个难度一直在变化。可以查看 比特币区块链的POW难度变化 。

5. BCH主要的应用场景有哪些,已经落地的有哪些

BCH除了可以应用于支付,更拥有丰富的应用场景。BCH社区曾基于BCH推出众多应用平台,如众包平台Taskopus、去中心化社交平台Memo、内容平台Honest Cash、游戏应用craft.cash等等。除此之外,BCH还可以用于慈善,Coins 4 Clothes、维基网络等都支持BCH捐赠。丰富的应用场景,不仅增加了BCH增加了BCH可用性,也为BCH用户提供更多的选择,从而吸引更多的用户使用BCH。

6. 比特币总量是2100万吗为什么

比特币的总量是有限的,2100万枚,但聪明的人类却发明了一个方法,那就是分割,将一枚分割成一小份一小份。我们知道,一块钱人民币是由十个一角组成的,一百个一分组成的,一千个一毫组成的……而这其中任何不管是一毫一分一角一圆都可再次无限分割,而总量有限的比特币也可这样无限分割下去,无穷无尽,就像你用菜刀切香肠,直切到死那一天,也没切到最小单位。所以说,总量有限的比特币,其实是无穷无尽的巨大黑洞,把整个宇宙扔进去它都能容纳。所以我的观点是,比特币等于黑洞。

大白话,捞干货!

比特币是一种天才的想法,分布式记账系统。

解一个数学题,做一次记账,等比数列的和。

比特币价值的来源,安全,共识,资产,技术

关键词:记账,方程,收敛,共识,技术

第一,比特币白皮书,天才的想法

11年前,一个化名中本聪的人发表了一篇论文叫做比特币白皮书,里面详细介绍了一种天才的想法,我经常说,引领这个世界的是人的思想。

过去人们认为虚无缥缈的东西,过去认为很扯淡的东西,在后来往往被证明是非常有远见的。比特币就是这样。

过去我们的记账往往是中心式的,总要有一个人管着你。公司里有一个财务部,有一个会计,你转的每一笔账会计总要记一记。

银行里总有一个记账的中心,有一套系统,每天转了多少账,最后都要对一对账,想想办法。

我举个例子吧,最早的信托诞生于十字军东征时期,当时很多人要出去打仗了,带着命出去,不知道还有没有命回来,于是就把自己的财产交给一帮人打理。这帮人给你经营你的财产,有了收益,他就从中抽一点儿份子。

就好比说你家有100头羊,你要走啦,儿子还在,你放不了羊了,你就把这些羊交给一些职业放羊人,羊下了小羊,它也可以从中分到。

但是这中间有一个问题,谁来监督这个事情呢?怎么知道他是安安心心给你放羊了呢?或者说他如果把你的羊给你咪了,你怎么办呢?

这就需要一套会计记账规则,也就是我们现在整个的审计系统,用一套借贷的方式。复式记账法来保证他不要迷你迷的太多,当然财务也可以作假,这就相当于100头羊,他能眯一点,眯个5只,你别眯95只,那就没多大意思了。

但是这种中心式的记账总归是有问题的,他知道你不知道,信息不对称。有人掌握了全部的信息,不是所有人都掌握信息,这就非常麻烦了。

而中本聪就设想了一种分布式的记账。所有人都可以记账,大家在一个网络中记账,利用现代的信息技术记账。很好的解决了这个问题。

记一次账,我就把他对全网公布。所有人都知道,所有人都确认了我的信息呢,就有新的人来记账,然后把这个账再对全文公布。一串儿一串儿的链下去,这就是所谓的区块链。

这种想法很好地解决了有人咪掉你的羊这种事情,因为所有人都是知道的。也防止了有人作假,你一旦作假,那下一次记账的人就跟这一次对不上了。而且你这个事情是在光天化日之下的,大家都觉得你记错了,或者你故意作假,你就失去了信用,下次你就在没记账资格。大概就是这么一种想法。

当然这其中牵扯的有密码学,有共识机制,有泊松分布等等,很多人诟病说比特币的价值来源于什么呢?比特币又没有政府背书,我还是那句话,你信高等数学,你信牛顿,你信爱因斯坦也不是因为他们有政府背书。而是因为他们的技术高超。比特币的价值真正来源其实就是技术。


第二,什么是比特币?就是记一次账,做一个数学题。等比数列的和

那到底什么是比特币呢?为什么它的总数能够被框算在2100万枚,而且还能被推算出来?

我简单介绍一下,比特币是一种奖励机制。大概就是说,当你有了记账的资格,你就把账记下来,记下来之后打包你的账,记得无误,于是你就可以获得一个奖励。

比特币的规定是这样的,当一个人都有权利记录在这十分钟内发生的所有的交易账目,比如说张三给李40个比特币,李子给王50个比特币,那你就把它们都记录下来。然后打成包。你就能够获得比特币的奖励,比如说40个20个。

那什么人有资格记录呢?这就需要一种筛选的方式,那就是算力。什么意思?你要想获得记账的资格,首先你要去算一个数学方程,解一道数学题。这个方程就叫做哈希方程,简单理解这种方程式可以正算,不能反算,你知道x可以求出y,但是你知道y不能求出x。

这怎么办?那你就只有一个一个数带进去试,试对了,你就解出来了,这种事的方式是不断的重复运作,就像是拿锹一锹一锹地的挖矿,这就是挖矿的意思,它是一种比喻,是说你拿一个一个数去试,而并不是说你真的在那儿匡几匡几挖矿。

同时呢,比特币的规则规定所有人记账每四年获得的比特币奖励是减半的。也就是说,本来你第一次这样可以获得十个,四年以后你就只能获得五个,再过四年你就只能获得2.5个。

长此以往,如果你算这个总数的话,比特币总数就会变成一个收敛的等比数列的和。也就是说你可以通过一个数学公式算出它的总数。如果按照既定的规则,那总数就是2100万枚,当然它可以继续细分到小数点后面,好像是八位。这就把他的总数给限定下来了。


第三,比特币的价值来源。

最后,我们谈一谈比特币的价值来源。在前面我已经说过了,比特币真正的价值来源于技术,来源于数学,来源于密码学,来源于天才的想法,来源于他的安全。

先说安全,我之前已经介绍了比特币的运行机制,你在记账的时候要对全网公布,那么一旦全网的人都收到了你的信息,那相当于你在大家的眼皮子底下裸奔,你身上有什么大家看的一清二楚,你想干坏事儿,这几乎是不可能的。

同时呢,比特币曾经受过多次的攻击,但是依然没有打垮他,依然非常的安全,他的数据不能被篡改。如果一次又一次证明他是安全的,他就会越来越有信用。

那为什么比特币越来越值钱?以前就不值钱了呢?它的价格能够涨一千多万倍2000万倍呢?原因是越来越多的人信他,越来越多的人看中他,越来越多的人认可他。如果所有人都认可比特币,所有人都认为比特币是重要的,比特币是合理的,比特币是安全的,那么这种共识就会变成一种信仰。当一个东西变成信仰的时候,它的价值也就不言而喻。

最后,比特币具有资产的特点,严格来说它应该算作一种无形资产。这种无形资产特点是它基本不会折旧。你想想他本来就是一个虚无缥缈的东西,是一种虚拟的东西,他放一年跟放十年是一模一样的,它只存在于人们的脑子中。

我之前已经多次介绍过资产的特点,资产可以长久的放着,他是一个耐用品,那么人们购买它其实就是为了博一个更高的收益, 明天买它比今天更贵,后天买它比明天更贵,越来越高,资产就是这样,越贵越想买,只要他在持续的上涨,人们形成共同的预期,它就是有价值的。

结论。那从比特币白皮书开始,一个化名中本聪的人就有了一种天才的想法,把中心式的记账改为分布式的记账。这种记账方式不容易被篡改,不容易作假。是一种天才的想法。

比特币的规则规定所有人达成共识,在一段时间内计算一个哈希方程,获得打包记账的权利。同时把十分钟内的账务向全网公布,随着时间的推移,比特币的奖励不断减半。比特币的总数也就成为了一个等比数列的和,不断的收敛,总数就是一定的。

比特币的价值来源其实就是技术,其实就是安全,其实就是共识机制,其实就是资产的特点。 历史 上很多有价值的东西其实都是虚无缥缈的,真正左右人类前进的,其实是人类的思想。

比特币的总量是2100万个,没错,这个是在写源代码一开始的时候就限定死的了,可以参考比特币的白皮书,里面写的很清楚,这个1个比特币是通过挖矿获取的,但是强调一点,比特币的总量是2100万个,但是这个1个比特币是可以细分的。

也就是1个比特币还可以细分到很小很小。有多小?

现在比特币的最小单位为1聪,而1个比特币就等于 1亿聪。

至于这个聪是怎么来的?是因为比特币的发明者“中本聪”取名而来的。

所以如果你按照个数来说,比特币的能够通过挖矿获取的数量就是2100万个。 没错!

但是如果你通过交易来获取比特币来细分。。。那可以细分到1个比特币可以分为1亿聪!!

比特币的整个运行机制都是模仿的实体黄金,这也是为什么很多人把比特币称之为数字黄金的原因。而我们知道黄金它作为地球上元素的一种它本身是具有稀缺性的,这也导致黄金为首的贵金属在人类很长的 历史 中都扮演着货币天然是金银的角色。所以比特币最初规定的数量同样也是有限的,总数是2,100万枚。

2008年10月31日,一个署名为中本聪的人在网络上提出了长达9页的去中心化点对点的交易方式构想,这个构想后来被称之为比特币的白皮书。在比特币的白皮书里有着明确的规定,比特币的上限数量是限定死的2,100万枚,并且永远无法篡改,这是支撑当前比特币价格的一个基石。

所以我们能够看到比特币的数量并不是无限的,总数量它有一个恒定量是2,100万枚,目前流通中的比特币数量已经超过了1,800万枚,但是最后一枚比特币面世时间将会在2100年以后,也是由它的算法机制所决定的。你所理解的比特币数量是无限的,应该是它的最小值,但是目前的流通中的总数量1,800万枚比特币,还包括接近400万枚沉默在 历史 时间长河中的已经被丢失的比特币。

所以有空多看看中本聪2008年10月份发表的白皮书在这份长达9页的论文里带给我们的,并不仅仅是比特币还有最终的区块链技术,这才是比特币带给世界的一份大礼。

至于比特币的总量,实际上,准确地说,比特币的总量是2099999.769万,略低于2100万。

比特币生成计划:

比特币挖掘的计算方法

比特币在10分钟内生成一个区块,将每小时6个区块的速度乘以24小时(每天)、365天(一年),最后是4年(一个周期)。结果,在一个周期内总共生成210000个块。所有区块的奖励从50逐渐减少到25,然后逐渐减少到12.5,因此有50+25+12.5+6.25+3.125。。。=100个奖励,两个数字相乘可获得2100万比特币。

也就是说,到2140年,比特币将被完全挖掘出来。

为什么比特币的总金额只有2100万?不能再多点吗?

我们来谈谈为什么比特币的总量是2100万。首先,比特币总量由中本设计。到目前为止,他还没有说清楚原因。所以外界有很多猜测。现在我将向您列出以下8种猜测。

猜测一:因为21是最终答案42的一半。

说明:答案是一个笑话。这条线索来自电影《银河系指南》中最终答案的桥梁:宇宙的最终答案是42。

猜测二:因为我们生活在21世纪。

解说:这有点牵强。

猜想三:中本设定的原则是每10分钟生产一个街区,奖励50枚硬币,4年内减半。结果很自然。

说明:中本没有人为干预,而是接受了自然结果。

猜想四:世界上所有的黄金都熔化在一起,这是一个边长约21米的立方体。

注:中本用这个概念来比喻比特币是一种虚拟黄金。

为什么比特币的总金额只有2100万?不能再多点吗?

猜想五:外人认为中本喜欢玩21点。

解释:我对这个答案没有任何解释。

猜测6:有32位整数可以存储2^31-1,即2147483647。如果你取前8位,它是21474836.47比特币。那是2100万。

注:我猜本聪在最初的开发中使用了32位精度整数。后来,他发现对于一种全球货币来说,精度是不够的,于是他将小数点后两位扩展到8位,并将32位存储改为64位存储。

猜测7:比特币是用来比较全球经济总量的,根据目前全球经济水平,全球经济总量估计为2100万上限。

说明:我认为这个猜测更科学。

猜想八:根据以太坊创始人维塔利克·布特林的分析,这个值可能与计算机编程语言支持的整数数据范围有关,与特殊货币相比,也便于后续开发者的维护。

注:比特币使用C++编程语言。

总结与分析

以上八个答案都是外界猜测的。因为中本一直没有解释,所以我们没有一个肯定的答案。就我个人而言,我同意V上帝。那么你心里的答案是什么?

【1】准确的说最终产生的比特币数量是20999999.97690000个,比2100万少一点。

【2】为了防止比特币升值以后的分割交易和使用,每个比特币可以被划分成约1亿份,每份叫做1“聪”,换句话说就是1个比特币可以精确到小数点后8位。这样一来,全部比特币单位(每一份)的总数字是2,100,000,000,000,000,也就是2100万亿,或者说2的50.899次方。

【3】为什么是2的50.899次方这个数字呢?因为这是目前64位计算机里面可以以标准整数形式存放的最大整数是2的64次方-1,一旦超过这个值,数值就会归零。

【4】之所以不选2的63次方,是因为一个总“聪”数要设法低于的更小的阈值:可以用浮点的格式表示的可能的最大整数。因为高阶计算编程语言普遍不能处理整数,处理整数就会丢失精度,比如在很多语言里3除以2等于1,而处理浮点数就不会有这样的问题 。因此,为了处理小数,计算机使用一种做浮点表示法的格式。浮点表示法本质上就是一个科学记数法的二进制版本。

在这个高精度形式中,系数(也就是不是指数的那部分)有52位(52bits)。这意味着双精度浮点数最多可以存贮高达2的53次方的数字,而且不能再高了,如果超过了,就得开始砍掉末尾的数字。比特币的2的50.899次方这一以指数形式表现的总“聪”数,刚好低于这个最大值。


综上所述, 就是比特币总数大约是2100万个的真正原因。 中本聪之所以这样设计主要是考虑到编程方便。至于现有些人所说的每10分钟系统出现一个区块,生成50个比特币,每四年减半,大概到2140全部产出正好是2100万个,其实是错误的。

总量是约等于2100万个,每四年减半,大概到2140年会彻底挖完,此后挖矿不再产出BTC,矿工收入来源为转账手续费。

这些逻辑是在代码里写死的。

这个问得好,这个问题其实就是问到了关于数字货币的起源。

主权政府具有发币权,各国央行会不断发行货币,比如我国发行人民币,美国发行美元。因为主权政府发行货币没有限制,海量货币造成通货膨胀,居民手里的钱不断在贬值。

比如小时候馒头一元四个,现在一元一个,有的地方2元一个。物价上涨的例子不胜枚举。

在这种情况下,居民辛辛苦苦攒下的财富,永远在不断的缩水,人必须永远忙碌。假如你30岁积累的财富,够你躺着殷实的度过余生。但是,如果不能保持财富增值,你60岁的时候会发现就快没有余粮了,同样数量的货币已经买不到什么东西了。

为了对抗这种货币贬值,聪明的创造者就创造出了数量必须有限的数字货币。比特币就是开创者,有且只有2100万枚,并不归任何政府管理。

数字货币就是因为这个被创造出来。至于比特币怎样确保总量仅有2100万枚,这是另一个问题,感兴趣可以再讨论。

数字货币发展方兴未艾,体现了居民对自己辛苦积累的财富的珍视。主权政府可以“掠夺”财富于无形,推动了数字货币新事物的发展。

拿比特币无限可分说事的人,是根本没理解比特币。我不推荐你买比特币,但是这个道理必须讲清楚,“无限可分”和“总量无限”是两回事。

先说总量问题,再说为啥无限可分不代表总量无限,比特币总量确实是2100万,你可以把比特币的数量理解成,一个超级难的方程式的解,而这个解一共有2100万个,这个是可证明的数学定理,所以总量是确定的,你拥有一个比特币就相当于你拥有一个解,这个解的归属权,就在每次计算出结果后,记录在比特币的链条上,而且是无法篡改的。而且比特币,是无法更多发行的。

然后很多人说,比特币不是2100万个,因为比特币是无限可分的,你可以拥有0.1个比特币,0.01个比特币,0.001个比特币,所以比特币是无限的。

说比特币无限可分这个是对的,但因此说比特币是总量无限的,就是胡扯了。

在总量一定的情况下,无论你怎么继续分,原来有多少,你还是有多少,你原来有10个比特币,那么无论剩下的2000多万怎么继续划分,你永远都拥有10/21000000的比特币分量,不会因为有人把自己的1个比特币分成了100份,他就拥有比你更多的比特币了。同样的,也不会因为你把这10个比特币继续分成1000分,你就拥有超过10/21000000的比特币分量了。

但是传统货币不同,假设市场上流通的货币总量是1000万,你拥有10万,那么你就拥有1/100的货币量。

假设你这10万不动,接着,国家又发行了1000万的货币,那么你所拥有的货币量就变成了1/200了。

那么在你什么都不做的时候,你的货币就贬值了。

比特币被吹捧的原因之一,就在于,没有一个这样的中央银行,可以随便发行货币,导致手里的货币贬值。

当然了,国家也不是随便就发,但是比起拥有总量恒定的比特币,央行在这方面的弹性那就太大了。

另外无限可分充其量也就是个数学 游戏 ,理论上说,任何货币都是无限可分的,只要国家愿意发行,0.001元,0.0001, 0.00000000001元......,那么任何货币都是无限可分的,只不过比特币通过程序代码实现,实现起来更容易。

骗局你明白吗就和当初美元又叫美金一样,等到价值上来了就可以割全世界韭菜,还是咱们国家厉害。上来就禁止比特币中国交易了。

7. 区块链最高能长到多少

最长区块链才是正确的区块链?

什么是最长链?为什么是正确的区块链?

比特币白皮书规定,节点永远认为最长链是正确的区块链,并将持续在它上面延长。所有矿工都在最长链上挖矿,有利于区块链账本的唯一性。如果给你转账的比特币交易不记录在最长链上,你将有可能面临财产损失。

怎样算是“最长的区块链”呢?因为全世界的矿工同时在挖矿,有可能同时有2个矿工算出了正确的答案,那么区块链就会形成分叉,剩下的矿工有可能在其中任意一条分叉上继续挖矿,延长区块链。

所以我们通常要求在比特币转账被打包之后,还需要经历6个区块的确认,确保矿工不会再回到另一条分叉上挖矿时,才算真正的转账成功。

【科普】如何选择区块链的最长链

本文由币车HIT(biche.yaofache.com)大V养成计划支持。

基于逐利,节点就会自发的遵守协议。共识就是数以万计的独立节点遵守了简单的规则(通过异步交互)自发形成的。

比特币没有中心机构,几乎所有的完整节点都有一份公共总帐本,那么大家如何达成共识:确认哪一份才是公认权威的总账本呢?

为什么要遵守协议

这其实是一个经济问题,在经济活动中的每个人都是自私自利的,追求的是利益的最大化,一个节点工作量只有在其他的节点认同其是有效的(打包的新区块,其他的节点只有验证通过才会加入到区块链中,并在网络上传播),才能够过得收益,?而只有遵守规则才会得到其他的节点认同。?因此,基于逐利,节点就会自发的遵守协议。共识就是数以万计的独立节点遵守了简单的规则(通过异步交互)自发形成的。

去中心化共识

实际上,比特币的共识由所有节点的4个独立过程相互作用而产生:

每个节点(挖矿节点)依据标准对每个交易进行独立验证;挖矿节点通过完成工作量证明,将交易记录独立打包进新区块;每个节点独立的对新区块进行校验并组装进区块链;每个节点对区块链进行独立选择,在工作量证明机制下选择累计工作量最大的区块链;共识最终目的是保证比特币不停的在工作量最大的区块链上运转,工作量最大的区块链就是权威的公共总帐本。

最长链的选择

先来一个定义,把累计了最多难度的区块链。在一般情况下,也是包含最多区块的那个链称为主链

每一个(挖矿)节点总是选择并尝试延长主链。

分叉

当有两名矿工在几乎在相同的时间内,各自都算得了工作量证明解,便立即传播自己的“获胜”区块到网络中,先是传播给邻近的节点而后传播到整个网络。每个收到有效区块的节点都会将其并入并延长区块链。?当这个两个区块传播时,一些节点首先收到#3458A,?一些节点首先收到#3458B,这两个候选区块(通常这两个候选区块会包含几乎相同的交易)都是主链的延伸,分叉就会产生,这时分叉出有竞争关系的两条链。两个块都收到的节点,会把其中有更多工作量的一条会继续作为主链,另一条作为备用链保存(保存是因为备用链将来可能会超过主链难度称为新主链)。

分叉解决

收到#3458A的(挖矿)节点,会立刻以这个区块为父区块来产生新的候选区块,并尝试寻找这个候选区块的工作量证明解。同样地,接受#3458B区块的节点会以这个区块为链的顶点开始生成新块,延长这个链(下面称为B链)。?当原本以#3458A为父区块求解的节点在收到#3458B,?#3459B之后,会立刻将B链作为主链(因为#3458A为顶点的链已经不是最长链了)继续挖矿。节点也有可能先收到#3459B,再收到#3458B,收到#3459B时,会被认为是“孤块“(因为还找不到#3459B的父块#3458B)保存在孤块池中,一旦收到父块#3458B时,节点就会将孤块从孤块池中取出,并且连接到它的父区块,让它作为区块链的一部分。

比特币将区块间隔设计为10分钟,是在更快速的交易确认和更低的分叉概率间作出的妥协。更短的区块产生间隔会让交易确认更快地完成,也会导致更加频繁地区块链分叉。与之相对地,长的间隔会减少分叉数量,却会导致更长的确认时间。

什么是区块链扩容?

普通用户能够运行节点对于区块链的去中心化至关重要

想象一下凌晨两点多,你接到了一个紧急呼叫,来自世界另一端帮你运行矿池(质押池)的人。从大约14分钟前开始,你的池子和其他几个人从链中分离了出来,而网络仍然维持着79%的算力。根据你的节点,多数链的区块是无效的。这时出现了余额错误:区块似乎错误地将450万枚额外代币分配给了一个未知地址。

一小时后,你和其他两个同样遭遇意外的小矿池参与者、一些区块浏览器和交易所方在一个聊天室中,看见有人贴出了一条推特的链接,开头写着“宣布新的链上可持续协议开发基金”。

到了早上,相关讨论广泛散布在推特以及一个不审查内容的社区论坛上。但那时450万枚代币中的很大一部分已经在链上转换为其他资产,并且进行了数十亿美元的defi交易。79%的共识节点,以及所有主要的区块链浏览器和轻钱包的端点都遵循了这条新链。也许新的开发者基金将为某些开发提供资金,或者也许所有这些都被领先的矿池、交易所及其裙带所吞并。但是无论结果如何,该基金实际上都成为了既成事实,普通用户无法反抗。

或许还有这么一部主题电影。或许会由MolochDAO或其他组织进行资助。

这种情形会发生在你的区块链中吗?你所在区块链社区的精英,包括矿池、区块浏览器和托管节点,可能协调得很好,他们很可能都在同一个telegram频道和微信群中。如果他们真的想出于利益突然对协议规则进行修改,那么他们可能具备这种能力。以太坊区块链在十小时内完全解决了共识失败,如果是只有一个客户端实现的区块链,并且只需要将代码更改部署到几十个节点,那么可以更快地协调客户端代码的更改。能够抵御这种社会性协作攻击的唯一可靠方式是“被动防御”,而这种力量来自去一个中心化的群体:用户。

想象一下,如果用户运行区块链的验证节点(无论是直接验证还是其他间接技术),并自动拒绝违反协议规则的区块,即使超过90%的矿工或质押者支持这些区块,故事会如何发展。

如果每个用户都运行一个验证节点,那么攻击很快就会失败:有些矿池和交易所会进行分叉,并且在整个过程中看起来很愚蠢。但是即使只有一些用户运行验证节点,攻击者也无法大获全胜。相反,攻击会导致混乱,不同用户会看到不同的区块链版本。最坏情况下,随之而来的市场恐慌和可能持续的链分叉将大幅减少攻击者的利润。对如此旷日持久的冲突进行应对的想法本身就可以阻止大多数攻击。

Hasu关于这一点的看法:

“我们要明确一件事,我们之所以能够抵御恶意的协议更改,是因为拥有用户验证区块链的文化,而不是因为PoW或PoS。”

假设你的社区有37个节点运行者,以及80000名被动监听者,对签名和区块头进行检查,那么攻击者就获胜了。如果每个人都运行节点的话,攻击者就会失败。我们不清楚针对协同攻击的启动群体免疫的确切阈值是多少,但有一点是绝对清楚的:好的节点越多,恶意的节点就越少,而且我们所需的数量肯定不止于几百几千个。

那么全节点工作的上限是什么?

为了使得有尽可能多的用户能够运行全节点,我们会将注意力集中在普通消费级硬件上。即使能够轻松购买到专用硬件,这能够降低一些全节点的门槛,但事实上对可扩展性的提升并不如我们想象的那般。

全节点处理大量交易的能力主要受限于三个方面:

算力:在保证安全的前提下,我们能划分多少CPU来运行节点?

带宽:基于当前的网络连接,一个区块能包含多少字节?

存储:我们能要求用户使用多大的空间来进行存储?此外,其读取速度应该达到多少?(即,HDD足够吗?还是说我们需要SSD?)

许多使用“简单”技术对区块链进行大幅扩容的错误看法都源自于对这些数字过于乐观的估计。我们可以依次来讨论这三个因素:

算力

错误答案:100%的CPU应该用于区块验证

正确答案:约5-10%的CPU可以用于区块验证

限制之所以这么低的四个主要原因如下:

我们需要一个安全边界来覆盖DoS攻击的可能性(攻击者利用代码弱点制造的交易需要比常规交易更长的处理时间)

节点需要在离线之后能够与区块链同步。如果我掉线一分钟,那我应该要能够在几秒钟之内完成同步

运行节点不应该很快地耗尽电池,也不应该拖慢其他应用的运行速度

节点也有其他非区块生产的工作要进行,大多数是验证以及对p2p网络中输入的交易和请求做出响应

请注意,直到最近大多数针对“为什么只需要5-10%?”这一点的解释都侧重于另一个不同的问题:因为PoW出块时间不定,验证区块需要很长时间,会增加同时创建多个区块的风险。这个问题有很多修复方法,例如BitcoinNG,或使用PoS权益证明。但这些并没有解决其他四个问题,因此它们并没有如许多人所料在可扩展性方面获得巨大进展。

并行性也不是灵丹妙药。通常,即使是看似单线程区块链的客户端也已经并行化了:签名可以由一个线程验证,而执行由其他线程完成,并且有一个单独的线程在后台处理交易池逻辑。而且所有线程的使用率越接近100%,运行节点的能源消耗就越多,针对DoS的安全系数就越低。

带宽

错误答案:如果没2-3秒都产生10MB的区块,那么大多数用户的网络都大于10MB/秒,他们当然都能处理这些区块

正确答案:或许我们能在每12秒处理1-5MB的区块,但这依然很难

如今,我们经常听到关于互联网连接可以提供多少带宽的广为传播的统计数据:100Mbps甚至1Gbps的数字很常见。但是由于以下几个原因,宣称的带宽与预期实际带宽之间存在很大差异:

“Mbps”是指“每秒数百万bits”;一个bit是一个字节的1/8,因此我们需要将宣称的bit数除以8以获得字节数。

网络运营商,就像其他公司一样,经常编造谎言。

总是有多个应用使用同一个网络连接,所以节点无法独占整个带宽。

P2P网络不可避免地会引入开销:节点通常最终会多次下载和重新上传同一个块(更不用说交易在被打包进区块之前还要通过mempool进行广播)。

当Starkware在2019年进行一项实验时,他们在交易数据gas成本降低后首次发布了500kB的区块,一些节点实际上无法处理这种大小的区块。处理大区块的能力已经并将持续得到改善。但是无论我们做什么,我们仍然无法获取以MB/秒为单位的平均带宽,说服自己我们可以接受1秒的延迟,并且有能力处理那种大小的区块。

存储

错误答案:10TB

正确答案:512GB

正如大家可能猜到的,这里的主要论点与其他地方相同:理论与实践之间的差异。理论上,我们可以在亚马逊上购买8TB固态驱动(确实需要SSD或NVME;HDD对于区块链状态存储来说太慢了)。实际上,我用来写这篇博文的笔记本电脑有512GB,如果你让人们去购买硬件,许多人就会变得懒惰(或者他们无法负担800美元的8TBSSD)并使用中心化服务。即使可以将区块链装到某个存储设备上,大量活动也可以快速地耗尽磁盘并迫使你购入新磁盘。

一群区块链协议研究员对每个人的磁盘空间进行了调查。我知道样本量很小,但仍然...

请点击输入图片描述

此外,存储大小决定了新节点能够上线并开始参与网络所需的时间。现有节点必须存储的任何数据都是新节点必须下载的数据。这个初始同步时间(和带宽)也是用户能够运行节点的主要障碍。在写这篇博文时,同步一个新的geth节点花了我大约15个小时。如果以太坊的使用量增加10倍,那么同步一个新的geth节点将至少需要一周时间,而且更有可能导致节点的互联网连接受到限制。这在攻击期间更为重要,当用户之前未运行节点时对攻击做出成功响应需要用户启用新节点。

交互效应

此外,这三类成本之间存在交互效应。由于数据库在内部使用树结构来存储和检索数据,因此从数据库中获取数据的成本随着数据库大小的对数而增加。事实上,因为顶级(或前几级)可以缓存在RAM中,所以磁盘访问成本与数据库大小成正比,是RAM中缓存数据大小的倍数。

不要从字面上理解这个图,不同的数据库以不同的方式工作,通常内存中的部分只是一个单独(但很大)的层(参见leveldb中使用的LSM树)。但基本原理是一样的。

例如,如果缓存为4GB,并且我们假设数据库的每一层比上一层大4倍,那么以太坊当前的~64GB状态将需要~2次访问。但是如果状态大小增加4倍到~256GB,那么这将增加到~3次访问。因此,gas上限增加4倍实际上可以转化为区块验证时间增加约6倍。这种影响可能会更大:硬盘在已满状态下比空闲时需要花更长时间来读写。

这对以太坊来说意味着什么?

现在在以太坊区块链中,运行一个节点对许多用户来说已经是一项挑战,尽管至少使用常规硬件仍然是可能的(我写这篇文章时刚刚在我的笔记本电脑上同步了一个节点!)。因此,我们即将遭遇瓶颈。核心开发者最关心的问题是存储大小。因此,目前在解决计算和数据瓶颈方面的巨大努力,甚至对共识算法的改变,都不太可能带来gaslimit的大幅提升。即使解决了以太坊最大的DoS弱点,也只能将gaslimit提高20%。

对于存储大小的问题,唯一解决方案是无状态和状态逾期。无状态使得节点群能够在不维护永久存储的情况下进行验证。状态逾期会使最近未访问过的状态失活,用户需要手动提供证明来更新。这两条路径已经研究了很长时间,并且已经开始了关于无状态的概念验证实现。这两项改进相结合可以大大缓解这些担忧,并为显著提升gaslimit开辟空间。但即使在实施无状态和状态逾期之后,gaslimit也可能只会安全地提升约3倍,直到其他限制开始发挥作用。

另一个可能的中期解决方案使使用ZK-SNARKs来验证交易。ZK-SNARKs能够保证普通用户无需个人存储状态或是验证区块,即使他们仍然需要下载区块中的所有数据来抵御数据不可用攻击。另外,即使攻击者不能强行提交无效区块,但是如果运行一个共识节点的难度过高,依然会有协调审查攻击的风险。因此,ZK-SNARKs不能无限地提升节点能力,但是仍然能够对其进行大幅提升(或许是1-2个数量级)。一些区块链在layer1上探索该形式,以太坊则通过layer2协议(也叫ZKrollups)来获益,例如zksync,Loopring和Starknet。

分片之后又会如何?

分片从根本上解决了上述限制,因为它将区块链上包含的数据与单个节点需要处理和存储的数据解耦了。节点验证区块不是通过亲自下载和执行,而是使用先进的数学和密码学技术来间接验证区块。

因此,分片区块链可以安全地拥有非分片区块链无法实现的非常高水平的吞吐量。这确实需要大量的密码学技术来有效替代朴素完整验证,以拒绝无效区块,但这是可以做到的:该理论已经具备了基础,并且基于草案规范的概念验证已经在进行中。

以太坊计划采用二次方分片(quadraticsharding),其中总可扩展性受到以下事实的限制:节点必须能够同时处理单个分片和信标链,而信标链必须为每个分片执行一些固定的管理工作。如果分片太大,节点就不能再处理单个分片,如果分片太多,节点就不能再处理信标链。这两个约束的乘积构成了上限。

可以想象,通过三次方分片甚至指数分片,我们可以走得更远。在这样的设计中,数据可用性采样肯定会变得更加复杂,但这是可以实现的。但以太坊并没有超越二次方,原因在于,从交易分片到交易分片的分片所获得的额外可扩展性收益实际上无法在其他风险程度可接受的前提下实现。

那么这些风险是什么呢?

最低用户数量

可以想象,只要有一个用户愿意参与,非分片区块链就可以运行。但分片区块链并非如此:单个节点无法处理整条链,因此需要足够的节点以共同处理区块链。如果每个节点可以处理50TPS,而链可以处理10000TPS,那么链至少需要200个节点才能存续。如果链在任何时候都少于200个节点,那可能会出现节点无法再保持同步,或者节点停止检测无效区块,或者还可能会发生许多其他坏事,具体取决于节点软件的设置。

在实践中,由于需要冗余(包括数据可用性采样),安全的最低数量比简单的“链TPS除以节点TPS”高几倍,对于上面的例子,我们将其设置位1000个节点。

如果分片区块链的容量增加10倍,则最低用户数也增加10倍。现在大家可能会问:为什么我们不从较低的容量开始,当用户很多时再增加,因为这是我们的实际需要,用户数量回落再降低容量?

这里有几个问题:

区块链本身无法可靠地检测到其上有多少唯一用户,因此需要某种治理来检测和设置分片数量。对容量限制的治理很容易成为分裂和冲突的根源。

如果许多用户突然同时意外掉线怎么办?

增加启动分叉所需的最低用户数量,使得防御恶意控制更加艰难。

最低用户数为1,000,这几乎可以说是没问题的。另一方面,最低用户数设为100万,这肯定是不行。即使最低用户数为10,000也可以说开始变得有风险。因此,似乎很难证明超过几百个分片的分片区块链是合理的。

历史可检索性

用户真正珍视的区块链重要属性是永久性。当公司破产或是维护该生态系统不再产生利益时,存储在服务器上的数字资产将在10年内不再存在。而以太坊上的NFT是永久的。

是的,到2372年人们仍能够下载并查阅你的加密猫。

但是一旦区块链的容量过高,存储所有这些数据就会变得更加困难,直到某时出现巨大风险,某些历史数据最终将……没人存储。

要量化这种风险很容易。以区块链的数据容量(MB/sec)为单位,乘以~30得到每年存储的数据量(TB)。当前的分片计划的数据容量约为1.3MB/秒,因此约为40TB/年。如果增加10倍,则为400TB/年。如果我们不仅希望可以访问数据,而且是以一种便捷的方式,我们还需要元数据(例如解压缩汇总交易),因此每年达到4PB,或十年后达到40PB。InternetArchive(互联网档案馆)使用50PB。所以这可以说是分片区块链的安全大小上限。

因此,看起来在这两个维度上,以太坊分片设计实际上已经非常接近合理的最大安全值。常数可以增加一点,但不能增加太多。

结语

尝试扩容区块链的方法有两种:基础的技术改进和简单地提升参数。首先,提升参数听起来很有吸引力:如果您是在餐纸上进行数学运算,这就很容易让自己相信消费级笔记本电脑每秒可以处理数千笔交易,不需要ZK-SNARK、rollups或分片。不幸的是,有很多微妙的理由可以解释为什么这种方法是有根本缺陷的。

运行区块链节点的计算机无法使用100%的CPU来验证区块链;他们需要很大的安全边际来抵抗意外的DoS攻击,他们需要备用容量来执行诸如在内存池中处理交易之类的任务,并且用户不希望在计算机上运行节点的时候无法同时用于任何其他应用。带宽也会受限:10MB/s的连接并不意味着每秒可以处理10MB的区块!也许每12秒才能处理1-5MB的块。存储也是一样,提高运行节点的硬件要求并且限制专门的节点运行者并不是解决方案。对于去中心化的区块链而言,普通用户能够运行节点并形成一种文化,即运行节点是一种普遍行为,这一点至关重要。

8. 二进制bit7等于多少

是111。
bit也就是我们不一定听说过的比特,大名鼎鼎的比特币就是以此命名的。它的简写为小写字母 “b”它作为信息技术的最基本存储单元,电脑是以二进制存储以及发送接收数据的。二进制的一位,就叫做 1 bit。也就是说 bit 的含义就是二进制数中的一个数位,即 “0” 或者 "1"。
拓展:网络线路的计量单位,也就是我们通常说的 2M 宽带,10 M 宽带的单位,是 比特每秒(bits per second)。比特每秒 的缩写为 bps,意思是每秒接收的平均比特数。更大的单位是 千比特每秒(Kbps)或 兆比特每秒(Mbps)。2M宽带,意味着每秒平均可以接受 2Mb 的数据,也就是二百万左右比特的数据,在这里,小写 b 的意思就是比特了。而通常我们说的下载速度,也就是网速,是每秒下载的字节数。比如网速是 5 KB(这网速可是够慢的),意思就是每秒接收的数据是 五千字节。

9. 区块链同步需要多少内存(区块链数据同步)

【区块链】什么是区块链钱包?

提起区块链钱包我们就不得不谈到比特币钱包(Bitcoincore),其他区块链钱包大多都是仿照比特币钱包做的,比特币钱包是我们管理比特币的工具。

比特币钱包里存储着我们的比特币信息,包括比特币地址(类似于你的银行卡账号)、私钥(类似于你的银行卡密码),比特币钱包可以存储多个比特币地址以及每个比特币地址所对应的独立私钥。

比特币钱包的核心功能就是保护你的私钥,如果钱包丢失你将可能永远失去你的比特币。

区块链钱包有很多种形态。

根据用户是否掌握私钥可将钱包分为:链上钱包(onchainwallet)和托管钱包(offchainwallet)。他们之间有如下两点区别:

关于链上钱包(onchainwallet)我们又可根据私钥存储是否联网划分为冷钱包和热钱包;冷钱包和热钱包我们也称之为离线钱包和在线钱包。

通常所说的硬件钱包就属于冷钱包(一般准备长期持有的大额数字货币建议使用冷钱包存放),除了这种专业的设备我们还可以使用离线的电脑、手机、纸钱包、脑钱包等作为冷钱包存储我们的数字资产。

冷钱包最大优点就是安全,因为它不触网的属性可以大大降低黑客攻击的可能性;唯一需要担心就是不要把自己的冷钱包弄丢即可。

与冷钱包相对应的就是热钱包,热钱包是需要联网的;热钱包又可分为桌面钱包、手机钱包和网页钱包。

热钱包往往是在线钱包的形式,因此在使用热钱包时最好在不同平台设置不同密码,且开启二次认证确保自己的资产安全。

根据区块链数据的维护方式和钱包的去中心化程度又可将钱包分为全节点钱包、轻节点钱包、中心化钱包。

全节点钱包大部分都属于桌面钱包,其中的代表有Bitcoin-Core核心钱包、Geth、Parity等等,此类钱包需要同步所有区块链数据,占用很大的内存,但可以实现完全去中心化。

而手机钱包和网页钱包大部分属于轻节点钱包,轻钱包依赖区块链网络中的其他全节点,仅同步与自己相关的交易数据,基本可以实现去中心化。

中心化钱包不依赖区块链网络,所有的数据均从自己的中心化服务器中获取;但是交易效率很高,可以实时到账,你在交易平台中注册的账号就是中心化钱包。

记住在区块链的世界里谁掌握私钥谁才是数字资产真正的主人。

全局节点什么意思

全节点是是拥有完整区块链账本的节点,全节点需要占用内存同步所有的区块链数据,能够独立校验区块链上的所有交易并实时更新数据,主要负责区块链的交易的广播和验证。

请问,大学生区块链本科专业,电脑需要什么样的配置够用?

学生的电脑普通电脑配置就够用了,三四千块钱的台式机用起来就不错

什么是区块链扩容?

普通用户能够运行节点对于区块链的去中心化至关重要

想象一下凌晨两点多,你接到了一个紧急呼叫,来自世界另一端帮你运行矿池(质押池)的人。从大约14分钟前开始,你的池子和其他几个人从链中分离了出来,而网络仍然维持着79%的算力。根据你的节点,多数链的区块是无效的。这时出现了余额错误:区块似乎错误地将450万枚额外代币分配给了一个未知地址。

一小时后,你和其他两个同样遭遇意外的小矿池参与者、一些区块浏览器和交易所方在一个聊天室中,看见有人贴出了一条推特的链接,开头写着“宣布新的链上可持续协议开发基金”。

到了早上,相关讨论广泛散布在推特以及一个不审查内容的社区论坛上。但那时450万枚代币中的很大一部分已经在链上转换为其他资产,并且进行了数十亿美元的defi交易。79%的共识节点,以及所有主要的区块链浏览器和轻钱包的端点都遵循了这条新链。也许新的开发者基金将为某些开发提供资金,或者也许所有这些都被领先的矿池、交易所及其裙带所吞并。但是无论结果如何,该基金实际上都成为了既成事实,普通用户无法反抗。

或许还有这么一部主题电影。或许会由MolochDAO或其他组织进行资助。

这种情形会发生在你的区块链中吗?你所在区块链社区的精英,包括矿池、区块浏览器和托管节点,可能协调得很好,他们很可能都在同一个telegram频道和微信群中。如果他们真的想出于利益突然对协议规则进行修改,那么他们可能具备这种能力。以太坊区块链在十小时内完全解决了共识失败,如果是只有一个客户端实现的区块链,并且只需要将代码更改部署到几十个节点,那么可以更快地协调客户端代码的更改。能够抵御这种社会性协作攻击的唯一可靠方式是“被动防御”,而这种力量来自去一个中心化的群体:用户。

想象一下,如果用户运行区块链的验证节点(无论是直接验证还是其他间接技术),并自动拒绝违反协议规则的区块,即使超过90%的矿工或质押者支持这些区块,故事会如何发展。

如果每个用户都运行一个验证节点,那么攻击很快就会失败:有些矿池和交易所会进行分叉,并且在整个过程中看起来很愚蠢。但是即使只有一些用户运行验证节点,攻击者也无法大获全胜。相反,攻击会导致混乱,不同用户会看到不同的区块链版本。最坏情况下,随之而来的市场恐慌和可能持续的链分叉将大幅减少攻击者的利润。对如此旷日持久的冲突进行应对的想法本身就可以阻止大多数攻击。

Hasu关于这一点的看法:

“我们要明确一件事,我们之所以能够抵御恶意的协议更改,是因为拥有用户验证区块链的文化,而不是因为PoW或PoS。”

假设你的社区有37个节点运行者,以及80000名被动监听者,对签名和区块头进行检查,那么攻击者就获胜了。如果每个人都运行节点的话,攻击者就会失败。我们不清楚针对协同攻击的启动群体免疫的确切阈值是多少,但有一点是绝对清楚的:好的节点越多,恶意的节点就越少,而且我们所需的数量肯定不止于几百几千个。

那么全节点工作的上限是什么?

为了使得有尽可能多的用户能够运行全节点,我们会将注意力集中在普通消费级硬件上。即使能够轻松购买到专用硬件,这能够降低一些全节点的门槛,但事实上对可扩展性的提升并不如我们想象的那般。

全节点处理大量交易的能力主要受限于三个方面:

算力:在保证安全的前提下,我们能划分多少CPU来运行节点?

带宽:基于当前的网络连接,一个区块能包含多少字节?

存储:我们能要求用户使用多大的空间来进行存储?此外,其读取速度应该达到多少?(即,HDD足够吗?还是说我们需要SSD?)

许多使用“简单”技术对区块链进行大幅扩容的错误看法都源自于对这些数字过于乐观的估计。我们可以依次来讨论这三个因素:

算力

错误答案:100%的CPU应该用于区块验证

正确答案:约5-10%的CPU可以用于区块验证

限制之所以这么低的四个主要原因如下:

我们需要一个安全边界来覆盖DoS攻击的可能性(攻击者利用代码弱点制造的交易需要比常规交易更长的处理时间)

节点需要在离线之后能够与区块链同步。如果我掉线一分钟,那我应该要能够在几秒钟之内完成同步

运行节点不应该很快地耗尽电池,也不应该拖慢其他应用的运行速度

节点也有其他非区块生产的工作要进行,大多数是验证以及对p2p网络中输入的交易和请求做出响应

请注意,直到最近大多数针对“为什么只需要5-10%?”这一点的解释都侧重于另一个不同的问题:因为PoW出块时间不定,验证区块需要很长时间,会增加同时创建多个区块的风险。这个问题有很多修复方法,例如BitcoinNG,或使用PoS权益证明。但这些并没有解决其他四个问题,因此它们并没有如许多人所料在可扩展性方面获得巨大进展。

并行性也不是灵丹妙药。通常,即使是看似单线程区块链的客户端也已经并行化了:签名可以由一个线程验证,而执行由其他线程完成,并且有一个单独的线程在后台处理交易池逻辑。而且所有线程的使用率越接近100%,运行节点的能源消耗就越多,针对DoS的安全系数就越低。

带宽

错误答案:如果没2-3秒都产生10MB的区块,那么大多数用户的网络都大于10MB/秒,他们当然都能处理这些区块

正确答案:或许我们能在每12秒处理1-5MB的区块,但这依然很难

如今,我们经常听到关于互联网连接可以提供多少带宽的广为传播的统计数据:100Mbps甚至1Gbps的数字很常见。但是由于以下几个原因,宣称的带宽与预期实际带宽之间存在很大差异:

“Mbps”是指“每秒数百万bits”;一个bit是一个字节的1/8,因此我们需要将宣称的bit数除以8以获得字节数。

网络运营商,就像其他公司一样,经常编造谎言。

总是有多个应用使用同一个网络连接,所以节点无法独占整个带宽。

P2P网络不可避免地会引入开销:节点通常最终会多次下载和重新上传同一个块(更不用说交易在被打包进区块之前还要通过mempool进行广播)。

当Starkware在2019年进行一项实验时,他们在交易数据gas成本降低后首次发布了500kB的区块,一些节点实际上无法处理这种大小的区块。处理大区块的能力已经并将持续得到改善。但是无论我们做什么,我们仍然无法获取以MB/秒为单位的平均带宽,说服自己我们可以接受1秒的延迟,并且有能力处理那种大小的区块。

存储

错误答案:10TB

正确答案:512GB

正如大家可能猜到的,这里的主要论点与其他地方相同:理论与实践之间的差异。理论上,我们可以在亚马逊上购买8TB固态驱动(确实需要SSD或NVME;HDD对于区块链状态存储来说太慢了)。实际上,我用来写这篇博文的笔记本电脑有512GB,如果你让人们去购买硬件,许多人就会变得懒惰(或者他们无法负担800美元的8TBSSD)并使用中心化服务。即使可以将区块链装到某个存储设备上,大量活动也可以快速地耗尽磁盘并迫使你购入新磁盘。

一群区块链协议研究员对每个人的磁盘空间进行了调查。我知道样本量很小,但仍然...

请点击输入图片描述

此外,存储大小决定了新节点能够上线并开始参与网络所需的时间。现有节点必须存储的任何数据都是新节点必须下载的数据。这个初始同步时间(和带宽)也是用户能够运行节点的主要障碍。在写这篇博文时,同步一个新的geth节点花了我大约15个小时。如果以太坊的使用量增加10倍,那么同步一个新的geth节点将至少需要一周时间,而且更有可能导致节点的互联网连接受到限制。这在攻击期间更为重要,当用户之前未运行节点时对攻击做出成功响应需要用户启用新节点。

交互效应

此外,这三类成本之间存在交互效应。由于数据库在内部使用树结构来存储和检索数据,因此从数据库中获取数据的成本随着数据库大小的对数而增加。事实上,因为顶级(或前几级)可以缓存在RAM中,所以磁盘访问成本与数据库大小成正比,是RAM中缓存数据大小的倍数。

不要从字面上理解这个图,不同的数据库以不同的方式工作,通常内存中的部分只是一个单独(但很大)的层(参见leveldb中使用的LSM树)。但基本原理是一样的。

例如,如果缓存为4GB,并且我们假设数据库的每一层比上一层大4倍,那么以太坊当前的~64GB状态将需要~2次访问。但是如果状态大小增加4倍到~256GB,那么这将增加到~3次访问。因此,gas上限增加4倍实际上可以转化为区块验证时间增加约6倍。这种影响可能会更大:硬盘在已满状态下比空闲时需要花更长时间来读写。

这对以太坊来说意味着什么?

现在在以太坊区块链中,运行一个节点对许多用户来说已经是一项挑战,尽管至少使用常规硬件仍然是可能的(我写这篇文章时刚刚在我的笔记本电脑上同步了一个节点!)。因此,我们即将遭遇瓶颈。核心开发者最关心的问题是存储大小。因此,目前在解决计算和数据瓶颈方面的巨大努力,甚至对共识算法的改变,都不太可能带来gaslimit的大幅提升。即使解决了以太坊最大的DoS弱点,也只能将gaslimit提高20%。

对于存储大小的问题,唯一解决方案是无状态和状态逾期。无状态使得节点群能够在不维护永久存储的情况下进行验证。状态逾期会使最近未访问过的状态失活,用户需要手动提供证明来更新。这两条路径已经研究了很长时间,并且已经开始了关于无状态的概念验证实现。这两项改进相结合可以大大缓解这些担忧,并为显著提升gaslimit开辟空间。但即使在实施无状态和状态逾期之后,gaslimit也可能只会安全地提升约3倍,直到其他限制开始发挥作用。

另一个可能的中期解决方案使使用ZK-SNARKs来验证交易。ZK-SNARKs能够保证普通用户无需个人存储状态或是验证区块,即使他们仍然需要下载区块中的所有数据来抵御数据不可用攻击。另外,即使攻击者不能强行提交无效区块,但是如果运行一个共识节点的难度过高,依然会有协调审查攻击的风险。因此,ZK-SNARKs不能无限地提升节点能力,但是仍然能够对其进行大幅提升(或许是1-2个数量级)。一些区块链在layer1上探索该形式,以太坊则通过layer2协议(也叫ZKrollups)来获益,例如zksync,Loopring和Starknet。

分片之后又会如何?

分片从根本上解决了上述限制,因为它将区块链上包含的数据与单个节点需要处理和存储的数据解耦了。节点验证区块不是通过亲自下载和执行,而是使用先进的数学和密码学技术来间接验证区块。

因此,分片区块链可以安全地拥有非分片区块链无法实现的非常高水平的吞吐量。这确实需要大量的密码学技术来有效替代朴素完整验证,以拒绝无效区块,但这是可以做到的:该理论已经具备了基础,并且基于草案规范的概念验证已经在进行中。

以太坊计划采用二次方分片(quadraticsharding),其中总可扩展性受到以下事实的限制:节点必须能够同时处理单个分片和信标链,而信标链必须为每个分片执行一些固定的管理工作。如果分片太大,节点就不能再处理单个分片,如果分片太多,节点就不能再处理信标链。这两个约束的乘积构成了上限。

可以想象,通过三次方分片甚至指数分片,我们可以走得更远。在这样的设计中,数据可用性采样肯定会变得更加复杂,但这是可以实现的。但以太坊并没有超越二次方,原因在于,从交易分片到交易分片的分片所获得的额外可扩展性收益实际上无法在其他风险程度可接受的前提下实现。

那么这些风险是什么呢?

最低用户数量

可以想象,只要有一个用户愿意参与,非分片区块链就可以运行。但分片区块链并非如此:单个节点无法处理整条链,因此需要足够的节点以共同处理区块链。如果每个节点可以处理50TPS,而链可以处理10000TPS,那么链至少需要200个节点才能存续。如果链在任何时候都少于200个节点,那可能会出现节点无法再保持同步,或者节点停止检测无效区块,或者还可能会发生许多其他坏事,具体取决于节点软件的设置。

在实践中,由于需要冗余(包括数据可用性采样),安全的最低数量比简单的“链TPS除以节点TPS”高几倍,对于上面的例子,我们将其设置位1000个节点。

如果分片区块链的容量增加10倍,则最低用户数也增加10倍。现在大家可能会问:为什么我们不从较低的容量开始,当用户很多时再增加,因为这是我们的实际需要,用户数量回落再降低容量?

这里有几个问题:

区块链本身无法可靠地检测到其上有多少唯一用户,因此需要某种治理来检测和设置分片数量。对容量限制的治理很容易成为分裂和冲突的根源。

如果许多用户突然同时意外掉线怎么办?

增加启动分叉所需的最低用户数量,使得防御恶意控制更加艰难。

最低用户数为1,000,这几乎可以说是没问题的。另一方面,最低用户数设为100万,这肯定是不行。即使最低用户数为10,000也可以说开始变得有风险。因此,似乎很难证明超过几百个分片的分片区块链是合理的。

历史可检索性

用户真正珍视的区块链重要属性是永久性。当公司破产或是维护该生态系统不再产生利益时,存储在服务器上的数字资产将在10年内不再存在。而以太坊上的NFT是永久的。

是的,到2372年人们仍能够下载并查阅你的加密猫。

但是一旦区块链的容量过高,存储所有这些数据就会变得更加困难,直到某时出现巨大风险,某些历史数据最终将……没人存储。

要量化这种风险很容易。以区块链的数据容量(MB/sec)为单位,乘以~30得到每年存储的数据量(TB)。当前的分片计划的数据容量约为1.3MB/秒,因此约为40TB/年。如果增加10倍,则为400TB/年。如果我们不仅希望可以访问数据,而且是以一种便捷的方式,我们还需要元数据(例如解压缩汇总交易),因此每年达到4PB,或十年后达到40PB。InternetArchive(互联网档案馆)使用50PB。所以这可以说是分片区块链的安全大小上限。

因此,看起来在这两个维度上,以太坊分片设计实际上已经非常接近合理的最大安全值。常数可以增加一点,但不能增加太多。

结语

尝试扩容区块链的方法有两种:基础的技术改进和简单地提升参数。首先,提升参数听起来很有吸引力:如果您是在餐纸上进行数学运算,这就很容易让自己相信消费级笔记本电脑每秒可以处理数千笔交易,不需要ZK-SNARK、rollups或分片。不幸的是,有很多微妙的理由可以解释为什么这种方法是有根本缺陷的。

运行区块链节点的计算机无法使用100%的CPU来验证区块链;他们需要很大的安全边际来抵抗意外的DoS攻击,他们需要备用容量来执行诸如在内存池中处理交易之类的任务,并且用户不希望在计算机上运行节点的时候无法同时用于任何其他应用。带宽也会受限:10MB/s的连接并不意味着每秒可以处理10MB的区块!也许每12秒才能处理1-5MB的块。存储也是一样,提高运行节点的硬件要求并且限制专门的节点运行者并不是解决方案。对于去中心化的区块链而言,普通用户能够运行节点并形成一种文化,即运行节点是一种普遍行为,这一点至关重要。

区块链的核心技术是什么?

简单来说,区块链是一个提供了拜占庭容错、并保证了最终一致性的分布式数据库;从数据结构上看,它是基于时间序列的链式数据块结构;从节点拓扑上看,它所有的节点互为冗余备份;从操作上看,它提供了基于密码学的公私钥管理体系来管理账户。

或许以上概念过于抽象,我来举个例子,你就好理解了。

你可以想象有100台计算机分布在世界各地,这100台机器之间的网络是广域网,并且,这100台机器的拥有者互相不信任。

那么,我们采用什么样的算法(共识机制)才能够为它提供一个可信任的环境,并且使得:

节点之间的数据交换过程不可篡改,并且已生成的历史记录不可被篡改;

每个节点的数据会同步到最新数据,并且会验证最新数据的有效性;

基于少数服从多数的原则,整体节点维护的数据可以客观反映交换历史。

区块链就是为了解决上述问题而产生的技术方案。

二、区块链的核心技术组成

无论是公链还是联盟链,至少需要四个模块组成:P2P网络协议、分布式一致性算法(共识机制)、加密签名算法、账户与存储模型。

1、P2P网络协议

P2P网络协议是所有区块链的最底层模块,负责交易数据的网络传输和广播、节点发现和维护。

通常我们所用的都是比特币P2P网络协议模块,它遵循一定的交互原则。比如:初次连接到其他节点会被要求按照握手协议来确认状态,在握手之后开始请求Peer节点的地址数据以及区块数据。

这套P2P交互协议也具有自己的指令集合,指令体现在在消息头(MessageHeader)的命令(command)域中,这些命令为上层提供了节点发现、节点获取、区块头获取、区块获取等功能,这些功能都是非常底层、非常基础的功能。如果你想要深入了解,可以参考比特币开发者指南中的PeerDiscovery的章节。

2、分布式一致性算法

在经典分布式计算领域,我们有Raft和Paxos算法家族代表的非拜占庭容错算法,以及具有拜占庭容错特性的PBFT共识算法。

如果从技术演化的角度来看,我们可以得出一个图,其中,区块链技术把原来的分布式算法进行了经济学上的拓展。

在图中我们可以看到,计算机应用在最开始多为单点应用,高可用方便采用的是冷灾备,后来发展到异地多活,这些异地多活可能采用的是负载均衡和路由技术,随着分布式系统技术的发展,我们过渡到了Paxos和Raft为主的分布式系统。

而在区块链领域,多采用PoW工作量证明算法、PoS权益证明算法,以及DPoS代理权益证明算法,以上三种是业界主流的共识算法,这些算法与经典分布式一致性算法不同的是,它们融入了经济学博弈的概念,下面我分别简单介绍这三种共识算法。

PoW:通常是指在给定的约束下,求解一个特定难度的数学问题,谁解的速度快,谁就能获得记账权(出块)权利。这个求解过程往往会转换成计算问题,所以在比拼速度的情况下,也就变成了谁的计算方法更优,以及谁的设备性能更好。

PoS:这是一种股权证明机制,它的基本概念是你产生区块的难度应该与你在网络里所占的股权(所有权占比)成比例,它实现的核心思路是:使用你所锁定代币的币龄(CoinAge)以及一个小的工作量证明,去计算一个目标值,当满足目标值时,你将可能获取记账权。

DPoS:简单来理解就是将PoS共识算法中的记账者转换为指定节点数组成的小圈子,而不是所有人都可以参与记账。这个圈子可能是21个节点,也有可能是101个节点,这一点取决于设计,只有这个圈子中的节点才能获得记账权。这将会极大地提高系统的吞吐量,因为更少的节点也就意味着网络和节点的可控。

3、加密签名算法

在区块链领域,应用得最多的是哈希算法。哈希算法具有抗碰撞性、原像不可逆、难题友好性等特征。

其中,难题友好性正是众多PoW币种赖以存在的基础,在比特币中,SHA256算法被用作工作量证明的计算方法,也就是我们所说的挖矿算法。

而在莱特币身上,我们也会看到Scrypt算法,该算法与SHA256不同的是,需要大内存支持。而在其他一些币种身上,我们也能看到基于SHA3算法的挖矿算法。以太坊使用了Dagger-Hashimoto算法的改良版本,并命名为Ethash,这是一个IO难解性的算法。

当然,除了挖矿算法,我们还会使用到RIPEMD160算法,主要用于生成地址,众多的比特币衍生代码中,绝大部分都采用了比特币的地址设计。

除了地址,我们还会使用到最核心的,也是区块链Token系统的基石:公私钥密码算法。

在比特币大类的代码中,基本上使用的都是ECDSA。ECDSA是ECC与DSA的结合,整个签名过程与DSA类似,所不一样的是签名中采取的算法为ECC(椭圆曲线函数)。

从技术上看,我们先从生成私钥开始,其次从私钥生成公钥,最后从公钥生成地址,以上每一步都是不可逆过程,也就是说无法从地址推导出公钥,从公钥推导到私钥。

4、账户与交易模型

从一开始的定义我们知道,仅从技术角度可以认为区块链是一种分布式数据库,那么,多数区块链到底使用了什么类型的数

热点内容
中国大佬投资区块链 发布:2025-06-30 11:26:56 浏览:495
对比特币发展前景的看法 发布:2025-06-30 10:58:54 浏览:493
btc日k线 发布:2025-06-30 10:46:04 浏览:334
虚拟币以太坊兑换率 发布:2025-06-30 10:37:01 浏览:713
币圈最长熊市多久 发布:2025-06-30 10:20:00 浏览:351
关于币圈的事情 发布:2025-06-30 10:14:08 浏览:470
最具性价比的trx40主板 发布:2025-06-30 10:02:56 浏览:439
根链区块链 发布:2025-06-30 10:02:55 浏览:981
shib有木有投资价值 发布:2025-06-30 09:27:48 浏览:289
区块链概念书籍推荐 发布:2025-06-30 09:27:47 浏览:759