其一就是通过Ticket选票机制实现POS共识。比特元通过Ticket实现POS的安全挖矿逻辑。用户使用钱包账户中BTY余额购票(挖矿权,目前3000个BTY对应1票),一票对应一个唯一的TicketID,同时拥有一份挖矿权;一个区块只能由一票挖出,实际的挖矿几率各票均分(如全网有N张票,则一张票挖到矿的几率为1/N)。
Ticket挖矿流程如下所示: 钱包:定期检查账户中的BTY余额来购买票,当满足购票条件后构造一条买票交易发往区块链。 共识:它会一直尝试使用本地持有的票去打包区块,一旦打包成功,是表示对应的Ticket持有人挖矿成功,并获得对应的区块奖励。 智能合约:智能合约会把地址对应的票信息写入到区块链数据库,每一张Ticket都对应有一个唯一的TicketID,也会有一条数据记录在数据库。恶意节点,试图分叉比特元,或者任何系统能检测到的恶意行为,都可能会被惩罚,每次惩罚会损失20%的资产。挖矿必须以比特元基金会发布的标准钱包进行,篡改挖矿行为,如果被系统自动判定为恶意,都会给矿工造成巨大的损失。
比特元POS共识特点: (1)相较于POW、POC等共识机制免去了共识过程中不必要的资源浪费,如存储浪费、算力浪费等。 (2)智能合约执行1/N的选票逻辑确保了出块的公平公正。 (3)惩罚机制的设计,确保矿工正向运作,保证主网运行安全。
其二比特元在区块产生中能够产生公平的随机数,保证链上应用随机数调用的安全,体现Safe。针对游戏等应用场景,在区块链上为了体现公平性,就需要一个不能被预测的随机数,来保证公平公正。
目前的区块链大体有如下实现方案: (1)合约中调用外部中心化的随机数发生器获取随机数; (2)使用区块hash中的某些值原因在于: (1)区块链多节点之间智能合约执行结果是要求强一致的,如果合约从外部读取数据,是很有可能获取到不同结果的(比如网络原因导致有的节点读取正常,有的返回错误)进而导致分叉。 (2)区块的哈希可以被控制,导致随机数被控制。由于一些区块链系统没有提供很好的随机数算法,所以很多DApp开发者会自己封装自认为完美的随机数算法导致随机数被预知。
针对以上两个弊端,比特元实现了在随机数上的优化: 比特元在原来的随机数基础上引入了VRF(Verifiable Random Functions)可验证随机函数逻辑,使得随机性进一步增强, 首先,用户使用钱包账户中的BTY购买票(Ticket),3000BTY对应一票。 钱包同时生成一个randNum,哈希过后再结合钱包挖矿地址的私钥,票对应的index(一次可以买多张票)等元素再做两次哈希,得到一个公开哈希参数(pubHash):pubHash=hash(hash(privateKey:index:hash(randNum))) 然后,新购买的票中包含这个pubHash以及randNum并存入区块链,这张票有12小时的成熟期,过了12小时才可以参与挖矿;接着共识算法从区块链中找到已经成熟的票(Ticket)开始打包。 由于共识打包区块操作只在节点本地执行,所以它可以读取本地存储的私钥,算出一个私密哈希(privHash)并将这个参数放入到挖矿交易中:privHash=hash(privateKey:index:hash(randNum)) 最后,智能合约收到挖矿交易,对比hash(privHash)和pubHash的值,两者一致挖矿交易成功,对应的节点获得挖矿奖励,否则挖矿交易执行失败。
VRF关键术语: SK,PK:VRF中使用的公私钥对,SK为私钥,PK为公钥 M:输入数据 R:VRF哈希输出 P:VRF证明 Prover:证明者,拥有VRF
我们知道,区块链系统本质上是一个所有人共同预定和维护的大系统。那么全世界的人们是如何实现共同记账和维护的呢?这必须依赖于我们今天要提到的共识。机制。共识机制,顾名思义,就是参与整个网络的个体(节点)用来达成共识的机制。截...
从文化或组织的特点出发,人类可以大规模合作,在地球上的许多生物中脱颖而出,达成共识。没有共识,就不可能形成机构合作的力量,其中一些来自国家机器,如货币的使用,这需要国家的信用认可。比特币的诞生给我们带来了网络独立运行的成...
并不是所有区块链都会造成巨大的能源消耗,人们往往认为共识机制是纯粹的资源浪费; 主流的共识机制有Pow和PoS,两者是实现路径完全不同,PoS对比PoW的能源消耗通常能节省...
比特币的共识机制。简易而言,比特币的共识机制是根据算率来任意挑选造成新区域的连接点,根据给与造成新区域的连接点比特币奖赏来搞好人。这全部体系的健硕安全性运作,从悖论视角看来,拥有一套比较复杂的的相互之间发展壮大的管理体系...