⑴ 比特币如何算出来的
要想了解bitcoin的技术原理,首先需要了解两个重要的密码技术: HASH码:将一个长字符串转换成固定长度的字符串,并且其转换不可逆,即不太可能从HASH码猜出原字符串。bitcoin协议里使用的主要是SHA256。
公钥体系:对应一个公钥和私钥,在应用中自己保留私钥,并公开公钥。当甲向乙传递信息时,可使用甲的私钥加密信息,乙可用甲的公钥进行解密,这样可确保第三方无法冒充甲发送信息;同时,甲向乙传递信息时,用乙的公钥加密后发给乙,乙再用自己的私钥进行解密,这样可确保第三者无法偷听两人之间的通信。最常见的公钥体系为RSA,但bitcoin协议里使用的是lliptic Curve Digital Signature Algorithm。 和现金、银行账户的区别? bitcoin为电子货币,单位为BTC。在这篇文章里也用来指代整个bitcoin系统。 和在银行开立账户一样,bitcoin里的对应概念为地址。每个人都可以有1个或若干个bitcoin地址,该地址用来付账和收钱。每个地址都是一串以1开头的字符串,比如我有两个bitcoin账户,和。一个bitcoin账户由一对公钥和私钥唯一确定,要保存账户,只需要保存好私钥文件即可。 和银行账户不一样的地方在于,银行会保存所有的交易记录和维护各个账户的账面余额,而bitcoin的交易记录则由整个P2P网络通过事先约定的协议共同维护。 我的账户地址里到底有多少钱? 虽然使用bitcoin的软件可以看到当前账户的余额,但和银行不一样,并没有一个地方维护每个地址的账面余额。它只能通过所有历史交易记录去实时推算账户余额。 我如何付账? 当我从地址A向对方的地址B付账时,付账额为e,此时双方将向各个网络节点公告交易信息,告诉地址A向地址B付账,付账额为e。为了防止有第三方伪造该交易信息,该交易信息将使用地址A的私钥进行加密,此时接受到该交易信息的网络节点可以使用地址A的公钥进行验证该交易信息的确由A发出。当然交易软件会帮我们做这些事情,我们只需要在软件中输入相关参数即可。 网络节点后收到交易信息后会做什么? 这个是整个bitcoin系统里最重要的部分,需要详细阐述。为了简单起见,这里只使用目前已经实现的bitcoin协议,在当前版本中,每个网络节点都会通过同步保存所有的交易信息。 历史上发生过的所有交易信息分为两类,一类为"验证过"的交易信息,即已经被验证过的交易信息,它保存在一连串的“blocks”里面。每个"block"的信息为前一个"bock"的ID(每个block的ID为该block的HASH码的HASH码)和新增的交易信息(参见一个实际的block)。另外一类指那些还"未验证"的交易信息,上面刚刚付账的交易信息就属于此类。 当一个网络节点接收到新的未验证的交易信息之后(可能不止一条),由于该节点保存了历史上所有的交易信息,它可以推算中在当时每个地址的账面余额,从而可以推算出该交易信息是否有效,即付款的账户里是否有足够余额。在剔除掉无效的交易信息后,它首先取出最后一个"block"的ID,然后将这些未验证的交易信息和该ID组合在一起,再加上一个验证码,形成一个新的“block”。 上面构建一个新的block需要大量的计算工作,因为它需要计算验证码,使得上面的组合成为一个block,即该block的HASH码的HASH码的前若干位为1。目前需要前13位为1(大致如此,不确定具体方式),此意味着如果通过枚举法生成block的话,平均枚举次数为16^13次。使用CPU资源生成block被称为“挖金矿”,因为生产该block将得到一定的奖励,该奖励信息已经被包含在这个block里面。 当一个网络节点生成一个新的block时,它将广播给其它的网络节点。但这个网络block并不一定会被网络接受,因为有可能有别的网络节点更早生产出了block,只有最早产生的那个block或者后续block最多的那个block有效,其余block不再作为下一个block的初始block。 对方如何确认支付成功? 当该笔支付信息分发到网络节点后,网络节点开始计算该交易是否有效(即账户余额是否足够支付),并试图生成包含该笔交易信息的blocks。当累计有6个blocks(1个直接blocks和5个后续blocks)包含该笔交易信息时,该交易信息被认为“验证过”,从而该交易被正式确认,对方可确认支付成功。 一个可能的问题为,我将地址A里面的余额都支付给地址B,同时又支付给地址C,如果只验证单比交易都是有效的。此时,我的作弊的方式为在真相大白之前产生6个仅包括B的block发给B,以及产生6个仅包含C的block发给C。由于我产生block所需要的CPU时间非常长,与全网络相比,我这样作弊成功的概率微乎其微。 网络节点生产block的动机是什么? 从上面描述可以看出,为了让交易信息有效,需要网络节点生成1个和5个后续block包含该交易信息,并且这样的block生成非常耗费CPU。那怎么样让其它网络节点尽快帮忙生产block呢?答案很简单,协议规定对生产出block的地址奖励BTC,以及交易双方承诺的手续费。目前生产出一个block的奖励为50BTC,未来每隔四年减半,比如2013年到2016年之间奖励为25BTC。 交易是匿名的吗? 是,也不是。所有BITCOIN的交易都是可见的,我们可以查到每个账户的所有交易记录,比如我的。但与银行货币体系不一样的地方在于,每个人的账户本身是匿名的,并且每个人可以开很多个账户。总的说来,所谓的匿名性没有宣称的那么好。 但bitcoin用来做黑市交易的还有一个好处,它无法冻结。即便警方追踪到了某个bitcoin地址,除非根据网络地址追踪到交易所使用的电脑,否则还是毫无办法。 如何保证bitcoin不贬值? 一般来说,在交易活动相当的情况下,货币的价值反比于货币的发行量。不像传统货币市场,央行可以决定货币发行量,bitcoin里没有一个中央的发行机构。只有通过生产block,才能获得一定数量的BTC货币。所以bitcoin货币新增量决定于: 1、生产block的速度:bitcoin的协议里规定了生产block的难度固定在平均2016个每两个星期,大约10分钟生产一个。CPU速度每18个月速度加倍的摩尔定律,并不会加快生产block的速度。 2、生产block的奖励数量:目前每生产一个block奖励50BTC,每四年减半,2013年开始奖励25BTC,2017年开始奖励额为12.5BTC。 综合上面两个因素,bitcoin货币发行速度并不由网络节点中任何单个节点所控制,其协议使得货币的存量是事先已知的,并且最高存量只有2100万BTC
⑵ 比特币是一个一个的吗
不是。比特币大约是百万分之一,也就是说比特币挖出来不是一个,而是有可能是0.00000001个。块链中的所有量在转换为显示之前以satoshi命名。源代码在指定比特币数量时也使用satoshi。例如计算每字节费用或龙头奖励时,为了便于阅读,数量以饱和度显示。
⑶ 姣旂壒甯佹庝箞鏍疯繍绠
姣旂壒甯佹庝箞杩愮畻鐨
姣旂壒甯佹槸涓绉嶅熀浜庡瘑鐮佸﹀師鐞嗙殑鏁板瓧璐у竵锛屽叾杩愮畻涓昏佹秹鍙婂埌鍔犲瘑绠楁硶鍜屽垎甯冨紡璁$畻鐨勬妧鏈銆
姣旂壒甯佺殑杩愮畻杩囩▼涓昏佸寘鎷浠ヤ笅鍑犱釜姝ラわ細
1.鐢熸垚鍏绉侀挜瀵癸細姣旂壒甯佷娇鐢ㄦき鍦嗘洸绾垮姞瀵嗙畻娉(ECDSA)鐢熸垚鍏绉侀挜瀵癸紝鍏朵腑绉侀挜鐢ㄤ簬绛惧悕浜ゆ槗锛屽叕閽ョ敤浜庨獙璇佺惧悕銆
2.鐢熸垚浜ゆ槗淇℃伅锛氫氦鏄撲俊鎭鍖呮嫭鍙戦佽呭湴鍧銆佹帴鏀惰呭湴鍧銆佽浆璐﹂噾棰濈瓑淇℃伅锛岀敤浜庢弿杩版瘮鐗瑰竵鐨勪氦鏄撹繃绋嬨
3.楠岃瘉浜ゆ槗淇℃伅锛氬皢浜ゆ槗淇℃伅鍔犱笂鏃堕棿鎴炽佸彂閫佽呭叕閽ャ佸搱甯岀瓑淇℃伅锛岀粍鎴愪氦鏄撹板綍锛屽苟閫氳繃缃戠粶骞挎挱缁欏叾浠栬妭鐐归獙璇併
4.鎸栫熆璁$畻锛氭瘮鐗瑰竵鐨勬寲鐭挎槸鎸囧皢浜ゆ槗璁板綍鎵撳寘鎴愬尯鍧楀苟娣诲姞鍒板尯鍧楅摼涓鐨勮繃绋嬨傛寲鐭胯繃绋嬮渶瑕佽繘琛屼竴绯诲垪鐨勮$畻锛屽寘鎷鍝堝笇璁$畻銆侀毦搴﹁$畻绛夛紝杩欎簺璁$畻闇瑕侀氳繃鍒嗗竷寮忚$畻鏉ュ畬鎴愩
5.鑾峰緱鍖哄潡濂栧姳锛氬畬鎴愭寲鐭跨殑鑺傜偣鍙浠ヨ幏寰椾竴瀹氱殑姣旂壒甯佸栧姳锛屽悓鏃朵篃鍙浠ヨ幏寰椾氦鏄撴墜缁璐逛綔涓哄栧姳銆
鎬讳箣锛屾瘮鐗瑰竵鐨勮繍绠椾富瑕佹秹鍙婂埌鍔犲瘑绠楁硶銆佸垎甯冨紡璁$畻銆佸搱甯岃$畻绛夋妧鏈锛岄渶瑕侀氳繃澶氫釜鑺傜偣鍗忓悓瀹屾垚锛岀‘淇濅氦鏄撹板綍鐨勫畨鍏ㄥ拰鍙闈犳с
⑷ 比特币多少算力是一个比
比特币150000TH算力是一个比。
比特币大陆专用矿机算力只有100TH,它一天只能挖1/1500个比特币,那么挖一个比需要100÷1/1500=150000TH算力。
算力是比特币网络处理能力的度量单位,也称为哈希率。当网络达到1Th/s的哈希率时,意味着它可以每秒进行1万亿次计算。
⑸ 加密货币的市值怎么算计算公式是什么
加密货币的市值其实跟股票市值差不多,它是一个可以用数学计算得出的指标,一般用来衡量加密货币在市场上的价值。其中,有很多网站都可以追踪加密货币价格,比如 CoinMarketCap,这是对加密货币按市值大小降序排列的。除此之外,加密货币的市值的计算公式主要由加密货币的流通供应量乘以每枚加密货币的价格得出,下列是具体的计算公式:市值=流通供应量 x 加密货币价格,我们现在举个例子,直到2020 年 6 月 15 日 00:00,比特币的流通供应量大概是 1840万左右,单价为64700元左右,所以计算得出比特币的市值大概是11905.94亿人民币。在加密货币市场上,市值的作用十分中哟啊,有可能会比比币价更加重要。加密货币现在还没有得到主流市场的认可,受黑天鹅事件的影响时会产生剧烈的波动,所以对某个具体的币种来说,价格的涨跌在正常不过了。这时候建议你通过查看单个币种的市值来了解其在加密货币世界的位置。
⑹ 比特币交易怎么交易费怎么算
交易手续费怎么算,可参考以下内容。
1、一般一个普通的比特币交易由一个输入和两个输出(交易输出和变更输出)组成,约200字节。如果默认收费是每1000字节0、0001个比特币,那么一个比特币转账的手续费大概是0、001-0、002个比特币。然而,当单个输入不足以支付输出时,就会出现上述多个事务输入构成未用输出的问题,进而其数据量会变大。但是,未使用的事务输出的组成越复杂,需要处理的字节就越多,处理费用就越高。
2、在比特币的基础协议中,没有规定比特币交易手续费的具体金额,但要求在地址中输入的总额不小于总产出,即你钱包中的比特币总额必须大于转账金额和手续费金额之和。这一点很好理解。你只有10块钱,转账10块钱要收1块钱手续费,也就是说你要花11块钱,10-11=-1,所以这笔交易自然不能完成。
3、比特币交易费用由交易数据大小、交易次数等因素决定。比特币遵循UTXO模型,每个交易包含若干个交易输入和交易输出。事实上,每个未使用的事务输出的组成取决于您的事务输入。当您需要将一个比特币转移到另一个地址时,在您的交易输入中可能包含五个0、2比特币或十个0、1比特币。
⑺ 比特币计算
比特币计算需要以下参数:
1、block的版本 version
2、上一个block的hash值: prev_hash
3、需要写入的交易记录的hash树的值: merkle_root
4、更新时间: ntime
5、当前难度: nbits
挖矿的过程就是找到x使得
SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + x )) < TARGET
上式的x的范围是0~2^32, TARGET可以根据当前难度求出的。除了x之外,还可以尝试改动merkle_root和ntime。由于hash的特性,找这样一个x只能暴力搜索。
一旦计算者A找到了x,就可以广播一个新的block,其他客户端会验证计算者A发布的block是否合法。
如果发布的block被接受,由于每个block中的第一笔交易必须是将新产生25个比特币发送到某个地址,当然计算者A会把这个地址设为计算者A所拥有的地址来得到这25个比特币。