学习区块链怎样入门五

针对区块链和虚拟数字货币,安全性主要包括密码学安全性、网络安全性、数据安全性、共识机制安全性、业务安全性和私钥安全性等。

一、密码学安全性

虚拟数字货币的信用来自于密码学安全性。密码学安全性来自于非对称加密(公钥加密)算法。

⽐特币的所有权是通过数字密钥、⽐特币地址和数字签名来确⽴的。数字密钥实际上并不是存储在⽹络中,⽽是由⽤⼾⽣成并存储在⼀个⽂件或简单的数据库中,称为钱包。存储在⽤⼾钱包中的数字密钥完全独⽴于⽐特币协议,可由⽤⼾的钱包软件⽣成并管理,⽽⽆需区块链或⽹络连接。密钥实现了⽐特币的许多有趣特性,包括去中⼼化信任和控制、所有权认证和基于密码学证明的安全模型。

每笔⽐特币交易都需要⼀个有效的签名才会被存储在区块链。只有有效的数字密钥才能产⽣有效的数字签名,因此拥有⽐特币的密钥副本就拥有了该帐⼾的⽐特币控制权。密钥是成对出现的,由⼀个私钥和⼀个公钥所组成。公钥就像银⾏的帐号,⽽私钥就像控制账⼾的PIN码或⽀票的签名。⽐特币的⽤⼾很少会直接看到数字密钥。⼀般情况下,它们被存储在钱包⽂件内,由⽐特币钱包软件进⾏管理。

公钥加密发明于19世纪70年代,是计算机和信息安全的数学基础。⾃从公钥加密被发明之后,⼀些合适的数学函数被提出,譬如:素数幂和椭圆曲线乘法。这些数学函数都是不可逆的,就是说很容易向⼀个⽅向计算,但不可以向相反⽅向倒推,通俗点讲就是根据钥匙(私钥)可以造出锁(公钥),根据锁(公钥)造不出(钥匙)。基于这些数学函数的密码学,使得⽣成数字密钥和不可伪造的数字签名成为可能。⽐特币正是使⽤椭圆曲线乘法作为其公钥加密的基础算法。在⽐特币系统中,我们⽤公钥加密创建⼀个密钥对,⽤于控制⽐特币的获取。密钥对包括⼀个私钥,和由其衍⽣出的唯⼀的公钥。公钥⽤于接收⽐特币,⽽私钥⽤于⽐特币⽀付时的交易签名。公钥和私钥之间的数学关系,使得私钥可⽤于⽣成特定消息的签名。此签名可以在不泄露私钥的同时对公钥进⾏验证。

⽀付⽐特币时,⽐特币的当前所有者需要在交易中提交其公钥和签名(每次交易的签名都不同,但均从同⼀个私钥⽣成)。⽐特币⽹络中的所有⼈都可以通过所提交的公钥和签名进⾏验证,并确认该交易是否有效,即确认⽀付者在该时刻对所交易的⽐特币拥有所有权。

公钥和私钥的关系(《精通比特币》)

⽐特币私钥只是⼀串数字(256个二进制数或64个十六进制数),例如:179e5af5ef66e5da5049cd3de0258c5339a722094e0fdbbbe0e96f148ae80924。

私钥复杂晦涩,容易记录和抄写错误,人们发明了助记词方便抄录和记忆。比如imToken钱包利用12~24个英文单词作为助记词,助记词与私钥通过一本字典(BIP39)映射,如:bleak version runway tell hour unfold donkey defy digital abuse glide please omit much cement sea sweet tenant demise taste emerge inject cause link。

为了方便国人,也可以使用中文助记词,如:菜 刮 童 五 长 辑 每 注 彻 哀 氯 畜 棒 钉 倍 慰 寸 郎 似 烘 救 逃 子 瓦。

注意以上私钥、英文助记词和中文助记词一一对应。

二、网络安全性

网络安全性指的是数据在网络中传输的安全性。当前采用的技术解决方案是采用HTTP+SSL的方式进行处理(当然还有WebSocket和WebSocketS),可以保证数据网络传输过程中的防篡改和加密处理。比特币体系未对数据传输中的安全性做进一步发展,但因为比特币设计的校验体系,信息在比特币网络的节点处很容易校验出是否有被篡改。

三、数据安全性

