目录:
区块链的安全性
区块链项目概念验证
知道钱包地址怎么查询有多少币
区块链的基础技术
gorm框架
自己编写区块链
索尼浏览器
区块链的安全性"/>
区块链的安全性
1、证明者在不泄露任何有效知识的情况下,验证者可以验证某个论断是正确的。图1给出一个有趣的例子,Alice把自己的签名的信封放到一个保险箱中,Bob说他知道这个保险箱的密码,Alice让Bob证明给她看。Bob打开保险箱,把信封拿出来给Alice。Alice验证信封上的签名,确认了Bob确实知道这个密码。这个例子就是Bob没有告诉Alice密码却证明自己知道密码的的过程很好的解释了零知识证明的概念。基于非对称加密和数字签名的证书认证过程,其实也是一个零知识证明的过程,验证者并不需要知晓CA证书,就可以验证对方是由CA签发的下一级证书。零知识证明技术不管应用于金融还是其他领域,都可以对隐私保护,性能提升,或者安全性等场景带来很多帮助。下面,主要从隐私维度来分享华为零知识证明相关技术。
2、目前金融转账交易场景中对于隐私保护已经越来越重视,隐私也成为区块链急需解决的一个重要问题。那基于如下问题, A向B转账10元,需要区块链节点记账,但是不想让区块链节点知道交易金额以及最新余额,也是金融场景中一个非常常见的问题。
3、基于这种场景如何解决区块链技术应用于金融的隐私和可用性?华为目前引入同态加密(解决隐私问题)。同态加密(英語:Homomorphic encryption)是一种加密形式,它允许人们对密文进行特定形式的代数运算得到仍然是加密的结果,将其解密所得到的结果与对明文进行同样的运算结果一样。 换言之,这项技术令人们可以在加密的数据中进行诸如检索、比较等操作,得出正确的结果,而在整个处理过程中无需对数据进行解密。在此基础上创新式提出了
4、基于集成到区块链系统中的同态加密库以及修改同态加密库实现的零知识证明能力实现了隐私转账的能力,一个密文和另一个密文相加或相乘实现转账中的密文交易,零知识证明在整个的计算过程中不暴露任一方的信息证明对方可以完成转账这一流程,在不泄露具体数字的情况下得到数字的范围。从而验证数字所代表交易的有效性。
区块链项目概念验证"/>
区块链项目概念验证
1、许多比特币客户端被设计成运行在空间和功率受限的设备上,如智能电话、平板电脑、嵌入式系统等。对于这样的设备,通过简化的支付验证(SPV)的方式,可以使它们在不必存储完整区块链的情况下进行工作。这种类型的客端被称为轻节点和SPV节点。
2、轻节点指的是:节点本地只保存与其自身相关的交易数据(尤其是可支配交易数据),但并不保存完整区块链信息的技术。SPV的目标是验证某个支付是否真实存在,并得到了多少个确认。
3、轻节点的目标不仅是支付验证,而且是用于管理节点自身的资产收入、支付等信息。比如:小明使用轻节点管理自身在区块链的收入信息、支出信息,在本地只保存与小明自身相关的交易数据,尤其是可支配交易数据。
4、我们现在知道SPV节点是通过区块头进行支付验证的,区块头中一般包括如下信息:前一区块(也称父区块)的哈希值、区块中交易默克尔树的根哈希值、时间戳等,通过区块的哈希值,可以识别出区块链中的对应区块。
知道钱包地址怎么查询有多少币
1、区块链浏览器是浏览区块链信息的主要窗口。每个块中记录的信息可以在区块链浏览器上查阅。因为链条上的所有数据都是可追溯、不可篡改、不可伪造、公开透明的,所以我们可以通过“区块链浏览器”查询到我们想要的所有数据。
2、哈希,一般翻译为“Hash”,或直译为‘hash’,是指通过哈希算法将任意长度的输入转换为固定长度的输出,输出为哈希值。我们可以通过输入块哈希、事务哈希和用户地址进行查询。(搜索block hash和transaction hash,可以查询指定hash中的block和transaction信息。而用户地址指的是我们的钱包地址。在区块链中,每个块的散列是互锁的。只要其中一个区块出现异常,后面的区块都能发现异常,大家为了保证链上的信息是真实的、不可更改的、不可伪造的,都会对这个区块进行审核。
3、每一个事务都有一个事务hash,事务hash也起到了标识的作用,具有和块hash一样的特性。如果此事务中的任何信息发生变化,事务哈希也将发生变化。,大家会审核交易信息,看有没有人在作恶。有时候,市场软件会提醒XXX把10000个BTC地址转到XX交易所。这实际上是程序在监控块数据,本质上与用区块链浏览器手动查询数据是一样的。
4、但对于大多数用户来说,最常见、最有帮助的场景是查询交易状态,比如当前交易是否已经发出,发出的交易是否已经确认。比如你质押了一个比特币作为交换A,但是我们显示没有收到。这时交易所显示比特币提现成功,但是我们的地址没有任何动静。这时,你马上就可以用区块链浏览器了解到这笔交易的真实情况。不管交易是真的发出去了还是根本没发出去,不管是交易所的问题还是网络拥堵,都不用担心自己的货币凭空消失。如上所述,对于普通用户来说,最常见、最有帮助的场景是在区块链浏览器上查询交易状态。下面主要说一下如何检查一个交易的状态。
区块链的基础技术
1、2009年1月3日出现Bitcoin矿工通过创造一个新区块得到的比特币数量大约每四年(或准确说是每210,000个块)减少一半.2140年之后,不会再有新的比特币产生。一个比特币可以拆分到小数点后8位UTXO:Unspent Transaction Outputs 未花费交易输出,它是比特币交易过程中的基本单位。避免双花。transaction-based Ledger。隐私保护性好,需要显式说明币的来源以太坊是account-based LedgerMerkle树:数据结构。 计算机领域,多用来进行完整性验证处理加密算法:ECC(椭圆曲线算法)准匿名(pseudoanonymous)交易机制
2、V0 高级智能合同(可编程社会)智能合约(smart contract)分布式账本技术(Distributed Ledger Technology,简称DLT)在DLT中,实施者对它的实现方式有更大的控制权.区块链:技术和结构分散化,组织和发展也是分散化的。在DLT中,技术是分散的,但它的公司组织可能不是。
3、空块攻击:只出块,不打包交易!或者频繁大量只有1笔新币交易,而没有其它交易的块,其实空块并非绝对空,还是有一笔的。只是说没有打包其它交易。另外个别情况下偶尔一次,也没有问题,但短期内频繁空块就是攻击了,其效果是使交易内存池变大,交易平均确认时间变长。其实已经有很多矿池消灭了空块的,技术上没有难度的。打包空块并不会比打包满块有优势。但是有ASICBoost专利就不同了,空块有利于ASICBoost专利的实施
4、女巫(sybil)攻击:在 P2P 网络中,节点是可以随时加入和退出的。为了维持网络稳定,同一份数据通常需要备份到多个分布式节点上,这就是数据冗余机制。单个恶意节点伪装多重身份,把原来要备份到多个节点上的数据欺骗到了同一个恶意节点,这种攻击数据冗余机制的手段,就叫做女巫攻击。地址占投票多数
gorm框架
1、> printAllBlock ========================================================================================================本块hash 00000008acfb9a8dcf3bb923f4eb6f2ddfc27dcaff861ea6848a9074ca46d85b ——————————交易数据—————————— 本次交易id: 988ecbe7f374855aa94addb873f22960cf43646bdaeb562533f3e683478270db tx_input: 交易id: bb717bd6717c8cae3829875187b97f256859277ad4a52ac57cdbc132895ca154 索引: 0 签名信息: 8c8b0628ceadebbc9e97b490a40a23494d3f8286f1af045f1e1f18d529c49a90afa194799182c264ee15871b5dd35c773e5dd46427fc8e2c268356ce09f6b60b 公钥: 8e0f1fe7d6177f11027818663048392cee8952cefcf1ceeec8edc84e176f46cedd338575f709b412eeab904d7027056354038f8aef7a1940f45264f7116ba793 地址: 12BwtcVWimms9rrKxxoCev68woGyMYS4sk tx_output: 金额: 90 公钥Hash: 0d0a1aeb1baf838828a54ac97b09524f0b0c3210 地址: 12BwtcVWimms9rrKxxoCev68woGyMYS4sk ————— 金额: 10 公钥Hash: 6eb2d1846217aa089dfa26e3147b767e1de0b08d 地址: 1B6KYdABXZDwq8xGTbdDknpHBo11CkihxS 本次交易id: 443b4a4f04204bd8ed2bdfcc096642a27457c27aa47c2ee81486d7440b059521 tx_input: 交易id: 988ecbe7f374855aa94addb873f22960cf43646bdaeb562533f3e683478270db 索引: 0 签名信息: 2a064297227ba07c7ea92eebb1d43f3fe4dfbd6c7e78be8ec2d1d30e20fa51500c8bdb591c11908a877aeef61b4c64f9a851cc44af441cbe6893e1b80e42032c 公钥: 8e0f1fe7d6177f11027818663048392cee8952cefcf1ceeec8edc84e176f46cedd338575f709b412eeab904d7027056354038f8aef7a1940f45264f7116ba793 地址: 12BwtcVWimms9rrKxxoCev68woGyMYS4sk tx_output: 金额: 80 公钥Hash: 0d0a1aeb1baf838828a54ac97b09524f0b0c3210 地址: 12BwtcVWimms9rrKxxoCev68woGyMYS4sk ————— 金额: 10 公钥Hash: 8fa79c32a067830be3b16ade637d370e1d1e6e0d 地址: 1E6aRBxfncAsypUnjGxPJYbR4JQ3gZ6hHD 本次交易id: 2420c67272ab7832d6148a36a6b38166862d12e265f184439e6ab2e606b01245 tx_input: tx_output: 金额: 25 公钥Hash: 6eb2d1846217aa089dfa26e3147b767e1de0b08d 地址: 1B6KYdABXZDwq8xGTbdDknpHBo11CkihxS ——————————————————————–时间戳 2019-11-18 03:23:57 PM区块高度 2随机数 2808567053068705071上一个块hash 0000007d7b7c7b540d9d1b0d1d06b6936e1bc613f6ab7de1ae0275cdaef4e4a4========================================================================================================本块hash 0000007d7b7c7b540d9d1b0d1d06b6936e1bc613f6ab7de1ae0275cdaef4e4a4 ——————————交易数据—————————— 本次交易id: bb717bd6717c8cae3829875187b97f256859277ad4a52ac57cdbc132895ca154 tx_input: 交易id: 索引: -1 签名信息: 公钥: 地址: tx_output: 金额: 100 公钥Hash: 0d0a1aeb1baf838828a54ac97b09524f0b0c3210 地址: 12BwtcVWimms9rrKxxoCev68woGyMYS4sk ——————————————————————–时间戳 2019-11-18 10:43:41 AM区块高度 1随机数 8604076799988393002上一个块hash 0000000000000000000000000000000000000000000000000000000000000000========================================================================================================
自己编写区块链
1、几乎每个人都听说过像比特币和以太币这样的加密货币,但是只有极少数人懂得隐藏在它们背后的技术。在这篇文中,我将会用JavaScript来创建一个简单的区块链来演示它们的内部究竟是如何工作的。我将会称之为SavjeeCoin!
2、区块链是由一个个任何人都可以访问的区块构成的公共数据库。这好像没什么特别的,不过它们有一个有趣的属性:它们是不可变的。一旦一个区块被添加到区块链中,除非让剩余的其余区块失效,否则它是不会再被改变的。
3、const SHA256 = require(“crypto-js/sha256″);class Block { constructor(index, timestamp, data, previousHash = ”) { this.index = index; this.previousHash = previousHash; this.timestamp = timestamp; this.data = data; this.hash = this.calculateHash(); } calculateHash() { return SHA256(this.index + this.previousHash + this.timestamp + JSON.stringify(this.data)).toString(); }}
4、因为JavaScript中并不支持sha256所以我引入了 crypto-js 库。我定义了一个构造函数来初始化我区块的属性。每一个区块上都被赋予了 index 属性来告知我们这个区块在整个链上的位置。我们同时也生成了一个时间戳,以及需要在区块里存储的一些数据。最后是前一个区块的hash。
索尼浏览器
1、Songbird Block浏览器可以视为一种检视分析交易、地址和其他记录于Flare Songbird区块链上的工具。区块链浏览器显示的是即时信息,由于这些信息发送至分布式账簿,这意味着用户可以查看交易状态(例如,它们是否已经被确认或添加至区块),阅读相关信息以及与Songbird区块链上的智能合约交互。
2、Songbird Block浏览器具有多种功能和使用方法,比如查看代币余额(通过地址搜索)、查看不同交易类型和验证、查找当前奖励epoch、当选举权锁定出现时如何验证、如何查看奖励状态、如何申请FTSO奖励、如何提取新铸造NFT通证ID及查看、如何通过Block浏览器委托wNat。
3、3 标题为“Address Details(地址详情)”页面下方会显示您所搜索的地址相关信息。在余额框(Balance)会显示您当前的原生代币余额(FLR/SGB)。
4、标准交易指的是一个钱包与另一个钱包之间进行的任意交易。钱包之间的所有交易会被称作“转账(Transfers)”,可以通过TRX显示(TRX Representation)的蓝色字体来轻松识别。