针对区块链来说,账本数据全部公开或者部分公开,强调的是账本数据多副本存在,不能存在数据丢失的风险,区块链当前采用全分布式存储作为解决方案,网络中有多个全节点,同步所有账本数据,网络中的副本足够多,就可以满足高可用的要求,丢失数据的风险就会低很多。目前全球的比特币全节点数为10029个(Global Bitcoin nodes distribution)。

区块链世界的数据安全性中最让人闻之色变的就是著名的51%攻击,即利用比特币使用算力作为竞争条件的特点,使用算力优势撤销自己已经发生的付款交易。如果有人掌握了50%以上的算力,他能够比其他人更快地找到开采区块需要的那个随机数,因此他实际上拥有了绝对的挖矿权利。

他能够:

修改自己的交易记录,这可以使他进行双重支付;

阻止区块确认部分或者全部交易;

阻止部分或全部矿工开采到任何有效的区块。

但是他无法做到:

修改其他人的交易记录;

阻止交易被发出去(交易会被发出,只是显示0个确认而已);

改变每个区块产生的比特币数量;

凭空产生比特币;

把不属于他的比特币发送给自己或其他人。

例如某A拥有了整个网络51%的算力,可以计算出一个这样的区块链,包含其发送所有的比特币到某A的私人账户上这个交易信息。这个区块链的长度为10,但是某A不向网络广播。同时,某A把所有的比特币在交易市场换成美元并提取出来。这笔交易记录在正常的那个区块链中。当某A的美元提取正在进行中的时候,那个正常的区块链的长度是9,而某A的区块链长度是10。现在某A向网络广播出去,然后观察,网络会确认某A的区块链是正确的。但是美元已经被某A提取了,损失的是交易市场。某A也可以用这种方式拿比特币买任何东西。如果这样的事情发生个几次,对比特币将是致命的,至少会严重的伤害人们对这个系统的信任度。

四、共识机制安全性

针对区块链来说,其共识机制的选择是区块链技术的关键特征,当前的共识机制有全局化的,每个人都可以参与共识,无任何限制(例如比特币区块链网络和以太坊区块链网络);有局部化,只有指定的关键几个节点起决定性作用(例如Ripple区块链网络)。采用不同的共识机制需要考虑整个区块链网络的活性和业务安全性。像比特币、以太坊等区块链网络,更加强调活性,为了增加整个网络的活性,宁可分叉,也要保证整个网络的持续运行。目前出现的BCH、BTG、B2X、BCD、SBTC、BCHC等都是比特币的分叉,著名的BCH就是在区块扩容上社区无法达成共识而自2017年8月1日开始正式与比特币分道扬镳的。

而Ripple、Stellar等区块链网络,更加强调业务安全性,当网络中出现异常事务时,宁可全网停机维护升级,也要进行维护升级。

五、业务安全性

或者语义安全性,或者逻辑安全性,此类安全性最为复杂,也是最为难以防范,比如以太坊的DAO事件(该事件的深度解读请参看:彭博社深度还原:The DAO 大劫案始末),出问题的是在智能合约,而不是底层的区块链网络。越灵活使用的区块链技术,出现问题的概率越大。

六、私钥安全性

因为去中心化,没有一家中心化机构会对你的比特币或以太币账户负责,你是你资产的唯一责任人,而能够代表你对你的资产拥有所有权的唯一证明就是私钥。以下是关于私钥的常识和注意事项:

你的私钥如果丢失,将永远也无法找回的数字资产;

你并不拥有交易所你名下虚拟数字货币资产的私钥,如果你的资产较多,建议可以根据80/20法则将大部分资产提币至你的钱包APP;

钱包APP随机生成的私钥或助记词一定要记录在可靠的纸媒上,美国的Winklevoss兄弟在2013年时买了价值1100万美元的比特币(现在已价值10亿美元),他们把私钥分成了四份打印出来,然后每一份又保存在四个非常安全的保险箱里;

私钥或助记词切莫记在手机或PC端的文件、记事本、截图中,这些文件一旦被他人窃取,你将失去对你资产的掌控;

私钥=助记词,只要保存好其中任何一个,就可以找回你的资产。

总结:本文从密码学安全性、网络安全性、数据安全性、共识机制安全性、业务安全性和私钥安全性等几个方面介绍了区块链和虚拟数字货币的安全问题。

下一篇将针对数字货币的交易所和钱包,继续讲述区块链技术的细节。

欢迎大家关注我的公众号,多多交流!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180603G0ZZIT00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券