关于区块链:如何看待张一鸣-8-月-3-日发内部信称-TikTok-在美业务还没有最后解决方案

明天(8月3日)中午, 张一鸣发外部信谈TikTok的停顿和本人的一些想法,信中称:咱们还没有齐全决定最初的解决方案,不会放弃摸索任何可能性。张一鸣还走漏,公司尝试与一家科技公司就单干计划做初步探讨,造成计划以确保TikTok能持续服务美国用户。 TikTok在美业务一波三折,当前情况下,字节跳动的这部分重点业务真的会易主吗?

August 4, 2020 · 1 min · jiezi

关于区块链:牛市刚开启XRP就涨势凶猛针对XRP的投资策略如何稳赚不赔长期盈利

一、对于XRP基本面 大家猜猜2017年牛市XRP涨幅是多少?36000%!是的,360倍!作为排名第三的支流币,没有像比特币,以太坊那样呗公众熟知,但实际上过来的每一轮牛市,每一波上涨行情XRP都没有错过。但大多数都有一个特点,XRP总是在其它币上涨之后再上涨。这次也是一样,二线山寨开始涨,ETH和其它支流币开始涨,BTC开始涨,最初XRP补涨而且幅度还不小。 如果减半后牛市开启,支流币要创历史新高,能有多少倍涨幅呢? 1. BTC历史最高20000美金,目前10900美金,还能涨大概83% 2. ETH历史最高1400美金,目前320,,还能涨大概337% 3. LTC历史最高370美金,目前55美金,还能涨大概573% 4. XRP历史最高3.3美金,目前0.24美金,还能涨大概1275% ...... 尽管这个预计并没有什么事实根据,不同的币种在过来的牛市暴力上涨的起因有些不同,有的是因为资金盘,有的是因为ICO,有的是玩交易即挖矿,还有是炒作本人是中本聪却又拿不出铁证的,各种套路和噱头。历史不会重演,过来玩过的套路再玩第二次是不论用的。然而历史总是惊人的类似,只有有币区块链的价值还在,我的项目方的炒作本事还在,割韭菜的想象力还有,牛市涨幅绝不落后! 但这也是个洗牌很快的圈子,火币网是支流交易所的时候币安还没有诞生;当初排名前20的支流币好多都是3年前都是看不到影子的。这个【要创历史新高,能有多少倍涨幅】的思路,仅供大家参考。 一、剖析指标 1. 斐波那契回测 将本轮上涨的 7月21日15点 最低价作为起始点,7月30日05点 最高价作为高点(北京工夫)做斐波那契回测。0.382分位是0.22977美金,且是7月28日07:00放量上涨的顶点,7月28日07:00-08:00又成为无效的支撑位,是短期回调染指的好机会。 2. 成交量分布图(VP) 调出VPVR指标(固定范畴7月21日 - 当初),这个指标在这里没有显著的信号提醒,筹码最密集的中央在0.207美金那里,目前离得很远。 3. Vagas通道,EMA12牵引 应用Vagas通道,EMA12作为牵引线,目前1h级别仅在7月30日08点和21点有刺破(并未无效跌破)上方通道,没有看见有显著回落迹象。要多关注BTC和ETH的走势,现阶段XRP走出独立行情的概率很小。 4. 1h短期短期上涨趋势线 用1h级别7月22日15点和7月25日08点画了一条短期上涨趋势线,将来的交易如果不晓得止损位设置到哪里的话,能够参考这条趋势线。切换到4h或1d看的话,这条上涨线其实是十分平缓的,长期不可能始终这么飙涨。 二、剖析的周期包含 1. 1h(短线) 1W(长线) 三、论断 1. XRP在每一轮牛市中都有惊人的涨幅,这次减半后的牛市也不会例外。安心持币到牛市顶点,不是投行专家不要频繁炒短线! 2. 短期第一支撑位0.23美金,期待回调买入或当初间接市价购买,安心屯币。 【交易倡议】 心理方面 1. 尽量在心情舒畅,状态好的时候交易,情绪失控时相对不能操盘 2. 长期的盈利是胜多败少的后果,要抵赖和承受失败的交易,切忌自觉扛单 3. 在激烈的砸盘和暴拉过程中不要头脑发热参加交易,火中取栗是无策略无打算的韭菜行为 策略方面 1. XRP适宜现货大周期投资,牛市最热的时候卖,熊市市场低迷的时候买,一年就交易那么几次就够了 2. 盈亏比小的交易,把握不大的轻仓;盈亏比大的交易,很有把握的重仓,看状况用小倍杠杆 3. 每一笔交易都要设置好止盈和止损,即使无奈通过剖析确定,也要凭心理预期设置 投资交换 【集体微信:free_hongkong】请注明“SF”,交换群收费退出 【微信公众号:bbcoins】策略第一工夫公众号公布 【申明】炒币高风险,所有舆论不形成任何投资倡议!

July 30, 2020 · 1 min · jiezi

关于区块链:ETH短期介入的最佳位置在哪里逢低做多继续看涨

一、剖析指标 1. 斐波那契回测 将本轮上涨的 7月21日15点 最低价作为起始点,7月28日06点 最高价作为高点(北京工夫)做斐波那契回测。0.382分位是296.83美金,与7月26日01点大增量上行后的收盘价统一;0.5分位是285.56美金,与7月25日04:00点至23:00的阻力位统一; 2. 成交量分布图(VP) 调出VPVR指标(固定范畴7月21日 - 当初),0.382分位下方的295至296美金也是筹码密集群,有撑持作用; 3. Vagas通道,EMA12牵引 应用Vagas通道,EMA12作为牵引线,目前1h曾经跌破上方通道并逐步远离,本轮上涨始终没有像样的回调,当初是时候了;4h的Vagas通道上方在持续上行,目前价格为294美金左右,过段时间正好能与短期第一支撑位(斐波那契回测的0.382分位)重合,一个完满的买入点! 4. K线状态 切换到4h级别,7月28日04:00收了一根完满的十字星,前面2根上涨阴线,短期的见顶状态值得注意。 二、剖析的周期包含 1. 1h(短期) 4h(短期) 三、论断 1. 将来会回调再上涨,逢低做多为主 2. 短期第一支撑位297美金,不要全副梭哈,分批买入 3. 下方第二强力支撑位285.5美金,仍然逢低做多。这里要留神止损! 【交易倡议】 心理方面 1. 尽量在心情舒畅,状态好的时候交易,情绪失控时相对不能操盘 2. 长期的盈利是胜多败少的后果,要抵赖和承受失败的交易,切忌自觉扛单 3. 在激烈的砸盘和暴拉过程中不要头脑发热参加交易,火中取栗是无策略无打算的韭菜行为 策略方面 1. 盈亏比小的交易,把握不大的轻仓;盈亏比大的交易,很有把握的重仓,看状况用小倍杠杆 2. 每一笔交易都要设置好止盈和止损,即使无奈通过剖析确定,也要凭心理预期设置 投资交换 【集体微信:free_hongkong】请注明“SF”,交换群收费退出 【微信公众号:bbcoins】策略第一工夫公众号公布 【申明】炒币高风险,所有舆论不形成任何投资倡议!

July 30, 2020 · 1 min · jiezi

关于区块链:做多-没有踏空一说耐心等待回调减半后牛市才刚刚开始

一、剖析指标 1. 牛熊趋势线 7月26日的增量上行,一举冲破了2017年12月17日高点与2019年6月26日高点造成的降落趋势线,并胜利站稳持续上行!又冲破了减半前(2020年2月13日的高点)10500美金; 2. 成交量分布图(VP) 调出VPVR指标(可视范畴)不难看出,在7月27日的高点11394.86美金以上,都只有十分稀少的交易筹码(11850美金处有肯定的交易量),大趋势上价格如果向上冲破,将很快创下历史新高; 3. Vagas通道,EMA12牵引 应用Vagas通道,EMA12作为牵引线,目前1h刚刚跌破上方通道,有回调需要;4h的Vagas通道上方在持续上行,目前价格为10150美金左右; 4. 斐波那契回测 将本轮上涨的 7月21日15点 最低价作为起始点,7月28日06点 最高价作为高点(北京工夫)做斐波那契回测。0.5分位是10294.14美金,联合交易的筹码密集区,短期回调的支撑位在10350美金。 二、剖析的周期包含 1. 1h(短期) 4h(短期) 2. 1D(中期) 3. 1W(长期) 三、论断 1. 将来会回调再上涨,逢低做多为主 2. 短期宽幅震荡范畴是10350至11850,越低越买 【交易倡议】 心理方面 1. 尽量在心情舒畅,状态好的时候交易,情绪失控时相对不能操盘 2. 长期的盈利是胜多败少的后果,要抵赖和承受失败的交易,切忌自觉扛单 3. 在激烈的砸盘和暴拉过程中不要头脑发热参加交易,火中取栗是无策略无打算的韭菜行为 策略方面 1. 盈亏比小的交易,把握不大的轻仓;盈亏比大的交易,很有把握的重仓,看状况用小倍杠杆 2. 每一笔交易都要设置好止盈和止损,即使无奈通过剖析确定,也要凭心理预期设置 投资交换 【集体微信:free_hongkong】请注明“SF”,交换群收费退出 【微信公众号:bbcoins】策略第一工夫公众号公布 【申明】炒币高风险,所有舆论不形成任何投资倡议!

July 30, 2020 · 1 min · jiezi

关于区块链:百度区块链所遇到的问题及处理汇总

前言这篇文章说下应用百度链可能遇到的问题及解决办法 创世节点账户余额最大值cat data/config/xuper.json 我轻易写了一个值 239位 而后查问下余额能够查到 所以就认为没有最大值吧 设置为多少就是多少喽 若要晓得准确的 须要看下源码 转账金额大小有限度吗./xchain-cli transfer --to XC1111111111111111@xuper --amount 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 有点震惊呐 这么大都能够转账 哈哈 这个账户我也没有创立 我间接往里面转账 也是能够的? 在转账的时候同时创立好了这个账户,但不是合约账户哦 一般账户和合约账户能够是同一个账户名称 咱们再来测试下哈 1、先给一个不存在的账户转账 此时会创立这个一般账户 2、在创立一个同名的合约账户 印证了上述的猜想 调用合约 保留K-V Key和Value长度有限度吗我测试的时候是用的36288长的字符串 是能够的 如果是 36288*2 长度 java代码曾经不反对了 超过了java 字符串常量的长度 这里科普下java的基本知识 `a、字符串变量: String外部是以char数组的模式存储,数组的长度是int类型,那么String容许的最大长度就是Integer.MAX_VALUE = 2^zhi31 - 1 = 2147483647。又因为java中的字符是以16位存储的,因而大略须要4GB的内存能力存储最大长度的字符串。 b、字符串常量: 如“abc”、”1234”之类写在代码中的字符串str,那么容许的最大长度取决于字符串在常量池中的存储大小,也就是字符串在class格式文件中的存储格局: CONSTANT_Utf8_info { u1 tag; u2 length; u1 bytes[length]; } u2是无符号的16位整数,因而实践上容许的string str的最大长度是2^16-1=65535。然而理论测试表明,容许的最大长度仅为65534,超过就编译谬误。` ...

July 30, 2020 · 2 min · jiezi

关于区块链:Kademlia协议

简介现在很多P2P网络的实现都采纳DHT的形式实现查找,其中Kademlia(简称Kad)算法因为其简略性、灵活性、安全性成为支流的实现形式。上面咱们就来详细分析这个利用于比特币和以太坊P2P网络中的Kad算法。 Kademlia 协定(以下简称 Kad)是美国纽约大学的 P. Maymounkov 和 D. Mazieres 在2002年公布的一项钻研后果 Kademlia: A peerto-peer information system based on the XOR metric。 简略的说,Kad 是一种分布式哈希表(DHT)技术,不过和其余 DHT 实现技术比拟,如 Chord、CAN、Pastry 等,Kad 通过独特的以异或算法(XOR)为间隔度量根底,建设了一种全新的 DHT 拓扑构造,相比于其余算法,大大提高了路由查问速度。 在2005年5月驰名的 BiTtorrent 在 4.1.0 版实现基于 Kademlia 协定的 DHT 技术后,很快国内的 BitComet 和 BitSpirit 也实现了和 BitTorrent 兼容的 DHT 技术,实现 trackerless下载方式。 另外,emule 中也很早就实现了基于 Kademlia 相似的技术(BT 中叫 DHT,emule 中也叫 Kad,留神和本文简称的 Kad 区别),和 BT 软件应用的 Kad 技术的区别在于 key、value 和 node ID 的计算方法不同。 ...

July 29, 2020 · 3 min · jiezi

关于区块链:Kademlia协议

简介现在很多P2P网络的实现都采纳DHT的形式实现查找,其中Kademlia(简称Kad)算法因为其简略性、灵活性、安全性成为支流的实现形式。上面咱们就来详细分析这个利用于比特币和以太坊P2P网络中的Kad算法。 Kademlia 协定(以下简称 Kad)是美国纽约大学的 P. Maymounkov 和 D. Mazieres 在2002年公布的一项钻研后果 Kademlia: A peerto-peer information system based on the XOR metric。 简略的说,Kad 是一种分布式哈希表(DHT)技术,不过和其余 DHT 实现技术比拟,如 Chord、CAN、Pastry 等,Kad 通过独特的以异或算法(XOR)为间隔度量根底,建设了一种全新的 DHT 拓扑构造,相比于其余算法,大大提高了路由查问速度。 在2005年5月驰名的 BiTtorrent 在 4.1.0 版实现基于 Kademlia 协定的 DHT 技术后,很快国内的 BitComet 和 BitSpirit 也实现了和 BitTorrent 兼容的 DHT 技术,实现 trackerless下载方式。 另外,emule 中也很早就实现了基于 Kademlia 相似的技术(BT 中叫 DHT,emule 中也叫 Kad,留神和本文简称的 Kad 区别),和 BT 软件应用的 Kad 技术的区别在于 key、value 和 node ID 的计算方法不同。 ...

July 29, 2020 · 3 min · jiezi

关于区块链:P2P技术是什么

1、P2P的定义P2P是peer-to-peer的简称,又称为点对点技术,是没有核心服务器、依附用户群节点进行信息替换的对等式网络。区别于传统的C/S地方服务器构造,P2P网络中每一个用户节点即是客户端又是服务端,能同时作为服务器给其余节点提供服务。 无核心服务器的对等式网络,如下图: 有核心服务器的地方网络系统,如下图: 目前包含比特币、以太坊等在内的去中心化的区块链平台,其底层网络都是采纳的P2P技术实现,每个节点都是对等的。 2、P2P的特点在传统的C/S模式网络系统中,客户端之间的交互须要依赖中心化的服务器进行。当网络规模变得宏大时,这些核心服务器的累赘就会越来越重,很容易成为网络瓶颈。而且一旦服务器解体,就会造成整个网络瘫痪(单点故障的危险)。而P2P网络因为没有核心服务器,不存在单点性能上的瓶颈,每个节点在充当客户端的同时,也能够作为服务端给其余相邻节点提供服务,极大地提高了资源的利用率。总结来说,P2P网络的特点如下:(1)可扩展性。在P2P网络中,用户能够随时退出、来到网络。而且随着用户节点的退出,零碎整体的服务能力也在相应的进步。例如p2p下载中,退出的用户越多,则P2P网络中提供的资源就越多,下载速度就越来越快。 (2)健壮性。因为P2P不存在中心化服务器,天生就具备耐攻打和高容错的特点。即便网络中某个节点被攻打或下线,也不影响整个零碎的失常运行。因为P2P网络中每个节点都能够充当服务端的角色。 (3)高性价比。采纳P2P构造的网络,能够无效地利用互联网中大量扩散的普通用户节点。充分利用这些一般节点中闲散的CPU、带宽、存储资源,从而达到高性能计算和海量存储的目标。例如:迅雷旗下的星域CDN产品,就是充分利用每一个普通用户机器的闲散网络资源,从而提供一个高性价比的服务。相似的还有360共享云、国外的sia网盘等。 (4)隐衷爱护。在P2P网络中,因为信息的传输扩散在各个节点之间,而无需通过核心服务器。这样就缩小用户隐衷信息被窃听和泄露的危险。 (5)负载平衡。因为P2P网络中,资源扩散存储在多个节点上,而每个节点又都能够充当服务器的角色。当某个节点须要获取资源时,只须要向相邻节点发送申请即可,很好地实现了整个网络的负载平衡 3、P2P的次要性能P2P网络的次要性能能够分为如下3种: 数据公布和传输数据存储和检索分布式数据处理(1)数据公布和传输有3中形式,别离是一对一(如即时通讯)、一对多(如群组通信和音讯播送)和多对多(如内容散发利用:BT、PPS等) (2)数据存储和检索分为基于结构化的P2P网络办法和基于非结构化的P2P网络办法。结构化的P2P网络也就是基于分布式哈希表(DHT)的P2P网络,这个也是目前利用最宽泛的,它的网络拓扑构造是确定的。而非结构化的P2P网络的资源存储通常与网络拓扑构造无关,例如Gnutella。 (3)目前,大多数分布式数据处理技术采纳的是master/slave的架构。而基于P2P网络,也可能进行分布式的数据处理。 4、P2P的倒退历史P2P技术的倒退能够分为如下三个阶段: 第一阶段:集中式对等网络这种网络采纳的是中心化的拓扑构造,因为文件的索引信息都是存储在地方服务器上,每个子节点都须要连贯地方服务器才能够找到资源。它最大的长处是保护简略、索引速度快。然而因为整个网络重大依赖于地方服务器,容易造成性能瓶颈和单点故障的问题。典型代表是:napster 第二阶段:非结构化的分布式网络这种网络采纳Flooding搜索算法,每次搜寻都把要查问的音讯播送给网络上的所有节点。当一个节点要下载某个文件的时候,这个节点会以文件名或者关键字生成一个查问,并把查问发送给所有跟他相连的节点。如果这些节点存在文件,则跟这个节点建设连贯,如果不存在,则持续向相邻的节点转发这个查问,直到找到文件地位,过程如下图所示。 能够发现,当网络规模变大当前,这种搜寻形式会引发”播送风暴”,重大耗费网络带宽和节点的系统资源。尽管防止了集中式对等网络的“单点故障”问题,然而效率却很低下。 典型代表:Gnutella晚期版本。 第三阶段:结构化的分布式网络目前采纳最宽泛的就是结构化的分布式网络,也就是基于DHT(分布式哈希表)的网络。DHT为了达到Napster的效率和正确性,以及Gnutella的分散性,应用了较为结构化的基于键值对的路由办法(如下图所示): 目前实现了DHT协定的有Kademlia和Chord算法,其中Kad算法因为简略易用而被宽泛应用,其中比特币和以太坊网络中的P2P网络采纳的就是Kad算法。 5、P2P的利用(1)文件内容共享和下载利用P2P技术能够使计算机之间不通过服务器间接进行内容共享和数据散发,使得互联网上任意两台机器间共享数据成为可能。例如Napster、Gnutella、eDonkey、eMule、Maze、BT,以及当初PPS、腾讯视频客户端等采纳的P2P流媒体技术,使得播放速度更加晦涩。 (2)计算能力和存储共享基于P2P网络的分布式构造结构出分布式的存储系统实现存储共享,提供高效率、高性价比、负载平衡的文件存取性能,例如国外的Sia、Storj等分布式云存储平台,不依赖第三方的大型集中存储空间,防止了数据泄露、保障了安全性。同时因为任何人的主机都能够提供存储服务,升高了门槛,大幅升高了存储的老本。如下,采纳分布式存储的Storj价格是每个月$0.015而亚马逊提供的AWS价格是$0.023。 同时也能够共享CPU解决能力。例如360的共享云打算和星域CDN等,充分利用每个人机器的闲散计算资源来提供计算服务。 (3)基于P2P的即时通讯例如目前的Skype通话软件就是从连贯建设和数据传输都采纳P2P实现,保障了良好的通话质量。 (4)基于P2P形式的协同解决与服务共享平台常见的协同解决有视频会议、共享白板、协同合作等,而基于P2P技术的同样也能够实现上述性能,不同的是,这种实现形式不须要核心服务器,参加协同工作的计算机之间能够间接建设点对点的连贯。例如被微软收买的Groove协同软件平台。

July 28, 2020 · 1 min · jiezi

关于区块链:助力区块链普惠大众即日起免费上链百度超级链神秘发布会开启

随着区块链技术赋能越来越多行业,企业上链正在成为一种价值趋势。对企业来说,上链目标次要是降本增效。这要求区块链技术更加简略快捷、低成本。然而,昂扬的建链老本、底层框架保护老本和人员老本经常让中小企业难以承受。 为了解决企业造链难、造链贵等痛点,百度超级链团队基于自主研发的底层技术开发了超级链凋谢网络,用户无需建链,间接应用,帮忙用户低成本甚至零老本一键上链。 超级链凋谢网络采纳按需按量计费,反对用户依据理论状况灵便抉择,无效管制老本耗费,防止资源节约,实现老本最优化。_以3个节点的需要为例,一个中型的Dapp产品,每天事务执行量10000次,应用凋谢网络部署利用一年大略费用为7000元,如果是购买BaaS服务,至多须要5万元。 多重优惠,收费上链 千万资源补贴放送中,名额有限! 新用户无门槛神券,抢完为止 老用户感恩回馈,充多少、送多少!

July 24, 2020 · 1 min · jiezi

关于区块链:助力区块链普惠大众即日起免费上链百度超级链神秘发布会开启

随着区块链技术赋能越来越多行业,企业上链正在成为一种价值趋势。对企业来说,上链目标次要是降本增效。这要求区块链技术更加简略快捷、低成本。然而,昂扬的建链老本、底层框架保护老本和人员老本经常让中小企业难以承受。 为了解决企业造链难、造链贵等痛点,百度超级链团队基于自主研发的底层技术开发了超级链凋谢网络,用户无需建链,间接应用,帮忙用户低成本甚至零老本一键上链。 超级链凋谢网络采纳按需按量计费,反对用户依据理论状况灵便抉择,无效管制老本耗费,防止资源节约,实现老本最优化。_以3个节点的需要为例,一个中型的Dapp产品,每天事务执行量10000次,应用凋谢网络部署利用一年大略费用为7000元,如果是购买BaaS服务,至多须要5万元。 多重优惠,收费上链 千万资源补贴放送中,名额有限! 新用户无门槛神券,抢完为止 老用户感恩回馈,充多少、送多少!

July 24, 2020 · 1 min · jiezi

关于区块链:一键快速上链还有千万资源补贴-百度超级链神秘发布会开启

区块链势头日渐迅猛,国家及各部委出台相干政策20余项,超过30个省市地区公布区块链政策领导文件,以北京为例,半年多工夫,全市区块链政务畛域已落地140个具体场景利用。 开发者和中小企业甚至其余一般从业者也将眼光投放到区块链新赛道。对于他们来说,区块链研发和运维要求较高的技术门槛和资源投入,工程周期长、难度大。那么,有没有“傻瓜式”的区块链技术,无需建链,间接应用? 当然有!百度超级链凋谢网络基于百度自主研发的开源技术搭建而成。超级链研发团队提前将“房子”搭建好,用户依照本人志愿装潢即可“入住”,无需经验打地基、砌墙搭屋式繁琐又耗时的建链过程,就能够部署运行利用。对零研发根底的用户来说,建链不再是区块链“入场“的拦路虎,区块链也不仅仅是技术极客的主场。

July 23, 2020 · 1 min · jiezi

关于区块链:百度超级链作为专班核心成员-参与北京市政务区块链顶层设计

为放慢推动区块链技术和产业翻新倒退,北京市政务服务管理局、北京市科委、北京市经济和信息化局组织相干单位推动政务服务畛域区块链利用建设,获得阶段性成绩。在此基础上,北京市区块链工作专班专家组编制了《北京市政务服务畛域区块链利用翻新蓝皮书(第一版)》(以下简称“蓝皮书”)于近日正式公布。百度超级链团队负责技术总体组专家及政务服务畛域区块链利用专家,参加北京市区块链顶层设计,编制《北京市政务服务畛域区块链利用翻新蓝皮书》,推动了北京市区块链倒退。 蓝皮书总结了政务服务畛域区块链利用半年工作教训和晋升政务服务成果的阶段性成绩。目前,在政务服务畛域已落地140个具体场景利用,实现“链”享数据减资料、“链”通业务省工夫、“链”上服务促复产,均匀缩小资料40%,不少场景跑动次数从五六次缩小到“最多跑一次”,为兼顾推动疫情防控和经济社会倒退、深入“放管服”改革、优化营商环境作出了踊跃奉献。 传统政务办理中,企业和大众办事时面临环节多、资料多、等待时间长、多部门或多窗口重复跑的问题,影响了办事体验和办事效率;政府部门之间在数据共享和业务协同方面存在数据“不愿交、不敢用”、追溯机制不欠缺、责权利不清晰等问题,无奈全面无效撑持业务,升高了政务服务质量。 在政务畛域,百度超级链助力政府构建“一号申请、一窗受理、一网通办”的政务体系。通过数据协同平台可能在爱护用户隐衷不受侵害、国家机密安全可靠根底上,用跨链计算形式实现协同工作,从本源上突破各委办局之间的数据壁垒和信息孤岛。各委办局不需相互交换具体数据,即可实现政府各职能部门数据协同和各机构信息安全可控的公开通明,晋升办事效率,响应国家“最多跑一次”的政策,为人民大众带来更好的政务服务体验。 目前,百度超级链联结中科大脑承接北京政务服务区块链技术海淀区利用试点。海淀区试点中围绕企业和集体两个服务主体的全生命周期,以区块链等新技术利用为突破点,促成“一网通办”,助力海淀区打造“全笼罩、全流程、全周期、全时段”的全场景式政务服务新生态。立足当下,着眼将来。百度超级链还将继续加码针对区块链技术研发,积极探索和推动区块链和与政务服务的深度交融和改革,踊跃推动区块链和经济社会交融与倒退。将来,百度超级链会在金融、司法、医疗等更多畛域推动区块链遍及,继续摸索更多利用落地场景,促成区块链技术疾速遍及,促成区块链产业翻新倒退。

July 23, 2020 · 1 min · jiezi

关于区块链:随机数奖励会对区块链游戏产生哪些经济价值

重点摘要:游戏中的随机数通常分为两类:输出型和输入型。区块链游戏采纳随机数机制发放经济处分,有后劲推动游戏产业增长至万亿级规模。区块链游戏处分是不可篡改的稀缺性资产,这些资产能够在二级市场上交易,可能将很快实现跨游戏利用。现有的随机数解决方案存在诸多问题,无奈为其发明的价值提供平安保障。Chainlink VRF旨在为区块链游戏生成随机数,用户可独立验证其真实性。背景介绍随机数无处不在,以至于咱们常常会疏忽了它的存在,但实际上随机数是游戏中一个至关重要的元素,它能极大晋升玩家在游戏中的愉悦感和沉迷感。总的来说,随机数能够利用在输出和输入两个维度上,对开发者来说,随机数既能够作为条件束缚玩家行为(输出型随机数),也能够用来操控玩家行为所产生的后果(输入型随机数)。开发者兼理论工作者Jesse Schell示意,将这些不同类型的随机数与结构化的游戏元素有机联合,能够为游戏玩家提供一种“惊喜和愉悦完满交错”的体验,这也是Schell对“游戏愉悦感”的定义。 目前,区块链游戏开发者简直齐全无奈取得随机数。随着区块链游戏产业一直发展壮大,随机数的重要性也将蔓延至游戏体验以外的畛域,因而无奈平安地取得随机数也变成了一个亟待解决的问题。区块链游戏中的随机数将对开发者和游戏玩家产生越来越重要的经济影响,应用随机数能够更好地将游戏工夫和游戏内操作变现。这能够通过一系列办法实现,比方用通证代表游戏物品、发明“元界”(metaverse)扩充这些物品的利用范畴、以及容许玩家验证游戏物品的稀缺性等。 区块链游戏要和传统游戏竞争,开发者就必须采纳公正的随机数生成计划,在智能合约中平安地生成随机数。许多开发者曾尝试在区块链游戏中引入随机元素,但都面临一个窘境,那就是到底抉择中心化的链下随机数生成计划,还是冒着被攻打的危险应用链上随机函数生成随机数?而近期Chainlink针对这一问题公布了可验证随机函数(VRF),并无望成为区块链游戏颠覆翻新的要害一环。 本文将探讨随机数在游戏中的利用模式、游戏随机数和其余玩家操作产生的经济影响、随机数对区块链游戏预期的经济影响力、以及Chainlink VRF与现有随机数计划相比的翻新之处。 游戏中的随机数开发者Raph Koster在2005年出版的《游戏设计高兴之道》(A Theory of Fun for Game Design)一书中将所有无聊游戏的通病总结为“太容易就能通关”。 Koster认为,“愉悦感”是意识法则、解决问题和吸取经验的副产品,这个过程最终目标是为了把握某个信息。孩子在学会谈话前就能学会井字棋游戏,而且还会玩得乐此不疲,因为这个游戏的规定很简略,法则也很好把握。但他们的认知程度一旦倒退到更高阶段,玩一会儿就会感觉无聊了,这是因为这个游戏太容易就能通关了。所以游戏中随机数的一个关键作用是使玩家操作和游戏环境更富裕变动性,让玩家不会太快通关,而且还会向玩家一直提供新的游戏激励。 要实现这一指标,须要两种不同的随机数,即:输出型随机数和输入型随机数。输出型随机数在玩家进行操作前呈现在游戏中,比方给玩家发一副牌;或者玩家进入某一游戏区域时随机生成怪兽;或游戏地图依照游戏进行程序生成环境。以上这些例子中,游戏随机数通过扭转具体的游戏场景为玩家一直设置挑战。玩家无奈循序渐进地进行操作在游戏里迅速通关,而是必须应答游戏中一直变动的场景和挑战,因而游戏工夫变长,而且玩家会产生更大的成就感。 而输入型随机数则是操纵玩家行为产生的后果,或在后果中注入一些“杂音”。这类随机数包含策略游戏中对战获胜率;德州扑克中的翻牌、转牌和河牌圈;以及掷色子决定玩家是否通过技能断定。输入型随机数能够防止游戏呈现齐全随机的后果,玩家不得不学习游戏中各类危险的应答策略,以及在遇到小概率的重大打击时如何恢复元气,因而玩家须要花肯定工夫能力通关。输出型和输入型随机数如何影响游戏场景 上述所有随机数利用场景都已在区块链游戏中实现或正在开发中。然而,有一类输出型随机数对区块链游戏开发者和玩家来说具备特地重要的经济价值,那就是用来确定玩家处分的随机数。这其中包含战利品开箱、物品设计以及游戏成就处分发放。 其余类型的随机数作用都是给玩家设置障碍,缩短游戏工夫,而这类随机数的作用则是给玩家提供处分。“处分型随机数”的独特之处在于游戏处分通常能够在二级市场交易,这在本来的游戏体验上又减少了额定的经济激励。这类随机数将在将来成为区块链游戏经济中不可或缺的元素。 处分型随机数的经济价值游戏调研公司NewZoo公布的一份报告预测2020年游戏产业的价值将达到1600亿美元,到2023年将无望冲破2000亿美元。其中,游戏皮肤、物品包和额定的游戏内容年销售额目前为500亿美元,将近占到整个市场的三分之一。虚构商品交易市场中到底有多少商品来自“战利品箱”(注:随机游戏物品或皮肤)等随机发放的道具,具体数字不得而知,但应该是占到了很大比例。 区块链游戏市场正在一直扩张,其中三个最受欢迎的游戏是CryptoKitties、Gods Unchained和 My Crypto Heroes。这三款游戏在发行的第一年别离取得了700万美元、420万美元和150万美元的支出。其玩家在二级市场上交易游戏物品取得的收益超过2000万美元。CryptoKitties是目前很火的一款NFT珍藏类游戏 区块链内容协会主席Hironao Kunimitsu近期示意他置信区块链游戏市场的规模最终将超过日本GDP(注:目前日本GDP预估是4.7万亿美元)。其中最重要的伎俩是将随机发放的游戏物品用NFT通证示意。咱们之前在《用Chainlink预言机创立非同质化通证的16种形式》一文中曾深入探讨过NFT是区块链上的一种加密平安通证,能够代表独特物品的所有权。 用NFT代表区块链游戏物品最大的价值是所有权能够验证,而且不可篡改。遗留游戏的物品所有权能够撤销,物品的状态和形状能够批改,如果游戏进行经营,物品也可随之被删除。用NFT通证代表游戏物品将解决上文提到的所有问题,NFT能够对物品所有权提供加密平安保障;NFT的元数据无奈被篡改,除非公布非凡许可申明;因为NFT贮存在区块链上,因而NFT游戏物品就算在游戏隐没后也依然存在。 另外,NFT能够跳脱出其原生游戏环境的限度,这也发明出了新的利用场景,咱们称之为“元界”(metaverse)。元界是连贯各个游戏的网络,NFT物品能够在所有不同的“游戏宇宙”中通用。举个例子,空想游戏中的一件防弹背心在科幻游戏里也能够同样用来晋升玩家的防御能力。容许NFT游戏物品跨游戏利用,开发者就能够晋升物品的价值。 最初,NFT还能够加强二级市场的流动性和透明性。Fair Games等公司正在追踪游戏随机生成NFT的频率与物品市场价格之间的关系,并将后果与游戏玩家分享。这样一来,玩家就能够基于NFT战利品的变现能力筛选游戏,并且利用区块链公开通明的特质验证NFT物品的稀缺性。 专家认为用NFT通证代表游戏内的随机处分曾经实现了可观的经济价值,它将极大推动虚构商品的倒退规模。然而,随着虚构商品的价值一直升高,咱们越来越须要有一个安全可靠且可验证的随机数生成计划。 目前随机数生成计划存在的瓶颈如果一个DeFi协定只有一台可轻易被操纵的预言机,将无奈失去用户信赖。同样地,如果游戏无奈对随机数生成提供平安保障,也无奈失去用户信赖。特地是当游戏与事实世界的利益挂钩时(比方用NFT发放随机处分),就更加须要安全可靠且可验证的解决方案,因为这类随机数生成的频率和自身的价值都很高。 如果是中心化的解决方案,随机数很可能会被领有权限的开发者所操纵。他们这么做可能是为了把最有价值的NFT留给本人或其余有特权的人。另外,就算开发团队自身是清白的,随机数生成机制不通明也会招来游戏玩家的猜忌和狐疑。随机性实质上就意味着即便再小概率的事件也可能产生,如果工夫线拉得够长,就难免会产生某一名玩家间断几次背运的状况。因为中心化随机数生成机制无奈做到公开通明,当其余玩家看到某个人间断机次博得了常见或高值的游戏物品,必定会对调配的公平性产生狐疑。 应用区块哈希值的链上解决方案无奈为很高的价值提供平安保障。一旦游戏的价值足够高,就会有人来钻空子谋取私利,这些人能够用区块哈希值这样能够被操控的数据发动攻打向量。咱们在介绍VRF的文章中具体解释过这类攻打: “假如智能合约基于区块在某一高度时哈希值末位的奇偶性做判断。看似概率是50/50,但当初有一名矿工(或一群联结起来的矿工)生产的区块约占总量的1/3,该矿工可能会剔除哈希值末位数为1的中奖区块,损失价值约为2-3个以太币的区块处分。这种状况下,矿工就能将末位数为0的后果的概率从失常的50%晋升至2/3,并导致所有采纳这个模式生成随机数的智能合约损失用户资金。” 之前公布的支流区块链游戏也已经蒙受过同样的攻打,开发团队不得不在NFT价值被浓缩和向攻击者领取赎金之间艰巨抉择。 Chainlink VRF为链上提供可验证的随机数Chainlink VRF的根本工作原理 要为区块链游戏开发出完满的随机数解决方案,就必须解决上述问题,保障公平性并实现链上验证,提供平安保障,避免随机数被操纵或篡改。Chainlink VRF就是兼具这些特质的随机数生成计划,它能在链上生成随机数,并且无奈被任何节点运营商、矿工或用户操纵。Chainlink VRF领有加密证实技术,任何人都能够在链上验证随机数的真实性。 Chainlink VRF的运行分为五步: 用户向智能合约利用发送一个seed智能合约用这个seed向Chainlink VRF提交数据申请Chainlink节点运营商生成随机数并在链上公布随机数生成的加密证实在链上验证返回的随机数基于通过验证的随机数执行智能合约这个基础架构保障智能合约应用的随机数不受任何操纵。另外,随着Chainlink VRF一直迭代倒退,其安全性也会一直晋升。目前,节点运营商能够采纳“扣块攻打”的形式操控随机数生成后果。尽管节点运营商无奈间接篡改随机数,但他们有权力不提交随机数后果。之后咱们能够应用多个预言机,通过门限签名技术提交数据,并履行保证金制度,以此来解决这一问题。这将为Chainlink VRF提供平安保障,以匹配区块链游戏畛域一直增长的价值并满足该畛域对平安的迫切需要。 目前有许多我的项目正在应用Chainlink VRF生成和发放随机处分,其中包含PoolTogether(游戏平台,用Chainlink VRF向用户发放储蓄处分)、Polyient Games(通证平台,用Chainlink VRF实现NFT随机数性能)、FaceGolf(用VRF断定比赛结果和处分)、The Six Dragons(该游戏的武器装备制作性能联合了随机危险/处分机制)、WildCards(基于哈伯格税收模式的NFT慈悲我的项目,用VRF打造新的NFT通证)以及Texel(用VRF断定郁金香藏品的基因属性)。 越来越多的区块链游戏我的项目开始应用Chainlink VRF 随着区块链游戏日趋成熟,平安随机数的经济价值也将随之升高,咱们置信越来越多的团队会意识到他们对Chainlink VRF这类平安随机数生成计划的迫切需要。 总结区块链游戏是最具后劲的区块链利用场景之一,区块链技术可晋升游戏资产的透明性和所有权的可验证性,因而可大幅加强游戏玩家的体验。除此之外,游戏玩家还能更好地变现其游戏工夫和技能,这将从根本上颠覆传统游戏模式。这些翻新目前曾经产生了微小的经济价值,并且将推动整个游戏产业的疾速扩张。 然而,要实现这些巨大的愿景,开发者和玩家须要有安全可靠的基础架构,为游戏产业一直增长的价值提供平安保障。游戏随机数将来将不只是优化游戏体验的工具,还将成为发明和散发价值的的重要渠道。Chainlink VRF是专门为智能合约开发的随机函数,能够满足区块链游戏产业的新兴需要。 如何部署Chainlink VRF如果你是一名智能合约开发者,并心愿部署Chainlink VRF,请查看咱们的开发者文档,并退出咱们在Discord上的技术探讨群。如果你心愿安顿电话会议与咱们具体探讨更多细节,欢送随时分割咱们。 ...

July 23, 2020 · 1 min · jiezi

关于区块链:百度超级链Xuper关于金额相关问题

前言这篇文章咱聊聊百度链手续费问题 对于百度链往期文章汇总在百度超级链Xuper上部署智能合约并实现存证性能 对百度超级链Xuper应用过程中的进一步了解 在Xuper链上部署Java语言智能合约和剖析存证合约的实现逻辑 应用百度链的智能合约来落地公司业务场景 以单节点环境运行以繁多变量的形式来钻研一个不理解的事物 才是正当的形式 不然多种变量杂糅在一起 只会越来越乱了 单节点即单个出块地址,不须要思考多个出块节点轮流出块的状况 环境筹备`cd pn1 rm -rf data/blockchain/xuper/ ` 批改节点配置 `./xchain-cli createChain nohup ./xchain --vm ixvm & ` 确认下几个初始金额 节点地址 dpzuVdosQrF2kmzumhVeFQZa1aYcdgFpN初始金额 100000000000000000000每出一个块处分 1000000金额精度是8 即总金额为 1000000000000 个proposer_num为1示意一个出块节点period为3000示意每三秒出一次块alternate_interval为3000 示意出块节点切换耗时3秒 因为以后就一个节点 所以不须要切换term_interval为6000 示意节点1最初一个出块完结开始到节点2第一个节点开始之间距离6秒 即 节点切换工夫3秒+3秒出一个块 一共6秒 因为就一个节点所以这个工夫也不须要block_num为20 示意一个节点出20个块 再轮到另外一个节点出20个块vote_unit_price示意每头一次票 所代表的权重即代表多少token值查看节点账户地址`cat data/keys/address dpzuVdosQrF2kmzumhVeFQZa1aYcdgFpN ` 查看以后区块高度的脚本`#!/bin/bash for((i=1;i<=1;i++)); do         echo -n "node$i:";         ./xchain-cli status -H 127.0.0.1:3710$i | grep trunkHeight; done echo -n '节点账户金额:' ./xchain-cli account  balance dpzuVdosQrF2kmzumhVeFQZa1aYcdgFpN ` 查看初始地址金额`./xchain-cli account  balance dpzuVdosQrF2kmzumhVeFQZa1aYcdgFpN ` 后果和冀望统一 3秒出一个块 出了256个块 100000000000000000000+256*1000000=100000000000256000000 创立一个合约账户(默认由节点账户创立)`./xchain-cli account new --account 1111111111111111 --fee 1000 ` 手续费1000 咱们来看下这个手续费跑哪里去了 起源账户 dpzuVdosQrF2kmzumhVeFQZa1aYcdgFpN 金额是 1000000 这个金额大家可能会有疑难 总金额不是 > 100000000000256000000 这个值吗 ...

July 23, 2020 · 2 min · jiezi

关于区块链:BSN首批官方指定区块链应用出炉FISCO-BCOS社区四个应用入选

历经一个多月的征集,BSN于近日颁布了首批“官网指定区块链利用”名单,其中4个利用基于FISCO BCOS区块链底层研发,笼罩存证、防伪溯源、供应链治理等畛域。 本着“把最合适的区块链利用,展现给最须要的用户”的目标,BSN倒退联盟开发者委员会依据利用准入机制对提交作品进行了审核及综合考量,本次优先选出9种分类的12个区块链利用,作为首批入选BSN的指定利用。 基于FISCO BCOS区块链底层研发的4个利用别离是:链动时代区块链存证服务零碎、农业产业全过程溯源云平台区块链利用、惠运链、伊OS通明建造平台。 链动时代:区块链存证服务零碎链动时代区块链存证服务零碎(以下简称“inBC存证零碎”)基于BSN上的FISCO BCOS联盟链构建。inBC存证零碎帮忙用户基于API接口扩大已有业务零碎,实现电子证据的存证顾全、调用核验。可广泛应用到电子合同、版权保护、证件证书、防伪溯源、公益捐献等场景和畛域。 天演维真:农业产业全过程溯源云平台区块链利用该平台充沛结合物联网、区块链、云计算、大数据和地理信息等技术,在图形界面的软件环境下,实现信息采集、审核解决、管制执行、科学决策的“集成化、可视化、网络化和桌面化”。 平台通过连贯生产、加工、仓储、物流和生产各个环节,梳理对立的产品规范和管控流程,标准企业生产经营行为,晋升企业品质管控能力,切实保障产品品质。同时,将这些信息同步凋谢给消费者,加强消费者认知,打造生产信赖。 目前,苏州市阳澄湖大闸蟹行业协会个体商标防伪追溯体系、赣南脐橙品质平安追溯示范我的项目等利用均应用该平台。 安链数据:惠运链惠运链是安链科技在为物流无车承运平台、保险、银行等企业提供的物流保险供应链金融解决方案。 在货运交易和运输物流治理业务场景下,提炼多方协同的单据和信息,通过区块链技术的利用,将物流公司、保险机构、金融机构等生态链节点接入联盟链中,优化资源利用率,进步物流行业整体合作效率,利用可信数据推动保险和金融机构与物流行业交融。 目前惠运链单干用户包含南京融贸通智慧物流科技有限公司、江苏新宁古代物流股份有限公司、太平洋保险、招商银行等。 建信筑和:伊OS通明建造平台伊OS通明建造平台是深圳市建信筑和科技有限公司研发的一款基于区块链技术利用的建造行业全生命周期管理系统。 该平台着力为工程项目构建残缺的信用生态系统,使用区块链、大数据等前沿科技技术,帮助甲方执行我的项目全生命周期的治理,让我的项目责任可追溯,项目管理透明化,让过程变得偏心公正。目前平台已为中国雄安团体、深圳建科院将来大厦我的项目提供服务。 什么是“BSN官网指定利用”?BSN倒退联盟开发者委员会依据客户需要和业界产品的散布,划分了14个绝对通用的区块链利用分类以及“其它”分类,共计15个利用分类。分类笼罩供应链治理、供应链金融、司法存证、电子合同、防伪溯源等方面。 每个区块链利用分类下只引入3个有代表性的产品解决方案。计划经开发者委员会审核通过后,将作为BSN官网指定举荐的区块链利用,在BSN的各个渠道进行宽泛举荐。 第二批指定利用也在紧锣密鼓的上线筹备中,如您也想退出BSN官网指定利用,欢送与社区小助手分割。 FISCO BCOS的代码齐全开源且收费 下载地址:https://github.com/FISCO-BCOS/FISCO-BCOS

July 22, 2020 · 1 min · jiezi

关于区块链:PBFTPractical-Byzantine-Fault-Tolerance二ViewChange视图更换理解

一、视图更换的必要性 视图更换是零碎因为Primary出故障而可能保障可用性(liveness)的伎俩,可用性指操作可能在无效工夫内实现。checkpoint, stable checkpoint the states produced by the excution of these requests : checkpointa checkpoint with a proof : stable checkpointproof指节点达成2f+1的共识,达成全网共识的checkpoint就是stable checkpoint。 checkpoint是对于单个节点来说的,其设置是周期性的,比如说节点每当音讯序号n是100的倍数设置一次,每个节点设置checkpoint互相独立,chekpiont音讯带有申请的序列号,水位线机制确保了最低chekpoint和最高checkpoint的距离。节点在确立检查点的时候会多播<CHECKPOINT,n,d,i>音讯给其余节点;stable checkpoint是对于全网节点来说的,达到全网共识的checkpoint就是stable checkpoint。 checkpoint的作用:缩小内存占用。 二、视图更换的流程 backup在收到无效申请但并未执行的时候就会进行期待,这期间会开始计时(starts a timer),计时在期待时启动,非期待状态会进行。 节点查看到timer超期会进行承受音讯并多播一个视图更换音讯<VIEW-CHANGE,v+1,n,C,P,i>给所有的replica。n代表i以后所晓得的最新稳固检查点s(stable checkpoint)的音讯序号,C是2f+1个可能证实s正确的无效的检查点音讯<CHECKPOINT,n,d,i>汇合,汇合P由Pm形成,m是所有大于n的音讯的序列号,汇合Pm是由在i中达成prepared状态的音讯的汇合,Pm的内容包含对于m的pre-prepare音讯和2f个prepare音讯。当下一个视图确定的primary p收到2f+1个视图更换音讯后,就会多播一个<NEW-VIEW,v+1,V,O>的音讯给所有的节点,V是p收到和收回的无效的<VIEW-CHANGE>音讯的汇合,O是pre-prepare状态的音讯的汇合。 O的确定,p依据收到的<VIEW-CHANGE>音讯能够得悉min_s和max_s。min_s是p收到的所有<VIEW-CHANGE>音讯中最新的稳固检查点的音讯序号n,max_s指的是<VIEW-CHANGE>音讯中已知是prepare状态的最大音讯序号(由汇合P失去)。确定min_s和max_s之后,p就为这些音讯创立pre-prepare音讯。 p将所有的O中的音讯写入本人的日志,其余节点在对O验证之后就承受<NEW-VIEW>音讯。到这里就实现了视图的更换,之后的流程与三阶段音讯就一样了。其余优化 1. 为了节俭网络带宽和CPU占用,通过client指定一个replica存储计算结果,其它replica存储计算结果的摘要,如果验证后发现后果不正确,再从新提交申请,要求所有节点都提交残缺信息。 2. 当不产生视图更换的时候,节点达到prepare状态之后,会执行节点的申请并发送长期后果给client,当client收到2f+1个雷同的临时性后果时就能够承受。这一步利用了从prepare到commit之间的等待时间。 参考文献https://www.jianshu.com/p/fb5...https://www.cnblogs.com/gexin...https://lessisbetter.site/202...https://zhuanlan.zhihu.com/p/...

July 20, 2020 · 1 min · jiezi

关于区块链:使用百度链的智能合约来落地公司业务场景

前言这篇文章,咱们承接上文,来聊聊 上篇文章的飞机票 在Xuper链上部署Java语言智能合约和剖析存证合约的实现逻辑 “如何依据本人公司的业务逻辑定义存证合约外面的数据结构来实现存证智能合约” 首先须要明确下公司存证业务须要上链的数据结构`{"data":"", #这里是一个动静的json字符串"businessId":"", #业务id"fileHash":"", #文件hash"applyNotarization","" #申请组织编号"entityName":"" #公司名称}` 业务需要1、将下面的数据上链 2、能够通过业务id businessId和fileHash查问 官网给的go语言版本的存证合约模版`这个咱上篇文章曾经具体介绍过存证合约模版的实现逻辑了 这里把数据结构贴出来 而后和本人须要的数据结构进行比对 {"Owner":"xiaoming" , # 这个示意用户名"UserFiles":{ # 这个是一个map汇合 "filehash":{ # map汇合的key是文件hash "Timestamp":"" # 工夫戳 "Hashval":"" # []byte(filehash) 其实也是hash值 } }}` 比对后果1、filehash这个map的key对应的value是一个对象 对象内容官网模版只有Timestamp和Hashval这2个字段 那么咱们把 data、businessId、fileHash、applyNotarization、entityName 这5个字段退出进去 2、另外咱们上篇文章也说了 官网模版外面 是通过owner和filehash确认一条上链数据的 ,那么咱们的需要又减少了一个查问参数 businessId 那么再增加一个map汇合 外面的与元素 key示意businessId value示意一个对象的json字符串不就能够解决了 最终合乎业务需要的数据结构`{ "Owner":"xiaoming", "UserFiles":{ "filehash":{ "Timestamp":"", "Hashval":"", "data":"", "businessId":"", "applyNotarization":"", "entityName":"", "fileHash":"" } }, "BuisnessUserFiles":{ "businessId":{ "Timestamp":"", "Hashval":"", "data":"", "businessId":"", "applyNotarization":"", "entityName":"", "fileHash":"" } }}` ...

July 17, 2020 · 2 min · jiezi

FISCO-BCOS流量控制实现

文章起源:FISCO BCOS开源社区公众号作者:陈宇杰/FISCO BCOS外围开发者 1.引言区块链零碎作为分布式系统,面对大数据量突发申请场景,暴涨的申请容易引起区块链服务或接口不可用,重大时可能导致整个区块链零碎陷入雪崩状态。 为了提供更稳固牢靠、柔性可用的服务,FISCO BCOS v2.5版本引入了流量管制性能,从节点和群组两个维度进行限流,一方面,面对大数据量突发申请时对区块链零碎进行爱护,保证系统能失常运行,晋升零碎可用性;另一方面升高区块链节点间、群组间的资源烦扰,晋升区块链零碎的服务质量。 2.为什么引入流量管制FISCO BCOS引入流量管制,旨在: 应答大数据量突发申请升高区块链节点间、群组间的资源烦扰升高模块间的相互影响应答大数据量突发申请 上图比照了无流量管制性能和带有流量管制性能的区块链零碎面对大数据量突发申请时的解决状况。 假如该区块链零碎解决能力为2W,当业务以20W申请速率拜访区块链节点时: 无流量管制的场景下,系统对业务申请照单全收,导致外部积压的申请数目越来越多,区块链节点响应速度越来越慢,若业务继续以高于零碎解决能力的速率发动申请,最终整个零碎可能会陷入雪崩状态,无奈响应任何业务申请。退出了流量管制性能后,流量管制模块会依据零碎解决能力过滤业务申请。在业务申请速率超出零碎解决能力时,流量管制模块会回绝残余的解决申请,使零碎维持"收支平衡"的衰弱状态;并将申请过载的信息返回给业务,业务可依据该信息自适应地调整申请速率,对区块链零碎进行爱护。简而言之,引入流量管制模块就是给区块链零碎加上一层平安爱护罩,让零碎在接管大数据量突发申请的场景下能够强壮工作,失常响应业务申请。 升高区块链节点间/群组间资源烦扰 注:图中两个节点属于两条不同的链,接入了两个不同服务 如上图,当多个区块链节点部署于同一台机器时,会呈现资源竞争的问题,某些节点占用过多系统资源会影响到其余节点的失常服务。 t1时刻,业务1继续以1W的申请速率申请右边节点,该节点流量激增,零碎接管并解决申请后,应用了90%的CPU通过t工夫距离,业务2以5000的申请速率申请左边节点,该节点资源匮乏,只能抢占到10%的CPU,响应速度很慢上述场景中,右边节点因占用过多系统资源影响了左边节点的服务质量。引入流量管制后,可限度每个节点接管申请的速率,管制每个区块链节点的资源占用,防止因区块链节点资源竞争导致的服务质量降落或服务不可用问题。 仍以上图为例: t1时刻,业务1继续以1W的申请速率申请节点1,节点1流量管制模块依据配置的申请阈值回绝多余的申请(这里设阈值为5000),机器CPU占用率维持在50%业务1收到"流量过载"的响应后,可将其申请速率调整到5000通过t工夫距离,业务2以5000的申请速率申请节点2,此时机器还残余50%的 CPU,足以解决5000个申请,业务2的申请失去失常响应相似于一台机器上运行多个区块链节点时会产生资源竞争,多群组架构下,群组间也存在资源竞争,某个群组占用过多资源同样会影响到其余群组的服务质量,采纳群组级别的流量管制是解决群组间资源竞争的良方。 升高模块间相互影响同一个节点或群组内的不同模块,也存在资源竞争问题,次要是网络资源竞争,存在网络资源竞争的模块包含: 共识模块交易同步模块区块同步模块AMOP模块其中共识模块、交易同步模块是决定区块链零碎服务质量的要害模块,其余模块过多占用网络资源,会影响这些要害模块,进而影响零碎可用性。 FISCO BCOS实现了模块级别的流量管制,通过管制非关键的网络流量,优先保障要害模块服务质量,晋升零碎健壮性。 3. 流量管制的性能 FISCO BCOS从节点和群组两个维度实现了业务到节点的申请速率限度和模块粒度的网络流量限度。前者限度业务到节点的申请速率,以应答大数据量突发申请,保障区块链节点的柔性服务;后者通过限度区块同步、AMOP等非关键模块的网络流量,优先保障共识、交易同步等要害模块的性能和稳定性。 节点级别申请速率限度:限度业务到节点的总申请速率,当申请速率超过指定阈值后,节点会回绝业务申请,防止节点过载,避免过多的申请导致节点异样;管制节点资源使用量,升高区块链节点之间的资源竞争节点级别的流量管制:限度节点的均匀出带宽,当节点均匀出带宽超过设置阈值后,节点收到区块同步申请后会暂缓发送区块、回绝收到的AMOP申请,防止区块同步、AMOP音讯包发送对节点共识的影响群组维度上,次要性能包含: 群组级别申请速率限度:限度业务到群组的申请速率,当申请速率超过阈值后,群组会回绝业务申请,该性能可在大数据量突发申请的场景下保护区块链节点,管制群组资源使用量,升高群组间的资源竞争群组级别的流量管制:限度每个群组的均匀出带宽,当群组均匀出带宽流量超过设置阈值后,该群组会暂停区块发送和AMOP申请包转发逻辑,优先将网络流量提供给共识模块应用当节点和群组都开启申请速率限度时: 节点收到业务发送的申请包时,首先调用节点级别申请速率限度模块判断是否接管该申请,如申请被接管,则进入群组级别申请速率限度模块,通过该模块查看后的申请才会被转发到相应群组,进行解决。 当节点和群组都开启网络流量管制性能时: 1、节点收到客户端AMOP申请,首先调用节点级流量管制模块判断是否接管该AMOP申请 2、当某个群组收到其余节点对应群组的区块申请后,群组在回复区块之前,须要: 调用节点级流量管制模块,判断节点均匀出带宽是否超过设置阈值调用群组级流量管制模块,判断群组出带宽是否超过设置阈值,当且仅当节点级和群组级均匀出带宽均未超过设置阈值时,该群组才会回复区块申请4.如何应用流量管制性能流量管制配置别离位于config.ini和group.i.ini配置文件的[flow_control]配置项中,别离对应为节点级别流量管制配置和群组级别流量管制。这里向大家介绍如何启用、敞开、配置流量管制。 节点级流量管制节点级别的网络流量管制配置项均位于config.ini配置文件中,次要包含: 申请速率限度节点级别的申请速率限度位于配置项[flow_control].limit_req中,用于限度业务每秒到节点的最大申请数目,当申请数目超过设置阈值时,申请会被回绝。该配置项默认敞开,若要开启,请将limit_req配置项后面的;去掉。 关上申请速率限度并设计节点每秒可承受2000个业务申请的示例如下: [flow_control] ; restrict QPS of the node limit_req=2000网络流量限度[flow_control].outgoing_bandwidth_limit:节点出带宽限度,单位为Mbit/s,当节点出带宽超过该值时,会暂缓区块发送,也会回绝客户端发送的AMOP申请,但不会限度区块共识和交易播送的流量。该配置项默认敞开,若要开启,请将outgoing_bandwidth_limit配置项后面的;去掉。关上节点出带宽流量限度,并将其设置为5MBit/s的配置示例如下: [flow_control] ; Mb, can be a decimal ; when the outgoing bandwidth exceeds the limit, the block synchronization operation will not proceed outgoing_bandwidth_limit=5群组级流量管制群组级别的网络流量管制配置项均位于group.i.ini配置文件中,次要包含: ...

July 17, 2020 · 1 min · jiezi

在Xuper链上部署Java语言智能合约和分析存证合约的实现逻辑

前言这篇文章咱们先简略的叙述下官网刚公布的最新版本中的native部署java语言编写的智能合约的过程而后再说下存证合约的代码实现逻辑,下一篇文章咱们说下如何依据本人公司的业务逻辑定义合约外面的数据结构来实现智能合约 先简略说下对于文档拜访慢的问题官网文档是 https://xuperchain.readthedoc..._documents/XuperModel.html 该文档是在国外部署的,所以国内拜访的话,如果本人所在的网络不太好的状况下,关上网页是很慢的,这种状况大家能够将相应版本的文档下载到本人的本地,这样的话 就不会受网速的影响了 下载地址: https://readthedocs.org/proje... 抉择相应的版本即可 版本升级已反对java语言编写的智能合约大略2020年7月13号左右的时候 官网更新了一版本 在master分支上 该版本已反对了java语言编写的智能合约 接下来咱们首先下拉下最新的代码、而后编译、运行下,这个过程咱之前发过的文章也曾经很具体的形容过了,这里就不再赘述了,感兴趣的敌人 能够看下这2篇文章 在百度超级链Xuper上部署智能合约并实现存证性能 和 对百度超级链Xuper应用过程中的进一步了解 native模式下java智能合约的部署java智能合约是native部署的形式,所以首先须要批改下配置文件以开启native合约部署 `vim 每个节点门路/conf/xchain.yaml # 治理native合约的配置native: enable: true` 启动命令 `nohup ./xchain & 这里没有加--vm ixvm 这个是wasm合约部署的形式` 因为这里批改了配置 所以须要先删除数据,再启动 我这是在本地环境搭建的,所以节点数据都不太重要,要是公司的数据,那么就不须要轻易的批改配置了 编译环境编译Java sdk:Java版本不低于Java1.8版本 包管理器:maven,mvn版本3.6+ 配置maven环境`vim /etc/profile export M2_HOME=/Users/mengfanxiao/Documents/third_software/maven/apache-maven-3.6.2export PATH=$PATH:$M2_HOME/bin source /etc/profile mvn -v` 编译合约sdk`cd xuperchain/core/contractsdk/java mvn install -f pom.xml` 产出二进制文件target/java-contract-sdk-0.1.0.jar,并主动装置到mvn本地仓库下 编译native合约时,以contractsdk/java/example中的counter合约为例 `cd contractsdk/java/example/counter mvn package -f pom.xml` 产出二进制文件target/counter-0.1.0-jar-with-dependencies.jar,用于合约部署 合约部署./xchain-cli native deploy --account XC1111111111111111@xuper --fee 15587517 --runtime java xuperchain/data/javacontract/counter-0.1.0-jar-with-dependencies.jar --cname javacounter ...

July 15, 2020 · 2 min · jiezi

六-Conflux-Bounty介绍

bounty 是conflux基金会为每一个通证找到价值的赏金平台。conflux的粉丝们能够通过做奉献工作,获取FC 粉丝币,该币具备其肯定的粉丝共识。也是conflux目前惟一一种获取FC的路径。 一、板块组成bounty分为几个板块:技术、品牌、社群、资源、其余等。 技术板块:会公布一些技术相干的赏金工作,让技术粉丝能够在该板块下奉献本人的力量。比方开发一些dapp,开发钱包等。 品牌板块:次要是在各大网络平台分享conflux的各种最新公示,扩充conflux的影响力。目前每周都会有的奶茶工作、三明治工作等等。 社群板块:粉丝们通过自主建里兴趣爱好群,帮忙其余粉丝们解答一些社群问题,以及沉闷下日常氛围等工作。 资源板块:将身边一些企业以及资源引入conflux社区,扩建conflux生态等工作。 其余板块:次要是一些其余的零散工作。 二、FC介绍FC能够提取到集体的钱包,目前FC曾经在moondex上凋谢了交易对,大家能够进行交易等。 对于守护者,大家常常看到守护者V1,V2的字样可能不晓得代表什么,V1守护者是粉丝币达到200后授予的一种身份证明。FC达到2000个当前,就能降职V2守护者,V2守护者有些非凡福利。 三、感激感激大家观看本期文章、对conflux感兴趣的小伙伴,欢送增加我的微信 15832013094 ,备注“对conflux感兴趣”。

July 15, 2020 · 1 min · jiezi

五基于conflux-插件钱包的应用

第一讲 conflux-portal 的装置与应用区块链利用的模式次要以网页端、DAPP端为大部分场景,以及大量服务端场景。本节课程将教会大家如何Google Chrome 浏览器上创立一个在conflux公链上的钱包。须要大家进行下载插件、装置插件、通过助记词创立钱包,而后失去属于你集体的钱包的过程。 一、 下载插件1、 conflux-portal 下载地址:https://github.com/Conflux-Ch... 2、 大家关上地址后进入到下载地址页面是下图的样子,如图: 大家不难发现本教程中最高的能够应用的版本是 0.2.2 那么我将会为大家演示如何装置并应用 conflux-portal-chrome-0.2.2.zip 版本的插件钱包。 3、 点击 conflux-portal-chrome-0.2.2.zip 将会下载谷歌的chrome的插件版本。 4、 下载好当前放在电脑的任何一个中央都能够,不倡议放在系统盘,本教程放在D盘目录下了。 二、装置插件1、 咱们将压缩包进行解压(情谊提醒:大家不要间接解压本目录上面,须要指定一个目录解压,因为这个压缩包外面没有包裹一层,心愿不要被坑,我是解压到conflux-portal-chrome-0.2.2目录上面了),上面关上大家的Google Chrome ,依照下图的三部关上扩大程序面板,如图: 2、 大家的扩大程序面板可能不是开发者模式,因而须要关上开发者模式,点击开发这模式旁边的按钮即可。 3、 关上当前的面板外面将会有‘加载已解压扩大程序’等栏目,咱们持续点击这个栏目 4、 找到咱们解压的目录,点击确定。装置步骤实现。 5、 下面的步骤实现后会主动跳转到如图的页面阐明咱们装置插件胜利能够应用了,如图: 三、创立钱包1、 接着下面步骤中的开始,咱们点击‘开始应用’进入到conflux-portal应用页面,如图: 2、上图中有两个抉择,咱们能够导入之前曾经创立的钱包,也能够创立一个新的钱包。置信浏览本教程的小伙伴大部分都没有本人的钱包呢,我将会先创立钱包,在进行导入钱包,形式进行解说,有钱包的小伙伴能够间接跳到导入钱包教程。创立钱包会跳入上面页面,没啥好犹豫的间接 ‘I agree’ 批准就好了。如图: 4、 点击批准后会进入到上面页面,这里咱们要输出明码两次,并且勾选批准协定按钮,肯定要记住你的明码,不然失落后,可是找不回来的。如图: 5、点击‘创立’后跳转到助记词页面,这个助记词肯定要记住,记不住哪个小本本记起来。如图: 6、 点击显示密语,记下来就好了,本教程应用的是轻易创立的一个钱包因而公布出来助记词也没关系,大家的助记词千万别泄露了,不然你的钱包要小心了。 able peanut rate myself menu funny logic focus hedgehog arrest real box7、 上面还有一步就是将助记词残缺的填入确认页面,这一步真的是多余的,我自己很不喜爱,然而没方法,谁叫咱们是使用者呢,填写吧。如图: ...

July 15, 2020 · 1 min · jiezi

四Conflux-智能合约代付功能

Conflux实现了一种资助机制以补贴用户应用智能合约。因而,一个账户余额为0的新用户,只有执行资助(通常由Dapps的运营商资助),就可能间接调用智能合约。 通过引入内置的 SponsorControl 合约已记录对智能合约的资助信息。 一、代付性能在书写代付合约时只有引入内置合约中的代付合约就能实现代付性能上面是代付合约地址 https://github.com/Conflux-Ch...内建的合约地址为 0x8ad036480160591706c831f0da19d1a424e39469 pragma solidity ^0.5.0;import "github.com/Conflux-Chain/conflux-rust/blob/master/internal_contract/contracts/SponsorWhitelistControl.sol";contract CommissionPrivilegeTest { mapping(uint => uint) public ss; function add(address account) public payable { SponsorWhitelistControl cpc = SponsorWhitelistControl(0x8ad036480160591706c831f0DA19D1a424e39469); address[] memory a = new address[](1); a[0] = account; cpc.add_privilege(a); } function remove(address account) public payable { SponsorWhitelistControl cpc = SponsorWhitelistControl(0x8ad036480160591706c831f0DA19D1a424e39469); address[] memory a = new address[](1); a[0] = account; cpc.remove_privilege(a); } function foo() public payable { }}下面的合约须要增加白名单,而后白名单账户进行调用该合约中的foo将不须要领取,而是由赞助者领取,前提是赞助者须要进行资助 ...

July 15, 2020 · 1 min · jiezi

三部署智能合约到conflux公链

一、筹备合约本节课程教大家如何讲智能合约部署到conflux公链上,首先大家能够看到上面的这个智能合约是不是很简略。咱们将会以这个合约演示部署到conflux公链的过程。 pragma solidity ^0.5.0;contract Counter { uint public count=0; event SelfEvent(address indexed sender, uint current); constructor() public { } function inc(uint num) public returns (uint){ return count += num; } function self() public { emit SelfEvent(msg.sender, count); }}二、conflux的sdk装置咱们应用js-conflux-sdk作为本教程的web教程,交互首先咱们须要进行装置nodejs作为咱们的运行环境。飞机票一张收下吧,咱们装置好nodejs后,就能够来玩咱们的sdk了。废话不多说,间接开始撸。 咱们应用WIN + R键关上命令行,而后创立一个文件夹(舒适提醒切换到非系统盘玩切换形式“D:”就切换到D盘了)应用“mkdir my-project && cd my-project” 创立好我的项目后主动进入文件夹,而后咱们运行“npm init” 进行初始化node我的项目,这一步会让你确认一些货色,如果你是小白一路回车(Enter键)就好。如果你是前端大神,我也没啥好教的我也不太懂。为了稳固咱们应用固定版本号形式装置依赖,咱们运行 “npm install js-conflux-sdk@0.9.2” 命令进行装置js-conflux-sdk的0.9.2版本依赖(能够应用“npm uninstall package-name” 命令删除对应依赖)。前置筹备到这里根本曾经实现。 三、编写调用合约js代码上面请看我的目录构造追随我一起来学习,上面的目录构造请不要间接看到了就创立,因为你不晓得都是什么意思,看玩我的解释在回头创立。 小伙伴应该曾经发现了 node_modules、package-lock.json、package.json 这些文件是咱们在进行装置 sdk依赖时主动生成的。其余文件目前都没有,咱们来按程序生成他们。 先创立sol这个文件夹,而后创立这三个文件。test.sol就是下面咱们的合约代码间接拷入文件中。abi.json和code.json两个文件是通过这个工具 remix 在线生成的。我来说下生成过程。首先咱们将外面的文件全副删除,而后点击这里找到咱们的我的项目目录下的test.sol 文件 ...

July 15, 2020 · 1 min · jiezi

CKB版本控制与区块链演进

from Jan 我是 Linus 的粉丝。他发明了一个随处可见的开源操作系统,与人合著了一本我十分喜爱的书,还建设了一个简直每个开发者每天都在应用的分布式版本控制系统。 我在见到 Git 的那一刻就开始用上了 Git,并被它的速度和优雅所吸引。开发者用版本控制系统[1]来治理源代码,这样他们就能够随时把握代码的更新状况,与敌人和共事共享批改,在呈现新谬误时回滚到之前没有 bug 的版本等等。Git 让生存变得更加乏味,我心愿 CKB 也能够做到这一点。 CKB 是 Git咱们在创立 CKB 和 Cell 模型的过程受到了 Git 的启发。Git 的呈现是出于 Linus 对 Linux 内核开发不便的渴望,人们无论何时想要组织一些货色,从正文到博客文章,到图片,都能够应用它。它是一个具备极好历史跟踪性能反对的知识库。 Git 知识库被称为「存储库(repository)」,在外部保护着一个不可变的只可追加的对象数据库(想起来了吗?)。Git 中的根本存储单元是 Blob(二进制大对象),它是一个蕴含人们存储在存储库中数据的对象,就像 CKB 中的一个 Cell 一样。Git 会为每个文件的每个版本都创立一个 blob 对象。每当创立一个新文件时,都将创立一个新的 blob。每当批改现有文件时,都要创立一个具备新内容的 blob,而不须要批改旧的 blob(是不是听起来很相熟?)。每个 blob 都会被哈希,并且该 blob 哈希会被用作援用 blob 的标识符。工作了几个小时之后,您创立了一些新文件并批改了一些现有文件,而后将所有更改提交到存储库中,将新的提交同步给共事们,便出工了。 一个提交是 Git 中的根本历史点,存储库历史由一系列提交组成,这些提交包含从存储库的起源到最近的更新。提交是某个特定工夫的存储库版本,包含版本元数据,如作者、工夫戳、上一个提交和对 blob tree 的援用。就像区块头通过写下矿机地址、工夫戳、父块哈希和交易 merkle tree 的根来为区块链的每次更新保留元数据一样。您和您的共事们通过扩大 git 存储库的历史来取得报酬,就像矿工通过扩大区块的历史来取得区块处分一样。 Git 存储库也能够有 Fork。人们在不同的分支上工作,然而哪个分支是「正确的」是由存储库维护者决定的,而不是通过共识。Git 是一个没有共识的分布式系统,依赖于非凡的点对点通信(如 ssh 或电子邮件)进行数据交换。 Git 和区块链之间有着相似之处,这也意味着咱们应该更审慎地将 Git 的想法融入到区块链中,而不应该将互相抵触的设计抉择引入到区块链中,这样区块链或智能合约开发者就能够享受到 Git 的一些已被证实的长处。这就是 CKB 外在的实在样子:一个领有真正的 p2p 网络、寰球共识和加强 blob 的惟一大型 Git 库,由一群匿名者一直进行更新。这不是一个区块链 ...

July 14, 2020 · 2 min · jiezi

百度超级链公开课如何编写赢得万元奖金的智能合约

历时3个月的区块链服务网络BSN第二次开发者大赛圆满闭幕。本期邀请三位应用百度超级链XuperChain作为底层框架的获奖人亲自分享获奖案例,深度解析智能合约编写历程。带你解析如何基于XuperChain编写“微信”智能合约,如何在百度超级链上实现直播打卡挑战,以及探讨审计智能合约在超级链上的具体利用。 【本期主题】:如何编写博得万元奖金的智能合约 【主讲嘉宾】:资深区块链研发经理-赵宇霆、资深软件开发工程师-韦心红 、资深区块链工程师-周洋 【精彩预报】: 获奖案例一:如何基于XuperChain编写“微信”智能合约 获奖案例二:在百度超级链上实现直播打卡挑战 获奖案例三:审计智能合约在超级链上的利用 【课程工夫】:7月16日(本周四) 20:00 【预约形式】:扫描下方海报二维码进入预约

July 14, 2020 · 1 min · jiezi

区块链及其对世界的影响

区块链是整个加密货币生态圈的底层技术和最基本的价值主张。它是比特币的平安保障,也是以太坊智能合约的价值起源。本文是咱们区块链技术科普系列的第一篇文章,旨在深入探讨区块链的概念、价值及其如何重塑古代社会的信赖机制。区块链是什么?它是如何运行的?区块链是高度平安、牢靠和去中心化的网络。人们能够在区块链的共享账本中贮存数据、交换价值并记录交易行为,这个账本不禁任何一个中心化实体管制,而是由全世界各地的计算机独特保护。 账本是指记录经济流动的实体或电子文档。账本能够记录个人账户余额,也能够记录整个经济体中的资金流动。现在,大多数账本都由银行等各种中心化实体掌控,这些实体将账本贮存在本人的服务器和犹如黑匣子般的数据库中。 区块链是贮存在去中心化计算机网络中的虚构账本。网络中的每台计算机(即节点)都运行同样的软件,并保护、贮存和验证同一账本的正本。公链应用其原生资产(即加密货币)为节点提供经济激励,激励节点踊跃沟通,最终就账本的有效性达成一致意见(即共识)。 用户提交交易,将价值从一个账户转移到另一个账户,以此对账本增加内容。用户的账户被称为公钥或私有地址(public address),每个公钥都有对应的私钥。公钥就像是电子邮箱地址,而私钥就像是明码,持公钥的人必须输出明码(注:这个明码也叫数字签名),能力从账户转账进来。 待执行的交易会被打包进“区块”中,而后网络中的每个节点都会对这些交易进行解决和验证。让所有节点都验证交易是为了确保帐本中的变更失去反复验证。公钥中必须寄存足够的资金并且数字签名必须正确无误,交易能力顺利执行。 一旦区块被确认,就会附加在账本中。账本就是由一个个区块连贯而成的,因而被命名为“区块链”。节点提供服务会取得交易费或新创建的加密货币作为处分,这也称为区块处分。 区块链和银行解决用户转账的机制有所不同 区块链有许多不同的设计模式,每种模式都有其优缺点。 网络权限和参加:不同区块链网络的凋谢水平或限度门槛有所不同。其中公链是齐全凋谢的,公有链是齐全关闭的,而联盟链凋谢权限但限度参加。这三种是次要的区块链类型。o:p共识机制:区块链能够通过不同的形式对交易达成共识。最常见的共识机制包含工作量证实(比特币)、权利证实(Tezos)以及权威证实(大多数公有链)。功能设计:区块链目前无奈做到美中不足,而是须要在性能上做出肯定取舍。其中重要的性能包含安全性、可扩展性、去中心化、隐衷保障和交易最终确认等。区块链具备哪些价值?区块链具备以下中心化账本所不具备的价值: 安全性:如果区块链的去中心化程度达到肯定高度,即便网络中存在歹意攻打,也简直无奈使不非法的交易通过验证。不可篡改性:一旦区块失去反复验证,就会成为不可篡改的账本的一部分,账本越大就越难篡改。可靠性:区块链是笼罩寰球的分布式网络,全天24小时不间断运行。区块链永远在线,而且不受地区或政治因素限度。点对点:区块链没有中间方榨取交易价值,各方能够间接开展交易,毋庸放心任何对手方危险(注:对手方危险指合约对手方不履约的危险)。总的来说,区块链为交易各方发明了一个平安、牢靠且防篡改的经济交易基础架构。传统交易模式依附可信第三方来管制对手方危险,而区块链则依附高确定性的开源软件严格执行指令来管制危险。区块链帮企业罢黜了对账累赘、勾销了不必要的中间方并升高了对手方危险,因而极大晋升了企业效率。区块链如何发明价值?互联网是分享数据的平台,数据的利用形式更是多种多样,比方电子邮件、即时消息、电信和社交媒体等。区块链的价值替换性能也具备丰盛的利用场景,并有后劲为终端用户发明独特的价值。 货币体系比特币展现了公链如何通过独特的货币政策,建设自力更生的金融生态系统。比特币区块链的原生通证是BTC,内置货币发行机制和经济激励机制,网络毋庸中心化调控,可自主运行。比特币设置了货币供应量下限,且具备抗审查的属性,BTC的总量相对不会超过2100万枚。因为BTC具备抗通胀的货币属性,因而很多人认为它比法币更能保值。 智能合约以太坊展现了公链如何作为一台安全可靠的世界计算机解决智能合约。用户在这个场景中不追踪资金流向,而是向区块链发送一条指令,即“如果产生事件X则执行口头Y。”区块链随即执行这个指令(即智能合约),基于输出的数据输入后果(即转移价值)。以太坊能够同时解决几百万份智能合约。 资产通证化有一些我的项目用区块链进行资产注册。开发者能够用智能合约创立独特的非同质化通证,通证代表了真实世界中的资产所有权,比方房产、汽车和珍藏卡片等。区块链能够验证资产所有权的真实性,公开资产的生命周期并突破地区限度,盘活资产流动性。 中间件Baseline协定用区块链(注:次要是在以太坊主网)作为中间件,企业之间能够同步各自数据库中的局部数据,但却毋庸将敏感数据放到区块链上。以太坊主网始终在线,能够随时承受审计,无奈被篡改,而且毋庸许可即可进入。因而企业能够将其行为数据贮存在区块链上,以此来告知对方目前的状态。数据贮存在区块链上,会应用一种叫做“零常识证实”的隐衷保障技术,只有协定中的各方能力读懂数据。这个证实是各方对业务流程状态的独特参考框架,比方买家和卖家之间约定的折扣条款。 永恒记录区块链上能够贮存历史记录,而且记录无奈被篡改。领有高度可信的记录能够缩小因为不同数据库之间的偏差而导致的抵触摩擦。区块链上的记录能够永恒保留,这将有助于更好地追踪金融合约、贮存医疗记录以及查看身份信息等。 具体利用场景区块链能够用来实现具体的利用场景。举个例子,去中心化的节点网络能够实现分布式在线流媒体、不可篡改的网络游戏或文件贮存。与BT下载一样,区块链也施展了去中心化网络的劣势,发明出了共享的公共事业。 欢送退出 Chainlink 开发者社区理解更多内容请期待咱们之后公布的文章。本科普系列中的下一篇文章将探讨智能合约的话题。欢送关注咱们的Twitter账号,收到文章更新告诉。还可退出咱们的电报群,理解Chainlink最新资讯。

July 14, 2020 · 1 min · jiezi

对百度超级链Xuper使用过程中的进一步理解

前言之前写过一篇文章,在百度超级链Xuper上部署智能合约并实现存证性能 这里叙述了 搭建3个节点 将节点1作为出块节点,这篇文章 咱们配置下将 节点1和节点2作为出块节点,节点3作为同步节点 如何配置以及须要留神的几点,免得读者在操作实际的时候入坑或者因为了解不透彻导致耽搁很多工夫. 我对百度链应用工夫不长,可能了解的比拟全面,我写这篇浅文,就当抛砖引玉吧,心愿大佬前辈们指出谬误的中央或者有其余须要探讨的中央 欢送发送到我的邮箱(pingfanrenbiji@163.com) 咱们交换下吧 配置多个出块节点`将节点1和节点2配置为出块节点节点3作为同步节点` 批改节点1的配置查看节点2的地址`cd pn2cat data/keys/addressWJHuX9haAL7Sea6rUo8VBhhsQmMJbTopk` 配置到节点1的xuper.json中 删除配置项将 init_proposer_neturl 配置项删除 将节点1的配置复制到节点2和节点3`cp pn1/data/config/xuper.json pn2/data/config/xuper.json cp pn1/data/config/xuper.json pn3/data/config/xuper.json` 启动每一个节点`先删除节点上面的 data/blockchain/xuper 文件夹 ./xchain-cli createChain nohup ./xchain --vm ixvm &` 确认下节点2是否在出块`cd pn2tail -f logs/xchain.log|grep 'isCoreMiner=true'` 思考:每次批改配置都要删除数据吗如果批改共识算法的话 能够动静配置`通过发动提案的形式 官网文档https://xuperchain.readthedoc... 每次拜访这个文档都很慢 有没有快速访问的办法?` 如果减少一个出块节点`有动静增加节点的接口,所以不必重做数据另外 节点刚退出的时候是先同步数据再出块的` 批改其余配置须要重做数据(这一点没有公司可能容忍吧,批改一个配置,就须要把之前的历史数据删除掉 而后从新整数据) 对于合约部署这块 呈现签名谬误的起因和解决办法javasdk对于连贯节点环境 第一个圈红的中央是一个ip和port 这个地址能够是多节点环境中的任何一个节点 这里能够做负载平衡`比方有3个节点 通过nginx做负载平衡 所以这里配置的是nginx的ip和port(这一点我没有实际 猜测是能够的)` 对于第二个圈红的中央 keys 示意 读取的是 resources文件夹上面的keys文件夹上面的private.key私钥文件`对于这个私钥文件它是一个节点账户这里咱结合实际应用过程来阐明下这里的留神点` a、连贯节点环境并读取keys文件夹上面的私钥文件获取账户信息 b、部署合约 `./xchain-cli wasm deploy --account XC1111111111112222@xuper --cname eleccertest1 -a '{"creator": "someone"}' -A data/acl/addrs -o tx.output --name xuper -H localhost:37101 /Users/mengfanxiao/Documents/project/company/XinPools_INFO/document/business/baidu/xuperchain/data/blockchain/xuper/wasm/eleccert --fee 5568187 --runtime=go -a '{"owner":"mengfanxiao"}' 此时如果报错 Failed to post tx:TX_SIGN_ERROR 这阐明没有获取到以后账户的私钥文件,因为做交易的时候 须要获取操作账户的私钥信息进行签名 那么为什么没有获取到私钥文件呢? 首先看下执行以后命令所应用的客户端是哪个节点 比方 节点3 而后再看 以后连贯的节点是哪个节点 -H localhost:37101 这个是节点1 应用节点3的客户端连贯节点1的服务是能够的 要害节点3 data/keys/上面是否有XC1111111111112222@xuper 这个合约账户的私钥文件 data/keys/ 目录下是否具备该合约账户的私钥文件` ...

July 13, 2020 · 1 min · jiezi

hyperledger-fabric教程ubuntu-安装-fabric并运行

首先这篇文章的目标是教会大家如何在ubuntu零碎上装置hyperledger fabric并运行起来,因为目前网络上所有的教程都是之前的fabric版本,然而当初的fabric版本相较于之前版本曾经扭转了很多,如果应用之前的办法来装置fabric是不能胜利运行的。1.首先得有一台零碎为ubuntu的服务器(centos其实操作原理差不多),举荐应用虚拟机装置ubuntu零碎。2.更换apt的下载源,官网下载源很慢,咱们须要更换到国内的镜像站2.1 进入 /etc/apt 目录cd /etc/apt 2.2 备份 sources.list 文件sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup2.3 关上 sources.list 文件进行批改并增加阿里云镜像#在文件最后面增加即可sudo vi /etc/apt/sources.list # 阿里源deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse2.4 对 apt-get 进行更新sudo apt-get updatesudo apt-get upgrade3. 环境装置咱们须要装置的软件有 go docker docker-compose nodejs ...

July 11, 2020 · 2 min · jiezi

百度超级链公开课-北京政策密集发布区块链城市到底怎么建

近日《北京市区块链创新发展行动计划》发布,不知道北京区块链新政讲了什么?不了解“区块链城市”如何建设?百度超级链联合中海纪元,以自主可控的技术及产品,参与海淀区、西城区等多项北京区块链应用场景建设。想要了解具体内容,本期百度超级链公开课带你揭秘! 【本期主题】:《可信城市大脑,赋能美好生活》 【主讲嘉宾】:梅一多  中关村科学城城市大脑公司技术总监 【精彩预告】:解读北京市最新区块链政策,揭秘海淀区城市大脑如何推进,分享区块链落地实战经验 【课程时间】:7月9日(本周四) 20:00 【预约方式】: 点击下方链接进行直播预约http://abcxueyuan.cloud.baidu.com/#/live_detail?liveId=259&linkToken=tby2T

July 7, 2020 · 1 min · jiezi

二学习基础智能合约

第一讲 介绍1、 智能合约是什么?智能合约并非现实中常见的合同,而是存在区块链上,可以被触发执行的一段程序代码,这些代码实现了某种预定的规则,是存在于区块链执行环境中的“自治代理”。智能合约需要被触发,代码才会执行,不被触发他的状态将会始终保持一个状态,并且部署后的智能合约将不可被修改。智能合约语言的语法和js脚本语言很像,因此有过js开发经验的小伙伴们学习起来会很快。 2、 编程工具的介绍。我们都知道“预先善其事、必先利其器”的道理,现实中织布是需要织布机才能完成织布,同样的我们的智能合约学习也是要有编程工具的使用的。我们本套课程都将以 remix 为编程工具进行讲解课程。remix 就是我们手里的织布机,能织出什么布就看我们这些使用 remix 的程序员了。地址为(http://remix.ethereum.org/)可以直接在浏览器中开发,很方便,只要有一个 google chrome 谷歌浏览器就可以开发了。 remix 有几个主要的常用面板,分别是文件面板、编译器、运行器、以及占用最大一部分的文本编辑器组成。 文件面板:我们可以在这个面板进行创建文件、选择文件等管理文件的操作。编译器:我们可以将sol文件进行编译,编译不通过将不能执行合约,并且可以得到code.json以及abi.json。我们可以将他们在支持sol语言的公链上运行。运行器:可以将sol智能合约部署在eth链上,并且能对合约的方法进行调用等操作。文本编辑器:我们的代码就是写在这个位置的,后面基本大部分时间你将面对的是这个页面。 3、 我的第一个智能合约程序下面的智能合约是我们第一个合约程序,因此我们命名为 “FirstContract.sol” 文件名 pragma solidity ^0.6.0;// first contractcontract FirstContract { // first method function firstMethod() public pure returns (string memory) { return 'I am first method !!!'; }}上面代码很多小伙伴应该不是很懂什么意思,不懂没关系,我来给大家一行一行讲解。pragma solidity ^0.6.0;这一行是说明使用solidity 0.6.0版本写的,可以运行在0.6.0到0.7.0之间的版本上。contract FirstContract {这一句是定义一个叫 FirstContract 名称的合约。function firstMethod() public pure returns (string memory){这一行是定义一个方法叫做 firstMethod, 该方法有返回值,类型是 string 类型的。 return 'I am first method !!!';这一行是这个方法将会返回 “I am first method !!!”。 ...

July 7, 2020 · 7 min · jiezi

一Conflux-网页钱包创建

相信每一位新加入的小伙伴都有一个疑问,去中心化的钱包到底是什么,如何拥有一个自己钱包,如何使用这个钱包吧,下面我将会为大家讲解如何创建钱包、导入钱包、使用钱包三个方面讲解下。 一、创建钱包首先大家进入钱包网站登录页面 (大家可以将该网址收藏), 可以看到页面上有两个选择,一个是创建钱包,一个是进入钱包(即导入钱包),我们先讲创建钱包然后在讲如何导入钱包。 我们点击创建钱包,将会弹出下面页面中的密码输入框,这里大家输入一个记得住得的密码(如果记不住写在小本本上藏起来),本教程输入密码为 000000000 然后点击继续。 我们会进入下面的页面,提示大家进行下载Keystore文件,大家点击下载就好了,这里的keystore千万不要丢了,和上面密码一样很重要。在进行导入钱包时,会根据大家的keystore文件以及密码进行计算出大家的私钥,因此很重要,最好备份到U盘中,以及打印一份。 下面是本次教程下载的keystore文件。 {"version":3,"id":"74e5b4a2-4894-4144-837c-61479487a565","address":"ad9af053f4ffed7a061226663ec50ce46736da9a","crypto":{"ciphertext":"eaeced1cd595adb51832c03feca291794eb593270e733776543ea4f095110bfb","cipherparams":{"iv":"73ca3e626b5625817679f43e2a81ec10"},"cipher":"aes-128-ctr","kdf":"scrypt","kdfparams":{"dklen":32,"salt":"4e914d37a14cd522dc70dd88e079170481e82d45418cfd34a5c1ccbf8d0a409c","n":8192,"r":8,"p":1},"mac":"16769410e64e4ed4e0b89c43a84a338569696f46cf9ec604b82c87d4e99385ea"}}我们下载好以后,会进入看到下面的页面弹窗。我们点击进入钱包。 点击进入钱包后,会进入个人的钱包页面,这个钱包中有CFX(测试币)、以及FC(合约币)。会发现都是0余额,很正常,刚刚创建嘛,是0就对了。 到此我们就有了一个钱包了,是不是很简单,温馨提示大家,密码 + keystore文件很重要,不要搞没了,没了就找不回来了。也不要公开,别人拿到了以后,就相当于知道你的钱包了,就可以把你的余额等都转走。 二、导入钱包上面我们讲解了如何创建钱包,下面我们来讲解下如何导入钱包,已经使用钱包的小伙伴已经发现了吧,当我们刷新浏览器页面时,会直接进入到钱包登录页面,这个时候我们已经创建了钱包,肯定不会在创建一个了,那么我们就看下如何进入钱包(即导入钱包)吧。我们点击进入钱包, 会弹出下面页面,我们继续点击继续按钮 会让我们选择文件,这里直接选择我们在上面创建的钱包时,下载的keystore文件,点击打开 这里会让我们输入密码,就是上面创建钱包时的密码,输入密码后点击进入 是不是进入了大家熟悉的钱包页面啦! 导入钱包是不是很简单,这会知道keystore和密码重要性了吧!!! 三、钱包使用小伙伴是不是还是很懵,我有了钱包能做什么,我来给大家介绍下钱包如何使用。大家可以看到下面钱包页面上我标注的10个功能序号。我将为大家介绍这10个功能。 功能1,复制钱包公钥地址,这个钱包公钥地址,可以进行公开,这个合约地址就是大家进行接受转账的地址,每个人都有一个唯一的公钥地址。 功能2, 钱包公钥地址二维码,可以使用支持扫码的dapp进行扫码来解析出来你的公钥地址,同样是可以公开的。 功能3, 区块浏览器,可以在该页面查询某个账户地址余额,出块情况,交易hash等等信息。 功能4,钱包私钥,这个私钥很重要,和上面的keystore+密码是一样重要的,可以直接通过私钥,进行进入你的钱包中,因此,不能进行公开。 功能5,cfx发送, 这里点击发送后会让我们输入转出cfx余额,以及发送地址,还有燃油费等信息,大家可以在测试网建两个账号相互转转,挺有意思的。 功能6,cfx接收,这个就是功能1和功能2的集合体。 功能7,申领测试币,可以申请测试币,每次会申请100测试币,大家随便使用,反正上线后会清除的,没啥用。 功能8,fc发送,这个功能可以在两个账户间来回转下,大家不要随便转给别人,不然就找不回来了。这里的fc是真正的可以在上线后也是能用的。 功能9,fc接收,和功能6一样的东西。 功能10,这个是查看合约信息的情况的入口。可以看到总量等信息。 四、钱包转账我们以CFX钱包账户来进行转账,转给某个社区的小伙伴的账户地址(0x10898FD8a20C28A2F2Ea46428cAfBD2B58c1E363)这个小伙伴是谁我也不知道。我们点击CFX下面的发送按钮。进入下面页面 我们在发送至中填入这个小伙伴地址,发送cfx为10cfx. 点击发送看到下面的弹窗,我们这次不点击那个确定点击下面查看详情 可以看到进入了区块浏览器中了。里面的交易hash是本次交易的hash通过这个可以查找到本次交易情况,发送方就是你本人的公钥地址,接收方是对方的公钥地址,价值就是你转了多少cfx,差不多知道这些信息已经够了。 到此我们钱包课程已经基本介绍结束。 五、结束感谢小伙伴们阅读本文。有对conflux感兴趣的小伙伴可以添加我微信好友(15832013094),我拉大家进入conflux社区群。一起共同学习进步。

July 6, 2020 · 1 min · jiezi

在百度超级链Xuper上部署智能合约并实现存证功能

现实生活中的使用场景`几个摄影师朋友找到你, 他们的摄影作品上传到自己的blog后总是被其他人盗用, 使用水印之类的方法也无法避免像截取部分这种情况, 他们需要一个能证明摄影作品最早是由 自己上传、而且具有法律效力可供自己进行维权的工具 显然区块链对于解决此问题有很大的帮助, 它的不可篡改等特性很适合存证维权的场景, 我们可以通过XuperChain来构建一个存取证据的智能合约 下面就来帮助摄影师朋友开发一个 能够存储照片版权、还能在发现被盗用后进行维权的智能合约 ` 搭建xuper节点环境(多节点)环境准备go 1.12以上gitg++4.8.2以上`git和g++之前已经安装好了,现在安装下go环境(接下来的a、b、c介绍的是通过mac安装go语言环境 如果非mac的小伙伴 可以跳过了) ` 通过brew安装go `brew install go ` `这样就安装好了,这里涉及到一个问题, 就是通过brew下载安装包速度的问题, 之前的文章也介绍过,这里再重复下, 以免朋友们在下载安装包这块浪费太多时间, 方法就是更换Homebrew源 ` a、替换brew.git `cd "$(brew --repo)" git remote set-url origin https://mirrors.aliyun.com/ho... ` b、替换homebrew-core.git `cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core" git remote set-url origin https://mirrors.aliyun.com/ho... ` c、echo $SHELL 看输出结果是/bin/zsh还是/bin/bash c-1、 /bin/zsh替换homebrew-bottles** `echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/ho...' >> ~/.zshrc source ~/.zshrc ` c-2、/bin/bash替换homebrew-bottles `echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/h...' >> ~/.bash_profile source ~/.bash_profile ` 到此已经好了go语言环境 既然编译环境准备好了 下面咱们开始编译下xuperchain源码 let‘s go 下载源码`git clone https://gitee.com/pingfanrenb... 下载的是master分支 当前版本 v3.7 ` 编译`进入源码目录 cd xuperchain make 编译好之后 就会在output文件夹下面出现编译之后的文件 这里需要注意下 一定要安装master分支  不要安装老的分支 比如v3.1分支 v3.1分支是pow共识  我一开始就用的这个版本的代码 节点是可以部署  但使用命令或通过sdk调用和链交互就会有出现问题  所以一定要用master分支哦 ` 多节点配置创建节点目录`mkdir pn1 mkdir pn2 mkdir pn3 ...

July 5, 2020 · 2 min · jiezi

区块链公链三元悖论专题系列之安全性Security

上两期我们讲了区块链公链系统“三元悖论”中的【可扩展性】和【去中心化】,本期我们结合区块链公链系统中所存在的安全问题和挑战,以及一些实际案例,来讲一下这个系列文章的压轴话题:安全性(Security)。 在很多人看来,对于一个系统来说,安全性是必要条件,而非充分条件;甚至有人说,“去中心化”和 “可扩展性” 是“二元悖论”的说法反而比“三元悖论”更为精准,仅仅二元即可说明一个区块链公链系统的性能状况。但实际情况真的是这样吗? 首先,我想引用BTC系统在白皮书中对安全性的描述,来对区块链公链系统的安全性进行一个范围上的定义:以密码学为基础,基于工作量证明(POW)的共识机制,使得整个系统中只要恶意节点的总算力不超过50%,系统就能保证大概率上的安全,并且不会发生致命的“双花”( double spending双重花费问题)欺诈。 从这段文字中可以看出,区块链公链系统的安全范围有两个方面,一是系统自身的安全性(防崩溃机制)方面,二是系统参与者的数据、交易安全性(隐私保护)方面。 区块链公链系统区别于中心化系统的很重要的一部分,就是“安全性”是作为系统中一种性能指标(通过密码学和共识机制等技术作为保障),可根据系统的整体需要,进行弹性选择,甚至在系统迭代过程中可以进行更换。 另外,从本质上讲,区块链技术是一种在信息不对称的情况下,无需相互担保信任或第三方中介参与,采用技术手段,实现节点间“普遍通过即为认可”的信任机制。 所以,在我看来,安全性对于区块链系统来说,既不能粗略的以充要条件的方式来定义,也不能脱离去中心化、可扩展性等场景需求而单独评价;这也是区块链安全技术中最有魅力的地方。 ▲BTC系统全节点分布图(数据来源:京东智联云BDS区块链数据服务)▲ 说到区块链安全技术,就不得不提一下针对区块链系统的各种攻击手段,目前来看,根据区块链的技术特性,具体的技术攻击手段主要分为以下三种: (一)以共识机制为目标的针对性攻击:共识机制是维持区块链系统有序运行的基础,相互间未建立信任关系的区块链节点通过共识机制,共同验证写入新区块中的信息的正确性。区块链中使用的共识机制有很多,包括PoW、PoS、BFT等(之前两篇文章中均有所提及)。目前,PoW、PoS和DPoS(DelegatedProof of Stake,委托权益证明)机制已经过大规模长时间的实践检验,发展较为成熟。但在区块链共识机制的长期发展应用中,也衍生出了算力攻击、分叉攻击、女巫攻击等大量针对性的攻击手段,造成链上记录被篡改等后果,如下图所示: ▲区块链典型攻击策略表▲ (二)对区块嵌入恶意代码,利用分布式存储机制进行快速传播:区块链通过构建开源的共享协议,实现数据在所有用户侧的同步记录和存储。与传统中心式数据库在一个或几个中心集中存储数据的方式不同,在区块链系统中,所有用户侧均有可能存放完整的数据拷贝,因此,单个或多个节点被攻击均不会对全网数据造成毁灭性的影响,提高了存储的可容错性。但是这种分布式的存储机制也在一定程度上扩大了安全威胁面,最典型的是恶意节点可在新区块中嵌入病毒、木马等恶意代码,利用分布式机制自发向全网传播,伺机发起网络攻击,如下图所示: ▲利用区块链分布式存储机制进行恶意代码攻击示意图▲ _(三)针对密码学机制固有安全风险的各类攻击:_非对称算法、哈希函数等密码学机制在区块链中的应用解决了消息防篡改、隐私信息保护等问题,但这些密码学机制的固有安全风险仍将面临各类攻击,主要有两点,一是ECC、RSA等复杂加密算法本身以及在算法的工程实现过程中都可能存在后门和安全漏洞,进而危及整个区块链系统和其上承载的各种应用的安全性。二是随着量子计算等技术的飞速发展,当计算机算力达到一定级别后,即可在秒级时间内破解非对称密码算法中的大数因子分解问题(例如通过量子计算机破解1024位密钥的RSA算法只需数秒),这也成为区块链公链系统未来很大的安全隐患。 所以,尽管区块链的防篡改、分布式存储、用户匿名等技术优势为其发展应用提供了大量的创新空间,但目前区块链技术在各领域的应用模式仍处于大量探索阶段,其深入应用仍需漫长的整合和发展过程;在《信通院区块链安全白皮书》中,就对区块链技术在应用中的安全问题进行了描述,总结后如下所示: ▲区块链典型应用架构对应的安全风险▲ 上图中,对于四个层级的安全风险归纳如下: 存储层:主要风险来源于环境的安全威胁,如基础设施的安全风险、网络攻击威胁、数据丢失和泄露等,最终影响区块链数据文件的可靠性、完整性及存储数据的安全性,具体包括以下三点:基础设施安全风险、网络攻击威胁、数据丢失和泄露。 协议层:主要风险来源于核心机制(共识机制、P2P网络机制、密码学技术)的设计缺陷,前两章我们对这些核心机制做过介绍,当这些核心机制的规则设计被恶意节点利用,则很容易使系统的自身安全和交易安全遭到破坏,具体包括以下三点:协议漏洞、流量攻击以及恶意节点的威胁。 扩展层:主要风险来源于代码实现中的安全漏洞,由于这一层较典型的实现是智能合约(或称可编程合约),但智能合约的应用起步相对较晚,很多开发人员尚缺乏对智能合约的安全编码能力,从而造成代码中存在大量的安全漏洞,具体包括以下两点:合约开发漏洞、合约运行安全。 应用层:这一层由于直接面向用户,涉及不同行业领域的应用场景和用户交互,因此也成为攻击者实施攻击、破坏系统的重点目标层,具体包括以下5点:私钥管理安全、账户窃取、应用软件漏洞、DDoS攻击、环境漏洞。 而综上所述,目前应对以上风险的措施简单总结如下图所示: ▲区块链风险应对框架▲ 这里我们列出几个具体方法作为参考: (一)提升参与同步与验证节点的数量:在区块链公链系统中,公链网络的正确性与安全性依赖于一些节点的背书。例如,在比特币或以太坊中,根据协议,每一个矿工挖出区块时,要保证新区块和历史上的每一个区块每笔交易都是正确的。也就是说,比特币矿工出块时,在为之前所有的区块进行正确性背书;在 EOS 中,超级节点通过签名对区块的正确性背书。我们这里称为“参与共识的节点”。所以,如果每一个被确认的交易,都得到过更多参与共识节点(攻击者除外)的同步与验证,这样就能够提高系统整体的安全性。 (二)提高节点参与系统的门槛:上一篇我们讲到,降低用户参与门槛即可提升系统去中心化程度,所以,当提升系统参与门槛时,就可以相应的提升系统的安全性以及可扩展性;在一些共识机制中,普通用户不参与对交易的同步与验证,而是通过一些方式选出少数特殊的节点来进行共识;这时,我们可以假设每一个参选的节点都准备了足够的计算机资源,例如更好的 CPU, 更大的硬盘, 更大的网络带宽;这时,也就没必要将“最低配置要求”设的很低了;相应的,系统整体安全性就会高一些。 (三)攻击应对监测:在区块链中创建某种“交易配置文件”,监控特定区块链上的交易,检测包括51%攻击,Sybil攻击等恶意攻击。 (四)项目安全管理:智能合约代码的安全审计和法律合规方案的制定。 总之,区块链系统安全设计的挑战,是保障该系统不能被坏人破坏;在一个开放并与经济利益挂钩的区块链系统中,不仅会有好人加入这个系统,也会有更多的坏人企图希望通过破坏该系统获利;那么,如何在系统内部存在坏人的情况下,保证系统的安全性,这已不仅是传统意义上安全架构的技术挑战,也是安全机制设计的挑战。 ▲区块链在网络安全领域的典型应用▲ 最后,如上图所示,我们讲一下如何利用区块链技术的特性,来对传统网络安全领域的安全性进行加固。 由于区块链分布式、点对点的通信具有易连接、大协作的特点,基于哈希加密的匿名性也能够很好保护用户隐私和证明唯一性,依托公私钥的权限控制方式更是赋予数字资产丰富的管理权限,因此,这些技术特性使得区块链可以成为解决网络和数据安全存储、传播和管理问题的有效手段,在攻击发现和防御、安全认证、安全域名、信任基础设施建立、安全通信和数据安全存储等方面得到了积极的探索。 下面列举几个区块链网络安全的具体应用案例: (一)Guardtime攻击发现和防御案例:为数据或系统的状态创建时间戳哈希,根时间戳哈希对状态持续监测,以发现文件、系统或程序是否受到未授权访问,目前已在英国核电站、防洪系统等国家关键基础设施应用。(二)Startup Filament安全通信认证案例:将物联网传感器数据直接编码到区块链中,为分散交互和交换提供安全的基础。(三)Blockstack安全域名:将域名基础设施建立在区块链之上,建立域名哈希映射,在每个网络节点处进行域名注册、转移等操作,存储域名所有人的公私钥对并记录解析后的域名,分散了原本集中的域名服务,由于不存在可被黑客攻击或修改的中心化记录,也防止了域名劫持、缓存投毒等传统攻击行为。 ▲区块链系统安全性的核心:共识▲ 作为这个系列文章的结尾,笔者认为,无论从可扩展性、去中心化、还是安全性来说,区块链技术最核心的属性都是“共识”这两个字;因为有了“共识”这个属性,一个系统才得以从“管理者”转变为“组织者”;参与系统搭建的各节点通过共同的努力,来维护一个区块链系统的正常运转,这样即能达到系统自治的目的,也能够很大程度上抵御各种外部攻击,最终保证了系统的整体安全性。 “不可能三角”并不是一个严格经过论证而得出的结论,它只是业内对各公链的实际运行状况作出的一个总结;不可能三角的意义,是在告诉设计者,在进行区块链系统架构设计时,必须根据具体的应用场景做出取舍,而无需过多的花精力研究如何兼顾这三要素。 另外,需要特别强调的是,不可能三角并不是一种限制,它反而在正确的道路上开拓了设计师的思路,让他们在多样化的取舍方案下设计出了各式各样的系统。 最后的最后,衷心的希望这个系列文章能够帮您从更多的角度出发,去认识并理解区块链技术,以及区块链系统能够为我们带来的实际价值。 在之后的文章中,我们会对京东智臻链等区块链具体应用项目进行解读与分享,欢迎大家继续支持哦! 来~插播一条小广告 关于BDS 京东智联云区块链数据服务【BDS】(产品传送门):京东智联云将区块链的链式、非结构化数据通过技术手段进行结构化存储,实时同步到高性能数据库中,并据此推出了一款可视化的区块链数据查询服务(BDS),帮助用户完成简单的条件查询和复杂的SQL原生查询。 产品特点: 涵盖了 BTC、ETH、EOS、LTC、XRP、BCH 等几十个知名区块链项目,自定义了涉及用户、交易、区块等 100+ 独家数据指标,联网即可查询链上实时数据,即开即用,方便快捷。支持标准 SQL查询语句,可轻松实现复杂的查询逻辑;依托京东云的软硬件及架构支持,同时具备查询速度快、查询效率高的特点。支持图形化、可视化界面,通过点击和拖拽的交互方式进行数据查询,可实时生成各类BI图表,定制专属与您的区块链数据仪表盘。产品示例: ...

July 3, 2020 · 1 min · jiezi

区块链服务网络BSN第二次开发者大赛落幕十支队伍脱颖而出

日前,历时3个月的区块链服务网络BSN第二次开发者大赛圆满落幕,经大赛评审委员会严格审查、认真把关,大赛共评选出10份获奖作品,其中中关村科学城城市大脑股份有限公司等多支队伍使用了百度超级链XuperChain作为底层框架。现将比赛结果予以公布,并对获奖者表示祝贺。 本次大赛以“编写基于多种底层框架的智能合约”为主题,参赛作品基于Hyperledger Fabric、FISCO BCOS、CITA、XuperChain中至少一种底层框架编写智能合约。在当前联盟链底层框架多元化发展的时期,每个框架都有自己的特点和优势,主办方BSN(区块链服务网络)希望通过本次大赛,让更多的区块链应用开发者熟悉目前国内各主流联盟链底层框架,并对各框架的开发环境和工具进行掌握,以及理解各框架之间的区别,从而为整个区块链行业的技术交流和融合起到推动作用。 本次大赛由来自不同行业和领域的八位专家评委和两位专家顾问共同组成评审委员会。各位评委和顾问均对区块链智能合约开发均有着深刻理解和丰富经验。各位专家投入了大量时间对参赛作品进行了细致的审阅,经过初审和复审,最终评选出了十份获奖作品。在此,特向所有参与和支持本次大赛评审工作的专家成员表示衷心地感谢。 作为本次活动的协办方,超级链团队在大赛前期为参赛者们精心准备了备赛社群、技术指导、智能合约编写专场培训以及丰富的学习材料等资源扶持,获奖团队将超级链作为底层技术支撑运用到合规审计中,更安全、更智能;开发了基于“联盟链”的微信智能合约;将区块链技术运用于疫情防控中,搭建海淀城市大脑疫情防控平台;更有获奖团队将超级链技术和日常生活紧密联合,设计直播打卡挑战。 大赛组委会将于7月10日完成所有获奖作品的公示,版权和署名权归属于原作者,公示的获奖作品压缩包中会附带原作者联系方式。如果对参赛作品有版权争议,敬请署真实姓名并以书面形式与大赛主办方联系(contest@bsnbase.com),大赛组委会将认真受理,并根据实际情况报评审委员会处理。 以下为本次大赛获奖结果:

July 2, 2020 · 1 min · jiezi

百度超级链参与发起DIDA联盟-助力分布式数字身份发展

数字身份伴随着计算机科学的应用而发展。区块链技术给数字身份的发展带来了新的启示:区块链是数字身份开放协同的基础和“信任根基”,数字身份亦是区块链技术应用最重要、且影响最深远的应用之一。 在此背景下,由飞天诚信、中钞区块链技术研究院、百度等17家单位共同发起的分布式数字身份产业联盟(DID-Alliance,简称DIDA)正式成立。其中,百度将作为组长单位推进联盟各项工作开展。 DIDA联盟致力于分布式数字身份技术探索研究,进一步促进分布式数字身份的行业应用,搭建中国的分布式数字身份网络,实现与国际分布式数字身份接轨,从而推动国内分布式数字身份建设,加快生态融合,助力中国可信网络建设。 百度分布式数字身份探索实践基于多年区块链技术研究和应用落地经验,百度在分布式数字身份领域积极探索实践,并取得显著成果—百度区块链可信数字身份解决方案。该方案符合W3C标准,旨在链接多个行业领域,促进跨机构、多场景的身份认证和数据合作。同时,保证数字身份的绝对可控和绝对拥有,解决企业和用户隐私泄漏难题,是数字身份价值挖掘的重大利器。 · 三个核心优势: 相对于传统的基于PKI(公钥基础设施)的身份体系,百度区块链可信数字身份解决方案具有三大核心优势: 一是去中心化,基于区块链的分布式数字身份,避免了身份数据被单一的中心化权威机构所控制; 二是身份自主可控,基于DPKI(分布式公钥基础设施),每个用户的身份不是由可信第三方控制,而是由个人自主管理自己的身份; 三是可信的数据交换,身份相关数据锚定在区块链上,认证的过程不再需要依赖于提供身份的应用方。 · 广泛的应用场景 在物联网+可信身份领域,以智慧交通为例,通过智能设备、自动驾驶汽车等物联网设备分发DID和可信凭证,一方面利用区块链的边缘计算能力安全高效的解决智慧交通场景下海量高密度智能设备的身份认证问题,另一方面通过可信凭证解决M2M、H2M场景下的数据授权和验证问题。 在『数字人』领域,通过将现实世界的用户或企业实体映射为数字世界的唯一身份ID,打通不同应用之间的账户体系,实现用户身份和数据真正归属于用户,解决以前中心化账户体系的用户账户难管理、用户隐私难保护、用户数据难自控的问题。_例如,在电子履历场景下,企业无需通过繁杂的线下背景调查查验员工简历真伪,而是通过向前雇主申请电子凭证,现雇主可直接在区块链上验证凭证真伪,实现高效、可信的履历验证。_ 在智慧政务领域,以往市民办事需要在各个委办局官网注册信息,身份账户信息各不相通,导致涉及到多个政府部门协同的政务场景中,数据孤岛的问题。基于分布式数字身份,多个政府部门分别给用户放发可验证凭证,相互间通过区块链进行身份和授权验证,即可真正实现一网通办,有效保护市民用户隐私。 Cloud DID小程序数字身份钱包我的身份我做主基于百度区块链可信数字身份解决方案,百度推出业内首个DID(分布式数字身份)智能小程序数字身份钱包。该程序采用分布式数字系统,可信且可控,可以很好保护用户及企业身份隐私。安全便捷,无需下载,扫码使用,连接万物;公私钥管理,自主可控存储。 CloudDID小程序为用户提供一键创建、文档查看、声明管理、秘钥管理等功能。通过用户的百度账号,一键上链,便可生成DID及主/备私钥等数字身份信息。目前,用户可进行企业认证及个人认证,个人认证包括初级和高级实名认证。有了它,无论是可验证声明的申请,还是使用DID登入第三方应用,用户与接入企业的互动都将更加简单。 作为分布式数字身份产业联盟DIDA的共同发起单位之一,百度将与发起单位一道积极开展分布式数字身份技术研究和推广,持续探索分布式数字身份应用场景,赋能更多企业与用户,努力实现身份数据价值及安全的最大化。 百度超级链是100%国产自研的区块链系统,性能卓越、安全可控、行业领先,在存证、司法、版权、医疗、数据协同、溯源、智慧城市等领域推出解决方案并应用,已经与北京互联网法院、重庆市、百信银行等政府、大型企业达成深度合作。 如果你对百度超级链技术和解决方案感兴趣,或者有相关合作意向,欢迎添加百度超级链小助手微信(image-baidu)

July 1, 2020 · 1 min · jiezi

Godwoken-Cell-模型中缺失的那一块

对于开发者来说,cell 编程模型无疑是 Nervos CKB 中最有趣的部分。在这里,我们先对 cell 模型作一个简短的描述: Cell 是通用版的 UTXO一个 cell 是一个包含任意数据和可定制脚本的 UTXO当一笔交易尝试销毁或创建一个 cell,cell 中的脚本将被加载并执行,在执行脚本中返回任何错误,都将导致交易失败。Cell 模型不同于账户模型: 验证而非计算将数据存储在单独的 cell 中,而不是将数据存储在一个账户中当你比较两个模型时,你会发现还有许多其他的不同之处,如果你对该话题感兴趣,可以在 talk.nervos.org 上找到更多关于 cell 模型 VS 账户模型的讨论。 Cell 模型中缺失的那一块UTXO 是一个非常棒的模型,cell 模型继承了它的灵活性。我们(通过 cell 模型)可以发行 UDT(用户自定义代币,类似于 ERC20),存储链上资产,玩石头剪刀布游戏,或者与比特币实现原子交换等。Cell 模型可以实现很多人们最初认为不可能实现的事情。 不幸的是,有一些合约确实很难在 cell 模型上实现: 投票众筹去中心化定价的虚拟机...这些难题合约有一个共性,那就是需要共享状态。 在一个 UTXO 类的模型内,状态是自然分离的。 在 CKB 中,用户可以在独立的 cell 中进行投票。这样我们就需要一个链下的角色收集这些投票的 cells 并计算结果。 当我们只想「看到」结果时,它实现的非常好。但是我们不能在另一个合约中使用投票结果,比如一个基于投票的 DAO 合约。我们很难在一个链上合约中验证统计后的结果。所以我们必须证明每一个投票 cell 的存在,交易时就需要引用每一个投票的 cell,这可能非常昂贵。 再举个例子,我们来看一个众筹合约: 一个 cell 中有所有的众筹代币,用户可以支付 CKB 来获得相应数量的代币。 问题在于,当我们分割这个 cell,众筹 cell 的 outpoint 就被改变了;其他用户必须等到下一个区块才能看到新的 outpoint。所以在一个区块时间内,只有一个用户可以参与众筹,这是不可接受的。 ...

July 1, 2020 · 2 min · jiezi

Fabric20学习进阶链码管理四

4.1 安装链码Fabric-sample工程自带了很多示例链码,位于fabric-samples/chaincode目录中,本文测试安装abstore工程的go版本到org1.peer0和org2.peer0两个节点。 链码安装成功之后,就可以调用链码完成交易操作了。 安装链码的所有操作均需要先进入cli容器,执行如下命令: docker exec -it cli bash4.1.1 链码打包链码打包执行如下命令: peer lifecycle chaincode package abs.tar.gz --path github.com/hyperledger/fabric-samples/chaincode/abstore/go/ --lang golang --label abs_1abs.tar.gz:打包合约包文件名 --path:智能合约路径 --lang:智能合约语言,支持golang、Java、node --label:智能合约标签,起描述作用 执行成功之后,当前目录下将生成文件abs.tar.gz。 4.1.2 链码安装本节将把上述打包的代码安装到org1.peer0和org2.peer0两个节点上,因此需要切换环境变量。 通过命令查看当前使用的是org1.peer0的环境。 执行链码安装命令,则可以把上述打包的合约代码安装到org1.peer0节点上。 peer lifecycle chaincode install abs.tar.gz执行结果如下: 查看安装结果,执行命令: peer lifecycle chaincode queryinstalled 接下来为org2.peer0安装智能合约代码,执行如下命令切换环境变量: source scripts/utils.shsetGlobals 0 2查看切换结果,如下图所示: 执行链码安装命令,则可以把上述打包的合约代码安装到org2.peer0节点上。 peer lifecycle chaincode install abs.tar.gz4.1.3 链码认证链码安装完成之后需要被组织认证,认证通过之后才能将链码提交并运行,该过程又可以称为合约定义,定义了合约的名称、版本、序列号,后续合约升级即修改版本或序列号,重新定义合约。 执行如下代码,完成当前节点所在组织对上述安装链码的认证。 peer lifecycle chaincode approveformyorg --tls true --cafile $ORDERER_CA --channelID mychannel --name abs --version 1 --init-required --package-id abs_1:90786e8a73dbee43adfebeb316407387173f598a5f7e3cef7ddc754fe25e2ad6 --sequence 1 --waitForEvent参照上节的方法切换环境,实现org2组织对上述安装链码的认证。 ...

July 1, 2020 · 3 min · jiezi

Diviner确定性测试的新尝试

一直以来我对确定性执行的问题就很感兴趣。我们在多线程模型上花了很大时间。我们大部分人都应该遇到过一些只在一定概率范围内发生的 bug。即使你已经准备好了一个修复程序,你也不能确定它是不是还会再次发生,你所能做的不过是测试,测试,再测试,并希望这样的问题不会再次出现。 我们可以确定地进行调试并拍着胸脯说这是 100% 确定的,这是每一位工程师的梦想,而这个问题已经被解决了。 在过去的几个月里,我一直在学习 TLA+,我现在坚信 TLA+ 是构建复杂的、多线程的、高性能的、(也可能是分布式的)系统的宝贵工具。在为我所有的项目写下第一行代码之前,我的确更喜欢在 TLA+ 中先构建一个设计。但 TLA+ 只能帮助你思考你的设计,并修复其中的设计缺陷。我们还需要考虑到另一面:实际执行该系统。 我们可以有一个已经经过 TLA+ 验证的设计,但如果你写的代码是比较容易受到某些并发性 bugs 的攻击的,而这些 bugs 又是有一定概率会发生的,那这时候该怎么办呢? 当然,也有一些在解决方案上的尝试,比如 rr。但在这个领域还有一个真正的精华,那就是 FoundationDB。如果你不是很了解 FoundationDB,特别是不清楚它们是如何进行测试的,我强烈推荐以下两个视频: https://www.youtube.com/watch...https://www.youtube.com/watch...它们所做的,是在 C++ 之上构建一个 actor 模型,然后使用 actor 模型来编写完整的数据库逻辑。因此,它们可以将基于 actor 的代码完全注入到一个确定性的测试框架中,以测试各种并发性问题。 老实说,我之前就看过这些视频,但那时候比较早,我对他们的解决方案印象并不是很深刻,原因在于:他们的模拟框架是在一个单线程中连续运行的,这与真正的设置相差甚远,在真正的设置中,你是有多个线程在共同运行的。因此你从模拟中得到的性能数据没什么意义。 幸运的是,我有一个兴趣爱好,就是成为电脑学的考古专家:我会时不时地把一些相对较老的视频翻出来,重新观看一遍,以获得新的理解。这是一个过去的经验,在这个行业有很多_新_的发明,都只是新瓶装旧酒。当我最近翻出 FoundationDB 的视频并再次观看时,我发现我之前犯了一个非常非常严重的错误。这确实是一件大事。 测试与基准测试是不同的这里的关键是,测试与基准测试是不同的。测试的目的绝不是获得实际的运行时间,而是探索程序可以采用的所有路径。就像 TLA+ 会探索你设计中所有的状态一样,如果一个模拟可以探索一段代码可以采用的所有的执行路径,那么就已经足够了。使用 actor 模型重新组织的代码,你的逻辑会被自然地分割成很多个小的原子块,只要你能够枚举出一个程序可以有效执行的所有不同的执行顺序,那么就算是用一个单线程的测试框架也可以探索出多线程解决方案中可能导致的所有路径! 实际上,在一个模拟环境中还有很多好处:当你的项目发布时,人们可能开始使用它这意味着他们会尝试在许多不同的机器上运行你的代码。然后,这些机器将会探索你的程序可能导致的不同的执行状态,在某种程度上,我们可以认为所有这些机器都在为你的程序进行测试,寻找 bugs。为了保证你项目的质量,在理想的情况下,你应该在所有这些不同的机器之前找到新的 bugs。现在,问题就变成了列举出所有可能的状态和寻找 bugs 方面的竞赛。对于一些流行的产品,用户运行的机器数量很容易超过项目维护者所拥有的机器数量。问题来了:如何才能在使用极少的机器的情况下,找到更多的 bugs? 这个问题的答案,类似于 FoundationDB 解决方案中的模拟设计:首先,我们在一个 actor 模型的框架下组织逻辑,因此我们可以使用一个单线程模拟测试执行器来运行测试;然后,我们模拟所有和环境相关的代码,如计时器、网络 IOs、文件 IOs 等等。通过这种方式,我们可以将我们项目的核心,也就是大多数 bug 发生的地方,提炼成一段单线程的,连续的代码,有以下好处: 当一个测试在一个单线程的环境中运行时,一个典型的多核机器就可以用来同时运行多个测试;当所有的 IOs 都被模拟出来之后,我们可以在测试中运行更少的代码(比如,我们可以跳过整个 TCP/IP 栈),从而更快地进行测试;有了模拟的 IOs,我们可以更容易地模拟异常情况,比如网络堵塞;所有这些好处都意味着模拟方案可以允许我们在更少的时间内对代码进行更多的测试,让我们有机会在寻找 bugs 的竞速游戏中取得胜利。在 FoundationDB 的示例中,他们估计在过去的几年时间里,通过这种设计,他们已经积累了相当于一万亿 CPU-hours 的模拟压力测试。直到今天为止,我还没有看到一个更高级的测试框架设计。 ...

June 30, 2020 · 2 min · jiezi

区块链共识机制介绍

作者:qinyutong、chengyueqiang 共识机制(Consensus Mechanism)是区块链事务达成分布式共识的算法,随着区块链这一技术不断被推广,共识机制作为区块链的核心,也愈加受到人们的关注。共识机制在保护数据的一致性方面具有重要作用。本文选取了 8 种常用的共识机制,根据机制的原理、运行过程中的角色、算法流程以及优缺点等方面,对工作量证明、权益证明、容量证明等机制进行详细介绍。同时,文章也对相似的机制进行对比分析。从而加深人们对共识机制的了解,加速区块链技术的发展。 1   引言 区块链是比特币的底层技术,类似于数据库账本,而共识机制是去中心化的分布式账本中的规则核心,决定了区块链的安全性、可扩展性和去中心化程度等许多重要特性。 共识机制是指以去中心化的方式就网络的状态达成统一协议的过程。也被称为共识算法,有助于验证和验证信息被添加到分类账簿,确保只有真实的事务记录在区块链上 [12]。因此,共识机制负责安全地更新分布式网络中的数据状态。已经硬编码到协议中的规则确保在全球计算机网络中总是能找到唯一的数据来源并达成一致。这些规则保护整个网络,实现无需信任的网络,而无需中央数据或中介。 共识机制是决定按照哪一个参与节点记账,和确保交易安全完成的重要手段。[8] 共识机制需要平衡效率和安全的关系,安全措施越复杂,相应的处理时间越慢。而想要提高处理速度,简化安全措施的复杂度是非常重要的一步。 共识机制同时满足一致性和有效性。一致性是指所有诚实节点保存的区块链前缀部分完全相同,而有效性是指由某诚实节点发布的信息终将被其他所有诚实节点记录在自己的区块中 [11]。共识机制确保区块链是容错的,因此是可靠和一致的。与中心化系统不同,用户不必信任系统中的任何人,区块链共识机制中嵌入的协议规则可以确保只有有效和真实的交易才可以被记在公共透明的账簿中,嵌入网络的协议规则保证了公共分类帐的状态总是随着大众的共识变换而更新。 区块链的去中心化的一个重要优势是分配授权,任何人都能在同一个基础上参与进来。而共识机制可以确保区块链不存在区别对待,从而达到公平分配。由于公共区块链具有开源这一特性,使任何人都可以监督并验证底层源代码对网络中的所有参与者是否公平 [7]。 共识机制可以通过激励好的行为,在某些情况下,惩罚坏的行为者来实现这一点。例如在工作量证明这一机制中,通过奖励比特币给矿工这一方式,奖励他们每一笔交易的担保和验证。任何运算和安全维护都需要大量的算力和钱财,而共识机制可以使这些资源将更好地用于为系统工作,而不是针对系统。 常见的共识机制有:PoW(工作量证明)、PoS(权益证明)、DPoS(委任权益证明)、PBFT(实用拜占庭容错算法)、POOL(验证池)等。 2   PoW:Proof of Work(工作量证明) 2008 年,在比特币白皮书(Bitcoinswhitepaper)上,PoW 第一次得到重视。PoW 是依赖机器进行数学运算(与或运算,计算出一个满足规则的随机数)来获得本次记账权 [1],向全网其他节点发送本次需要记录的数据,由其他节点验证后,达成共识后对数据进行存储。PoW 最早是一个经济学名词,它是指系统为达到某一目标而设置的度量方法。简单理解就是一份证明 [3],用来确认你做过一定量的工作。监测工作的整个过程通常是极为低效的,而通过对工作的结果进行认证来证明完成了相应的工作量,则是一种非常高效的方式。 举例说明,10+?=12,谁先解出来答案,谁就收获。 一句话概括:干的越多,收的越多(有且仅有实际劳动,才能获得成果) 图 1: PoW 的工作原理图示 2.1   名词解释 哈希函数 Hash 哈希函数是一个单向加密函数,哈希算法能够获取任意数量的数据,并返回一个固定长度的字符串 [6],该字符串对于特定的输入是完全唯一的。 Nonce  一个只能使用一次的随机数。 矿工 Miners  加密货币网络中独立的交易处理器,其目标是验证交易。通常也被称作Full Node或Node。 2.2   角色 工作者 需要完成的工作必须有一定的量,这个量由工作验证者给出; 工作者无法找到很快完成工作的办法; 工作者无法自己” 创造工作”,必须由验证者发布工作。 验证者 可以迅速的检验工作量是否达标。 2.3   优点 1. 算法简单,容易实现。 2. 节点间无需交换额外的信息即可达成共识(节点间自由进出)。 3. 破坏系统需要投入极大的成本。 ...

June 28, 2020 · 6 min · jiezi

区块链系列教程之比特币中的挖矿

简介我们知道比特币就是挖矿产生的,那么在比特币网络中,挖矿有什么特点呢?怎么分配挖矿收入呢?在这篇文章中你都能找到答案。 比特币的节点构造上篇文章我们提到了,比特币是一个P2P网络,P2P网络中就有很多个节点,从P2P的定义来看,各个节点的地位是相同的,其实不然。比特币网络的节点各有作用。 我们先来看一个总体的图,比特币节点总共有4种类型: 这四种类型分别是钱包,挖矿节点,全节点,和网络路由节点。 不同的角色组合成了一个庞大的比特币网络。根据功能的不同,不同的角色可能需要不同的类型。 上面我们介绍了7个常见的节点。 Bitcoin Core 这个是你在官方下载的bitcoin软件,它包含了4中类型的功能。Full Block Chain Node,这个节点包含了所有的比特币区块链历史的信息,叫做全节点,全节点主要用来做历史交易的验证。Solo Miner,这个是独立的挖矿节点。SPV wallet, 这个是我们之前介绍的轻量级的钱包。Pool Protocol Servers, 这个是矿池连接比特币网络的网关。注意,比特网网络除了自身的P2P网络协议之外,还有一个Stratum协议,Stratum协议被应用于挖矿、以及轻量级或移动端比特币钱包之中。Mining Nodes,这是连接到比特币矿池的矿机节点。SPV stratum wallet, 使用Stratum协议的轻量级钱包。这些节点组合在一起,构成了庞大的比特币网络。 挖矿挖矿是增加比特币货币供应的一个过程。挖矿同时还保护着比特币系统的安全,防止欺诈交易,避免“双重支付”,“双重支付”是指多次花费同一笔比特币。矿工们通过为比特币网络提供算力来换取获得比特币奖励的机会。 每10分钟就会有一个新的区块被“挖掘”出来,每个区块里包含着从上一个区块产生到目前这段时间内 发生的所有交易,这些交易被依次添加到区块链中 矿工们在挖矿过程中会得到两种类型的奖励:创建新区块的新币奖励,以及区块中所含交易的交易费。为了得到这些奖励,矿工们争相完成一种基于加密哈希 算法的数学难题,这些难题的答案包括在新区块中,作为矿工的计算工作量的证明,被称为”“工作量证明”。该算法的竞争的机制以及获胜者有权在区块链上进行 交易记录的机制,这二者比特币安全的基石。 新比特币的生成过程被称为挖矿是因为它的奖励机制被设计为速度递减模式,类似于贵重金属的挖矿过程。比特币的货币是通过挖矿发行的,类似于中央银行 通过印刷银行纸币来发行货币。 矿工通过创造一个新区块得到的比特币数量大约每四年(或准确说是每隔210,000个块)减少一半。开始时为2009年1月 每个区块奖励50个比特币,然后到2012年11月减半为每个区块奖励25个比特币。之后将在2016年的某个时刻再次减半为每个新区块奖励12.5个比 特币。基于这个公式,比特币挖矿奖励以指数方式递减,直到2140年。届时所有的比特币(20,999,999,980)全部发行完毕。 换句话说在 2140年之后,不会再有新的比特币产生。(通货紧缩货币) 挖矿节点在比特币网络中,一些节点被称为专业节点矿工。 与其他任一完整节点相同,这些节点在比特币网络中进行接收和传播未确认交易记录。然而,这些节点也能够在新区块中整合这些交易记录。 矿工间的竞争以新区块的传播而 结束,如同宣布谁是最后的赢家。对于矿工们来说,获得一个新区块意味着某个参与者赢了,而他们则输了这场竞争。然而,一轮竞争的结束也代表着下一轮竞争的 开始。新区块并不仅仅是象征着竞赛结束的方格旗;它也是下一个区块竞赛的发令枪。 创币交易区块中的第一笔交易是笔特殊交易,称为创币交易或者coinbase交易。 这个交易是由挖矿节点构造并用来奖励矿工们所做的贡献的。挖矿节点会创建“向XX的地址支付25.09094928个比特币”这样一个交易,把生成交易的奖励发送到自己的钱包。矿工挖出区块获得的奖励金额 是coinbase奖励(25个全新的比特币)和区块中全部交易矿工费的总和。 与常规交易不同,创币交易没有输入,不消耗UTXO。它只包含一个被称作coinbase的输入,仅仅用来创建新的比特币。 创币交易有一个输出,支付到这个矿工的比特币地址。 矿池收入分配根据矿池的收入分配不同,可以分为两种。 PPLNS全称Pay Per Last N Shares,意思是说“根据过去的N个股份来支付收益”,这意味着,所有的矿工一旦发现了一个区块,大家将根据每个人自己贡献的股份数量占比来分配区块中的货币。 PPSPPS矿池(类似于打工模式)PPS全称为Pay Per Share。为了解决PPLNS那种有时候收益很高,有时候没有收益的情况,PPS采用了新的算法。PPS根据你的算力在矿池中的占比,并估算了矿池每天可以获得的矿产,给你每天基本固定的收益。 挖矿方向从2009年开始,原来普通的计算机就可以“挖矿”,但是到了2014年,所有挖矿的计算机也变成由专业设计芯片公司为比特币度身定制的“矿机”。 随着参与挖矿的计算机变得越来越昂贵,比特币生产的成本也水涨船高。截止到2014年10月,每个比特币生产的成本已经达到接近3000元人民币。这个生产包括计算机的生产制造成本,生产过程中产生的电费,以及人员费用和场地费用。也就是说在2016年年底之前,因为每天生产3600个比特币,每天所投入的资金就达到1000万元人民币。并且随着竞争越来越激烈,这个成本还在处于上升阶段。 算力浪费那么挖矿花了这么多电费到底做了什么事情呢?无他,就是算一个hash值而已。 所以这造成严重的浪费。当然也有人想出了一些解决办法,使用这些算力去做些有用的事情: Sunny King的素数币质数币(PrimeCoin代码XPM)寻找质数格雷德币(GridCoin代码GRC)分布式科学计算算力调整注意比特币的挖矿难点并不是一定增加的。它是动态调整的。 如果在上个周期(2016个区块)中平均区块产生时间大于10分钟,也就是全网算力下降的情况下,则在当前周期的难度就会下降,使得区块产生时间加快。不过目前为止好像还没有出现过全网算力下降的情况,难度是一直增加。 由于是基于事后统计,所以难度的变化会滞后于全网算力的变化1~2个周期。如果全网算力增加,则在这1~2个周期中挖矿速度加快,则挖矿收益增多;反之,收益减少。但是从长期来看还是保持平衡。 ...

June 26, 2020 · 1 min · jiezi

区块链系列教程之比特币中的网络和区块链

简介比特币的底层就是区块链技术,区块链也是因为比特币而广为人知的。和其他的区块链技术相比,比特币的区块链有什么特征呢?作为去区块链的鼻祖,又有什么与众不同的特性呢?快来跟我们一起看看吧。 比特币的网络比特币使用的是P2P(peer-to-peer)网络,此P2P非彼P2P,这里是点对点的网络架构,而不是人对人的借钱模式。 P2P是指位于同一网络中的每台计算机都彼此对等,各个节点共同提供网络服务,不存在任何“特殊”节点。每个网络节点以“扁平(flat)”的拓扑结构相互连通。在P2P网络中不存在任何服务端(server)、中央化的服务、以及层级结构。 传统的网络结构是client-server的模式,所有的client都是和server交互获取信息, 只要server挂掉了,client也就没有用了。 而在P2P网络中,没有server的概念,每个节点可以作为一个server。对比起来P2P网络在稳定性方面要比C-S架构的系统要稳定得多。 网络发现与同步既然是P2P网络,那么问题来了,这个P2P网络是怎么建立起来的呢?节点之间是怎么发现的呢? 有做过P2P下载的同学应该都听说过种子的概念,这个种子里面保存了其他活跃的节点的地址。通过下载种子就可以连接对应的节点。 而每个节点又保存了最近连接或者活跃的节点,这样就形成了庞大的P2P网络。 同样的,比特币的P2P网络也是这样的。 新节点是如何发现网络中的对等节点的呢?虽然比特币网络中没有特殊节点,但是客户端会维持一个列表,那里列出了那些长期稳定运行的节点。这样的节点被称为“种子节点(seed nodes)” 节点必须持续进行两项工作:在失去已有连接时发现新节点,并在其他节点启动时为其提供帮助。 SPV节点我们之前介绍了,在比特币的世界里既没有账户,也没有余额,只有分散到区块链里的UTXO(Unspent Transaction Outputs)。 那么如果想要验证交易的话,需要从历史的交易中查找所有的和该交易有关的交易,从而进行完整,全面的验证。 这样做的问题就是,如果下载所有的历史记录,那么需要上百G的硬盘空间,这对于手机或者其他轻量级的客户端是无法想象的。 于是SPV出现了。SPV的全称是Simplified payment verification,叫做简单认证支付。 SPV保存的不是整个区块链,而是区块链的头部,因为每个区块链头只有80字节,所以即使把所有的区块头都下载保存起来也不会很大。 区块链头区块头由三组区块元数据组成。首先是一组引用父区块哈希值的数据,这组元数据用于将该区块与区块链中前一区块相连接。 第二组元数据,即难度、时间戳和nonce,与挖矿竞争相关。 第三组元数据是merkle树根(一种用来有效地总结区块中所有交易的数据结构)。 Nonce、难度目标和时间戳会用于挖矿过程,Merkle根用来索引和组织该区块所有的交易信息。 上图是一个区块链头组成的链。 Merkle TreeMerkle Tree,是一种树(数据结构中所说的树),网上大都称为Merkle Hash Tree,这是因为 它所构造的Merkle Tree的所有节点都是Hash值。Merkle Tree具有以下特点: 它是一种树,可以是二叉树,也可以多叉树,无论是几叉树,它都具有树结构的所有特点;Merkle树的叶子节点上的value,是由你指定的,这主要看你的设计了,如Merkle Hash Tree会将数据的Hash值作为叶子节点的值;非叶子节点的value是根据它下面所有的叶子节点值,然后按照一定的算法计算而得出的。如Merkle Hash Tree的非叶子节点value的计算方法是将该节点的所有子节点进行组合,然后对组合结果进行hash计算所得出的hash value。 有了Merkle Tree,我们只需要知道和要验证的交易相关的其他Merkle Tree中的信息,就可以计算出整个Merkle Tree的值,这样就可以直接使用头部信息进行验证了。这就是SPV的原理。 比特币中的区块链区块链是由包含交易信息的区块从后向前有序链接起来的数据结构。它可以被存储为flat file(一种包含没有相对关系记录的文件),或是存储在一个简单数据库中。 比特币核心客户端使用Google的LevelDB数据库存储区块链元数据。 它由一个包含元数据的区块头和紧跟其后的构成区块主体的一长串交易组成。区块头是80字节,而平均每个交易至少是250字节,而且平均每个区块至少包含超过500个交易。 区块标识符那怎么表示一个区块呢?我们使用区块标志符。 区块主标识符是它的加密哈希值,一个通过SHA256算法对区块头进行二次哈希计算而得到的数字指纹。产生的32字节哈希值被称为区块哈希值,但是更准确的名称是:区块头哈希值,因为只有区块头被用于计算。 第二种识别区块的方式是通过该区块在区块链中的位置,即“区块高度(block height)”。第一个区块,其区块高度为0和区块哈希值不同的是,区块高度并不是唯一的标识符。虽然一个单一的区块总是会有一个明确的、固定的区块高度,但反过来却并不成立,一个区块高度并不总是识别一个单一的区块。两个或两个以上的区块可能有相同的区块高度,在区块链里争夺同一位置。 创世区块区块链里的第一个区块创建于2009年,被称为创世区块。它是区块链里面所有区块的共同祖先,这意味着你从任一区块,循链向后回溯,最终都将到达创世区块。 因为创世区块被编入到比特币客户端软件里,所以每一个节点都始于至少包含一个区块的区块链,这能确保创世区块不会被改变。每一个节点都“知道”创世区块的哈希值、结构、被创建的时间和里面的一个交易。因此,每个节点都把该区块作为区块链的首区块,从而构建了一个安全的、可信的区块链的根。 创世区块的哈希值为:0000000000 19d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f 创世区块包含一个隐藏的信息。在其Coinbase交易的输入中包含这样一句话“The Times 03/Jan/2009 Chancellor on brink of second bailout forbanks.”这句话是泰晤士报当天的头版文章标题,引用这句话,既是对该区块产生时间的说明,也可视为半开玩笑地提醒人们一个独立的货币制度的重要性,同时告诉人们随着比特币的发展,一场前所未有的世界性货币革命将要发生。该消息是由比特币的创立者中本聪嵌入创世区块中。 ...

June 22, 2020 · 1 min · jiezi

Fabric20学习进阶镜像部署网络二

2.1 下载Fabric源码创建源码存放的目录,本文将源码存放在/usr/local/src/hyperleger目录中,如读者机器上没有该目录需要执行以下命令手动创建: sudo mkdir -p /usr/local/src/hyperleger进入到该目录,使用git从github上下载fabric的源码,并切换到release-2.0的分支。 cd /usr/local/src/hyperlegersudo git clone https://github.com/hyperledger/fabric.gitsudo git checkout release-2.0在我们刚才下载的源码中,有一个非常重要的脚本bootstrap.sh,它能帮助我们完成后面的下载工作。 接下来的下载工作有两种方式实现: (1) 运行bootstrap.sh脚本实现一键下载,但是这种方式由于网络原因导致执行效率不高,可以使用nohup和&不挂断的运行该脚本; (2) 手动完成后续下载工作,该方式更灵活,而且便于读者了解搭建Fabric平台必要的组件信息。 本节将采用第2种方式完成后面的组件下载工作。 2.2 下载Fabric的docker镜像本文将以docker的形式启动fabric平台,因此这里需要下载fabric网络各组件的docker镜像。 Fabric的docker镜像下载我们这里仍然使用bootstrap.sh脚本实现(如果对docker操作熟悉的同学也可以直接使用docker命令下载),通过脚本参数设置使该脚本只下载Fabric的docker镜像。执行如下命令: cd /usr/local/src/hyperleger/fabric/scriptssudo ./bootstrap.sh 2.0.0 -b -s查看安装结果,执行命令: docker images该下载过程即使设置了阿里云的镜像加速也需要消耗一些时长,镜像下载成功则显示下图中的镜像列表信息。 2.3 下载Fabric示例代码Fabric的示例代码包含:测试链码、first-network和test-network两个测试网络及其对应的配置文件和启动脚本,非常具有参考意义。本节将启动first-network网络。 Fabric的示例代码使用git命令下载。 cd /usr/local/src/hyperleger/fabric/scriptssudo git clone https://github.com/hyperledger/fabric-samples.git# 切换版本sudo git checkout v2.0.0下载成功后,scripts目录下将生成一个fabric-samples目录,如下图所示: 2.4 下载Fabric部署所需的二进制文件本节所需的二进制文件实际是可以通过编译fabric源码获得,bootstrap.sh则是直接从github下载压缩包,无论是编译还是从github下载,失败率较高。这里我将提供百度网盘地址,供读者下载,更靠谱一些。 地址:https://pan.baidu.com/s/1pX8Y...,提取码:ba2k 把下载的文件解压到/usr/local/src/hyperleger/fabric/scripts/fabric-samples目录中,执行命令: tar -zxvf hyperledger-fabric-linux-amd64-2.0.0.tar.gz -C /usr/local/src/hyperleger/fabric/scripts/fabric-samples/解压成功后fabric-samples目录将生成bin和config两个目录,如下图所示: bin目录中包含7个可执行程序,当fabric网络启动时将被调用。 config目录包含3个配置文件,用于对fabric网络的配置。 2.5 下载Fabric-ca二进制文件本节所需的二进制文件实际是可以通过编译fabric源码获得,bootstrap.sh则是直接从github下载压缩包,无论是编译还是从github下载,失败率较高。这里我将提供百度网盘地址,供读者下载,更靠谱一些。 地址:https://pan.baidu.com/s/1pX8Y...,提取码:ba2k 把下载的文件解压到/usr/local/src/hyperleger/fabric/scripts/fabric-samples目录中,执行命令: tar -zxvf hyperledger-fabric-ca-linux-amd64-1.4.6.tar.gz -C /usr/local/src/hyperleger/fabric/scripts/fabric-samples/解压成功后bin目录中将增加2个可执行程序,如下图所示: ...

June 20, 2020 · 1 min · jiezi

区块链系列教程之比特币的钱包与交易

[toc] 简介钱包在比特币中是做什么的呢?比特币的交易又有什么特点呢?怎么才能伪造比特币的交易呢?今天和大家一起学习一下比特币中的钱包和交易。 比特币密码学的基础之前我们提到过比特币使用的并不是什么新技术,只是对于老的技术比如:P2P网络,分布式系统,密码学,共识算法的重新而又巧妙的应用。 在钱包和交易生成验证的过程中,都需要使用到密码学的计算。这里我们先介绍一下比特币中会使用到的几种密码学技术。 更多精彩内容且看: 区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新Spring Boot 2.X系列教程:七天从无到有掌握Spring Boot-持续更新Spring 5.X系列教程:满足你对Spring5的一切想象-持续更新java程序员从小工到专家成神之路(2020版)-持续更新中,附详细文章教程单向散列函数(hash算法)在介绍单向散列函数之前,我们先了解一下什么情况下需要使用到单向散列函数。 如果你需要从国外的网站上下载一个软件,但是因为种种原因,国外的网络太慢了,下载几个G的数据几乎是不可能的。刚好国内有镜像网站,可以从国内下载数据。但是如何保证国内的镜像不是被篡改过后的呢?这个时候就需要单向散列函数了。一般来说网站会提供MD5或者SHA的值作为验证值。 单向散列函数有一个输入和输出。输入称为消息,输出称为散列值。 散列值的长度跟消息的长度无关,不论多少大小的长度的消息,都会计算出固定长度的散列值。 hash算法有下面几个特点: 能够根据任意长度的消息计算出固定长度的散列值。计算速度要快。消息不同,散列值也不同。这就意味着,如果仅仅是一点点的变动都会引起整个散列值的巨大变化。 因为散列值的大小是固定的,所以有可能会出现不同的消息产生相同散列值的情况。这种情况叫做碰撞。 难以发现碰撞的性质被称为抗碰撞性。当给定某条消息的散列值时,必须保证很难找到和该消息具有相同散列值的另一条消息。 单向散列函数必须具有单向性。所谓单向性是指无法通过散列值来反推出消息的性质。比特币使用的散列算法是SHA256,他是安全散列算法SHA(Secure Hash Algorithm)系列算法的一种(另外还有SHA-1、SHA-224、SHA-384 和 SHA-512 等变体),SHA是美国国家安全局 (NSA) 设计,美国国家标准与技术研究院(NIST) 发布的,主要适用于数字签名标准(DigitalSignature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。 RIPEMD(RACE Integrity Primitives Evaluation Message Digest,RACE原始完整性校验消息摘要),是Hans Dobbertin等3人在md4,md5的基础上,于1996年提出来的。 非对称加密算法非对称加密算法也叫公钥密码算法,通过生成的公私钥来对明文密文进行加密解密。 非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 扩展阅读:同态加密同态加密是一种加密形式,它允许人们对密文进行特定的代数运算得到仍然是加密的结果,将其解密所得到的结果与对明文进行同样的运算结果一样。换言之,这项技术令人们可以在加密的数据中进行诸如检索、比较等操作,得出正确的结果,而在整个处理过程中无需对数据进行解密。其意义在于,真正从根本上解决将数据及其操作委托给第三方时的保密问题,例如对于各种云计算的应用。 密钥,地址和钱包比特币的所有权是通过数字密钥、比特币地址和数字签名来确立的。数字密钥实际上并不是存储在网络中,而是由用户生成并存储在一个文件或简单的数据库 中,称为钱包。存储在用户钱包中的数字密钥完全独立于比特币协议,可由用户的钱包软件生成并管理,而无需区块链或网络连接。密钥实现了比特币的许多有趣特性,包括去中心化信任和控制、所有权认证和基于密码学证明的安全模型。 比特币钱包只包含私钥而不是比特币。每一个用户有一个包含多个私钥的钱包。钱包中包含成对的私钥和公钥。用户用这些私钥来签名交易,从而证明它们拥有交易的输出(也就是其中的比特币)。比特币是以交易输出的形式来储存在区块链中(通常记为vout或txout)。 如果钱包只包含私钥,那么钱包地址是什么呢?钱包地址是从公钥的hash值的出来的,如下图所示: 首先使用随机数发生器生成一个『私钥』。一般来说这是一个256bits的数,拥有了这串数字就可以对相应『钱包地址』中的比特币进行操作,所以必须被安全地保存起来。『私钥』经过SECP256K1算法处理生成了『公钥』。SECP256K1是一种椭圆曲线算法,通过一个已知『私钥』时可以算得『公钥』,而『公钥』已知时却无法反向计算出『私钥』。这是保障比特币安全的算法基础。同SHA256一样,RIPEMD160也是一种Hash算法,由『公钥』可以计算得到『公钥哈希』,而反过来是行不通的。将一个字节的地址版本号连接到『公钥哈希』头部(对于比特币网络的pubkey地址,这一字节为“0”),然后对其进行两次SHA256运算,将结果的前4字节作为『公钥哈希』的校验值,连接在其尾部。将上一步结果使用BASE58进行编码(比特币定制版本),就得到了『钱包地址』。 比如,1A1zP1eP5QGefi2DMPTfTL5TTmv7DivfNa。所以私钥,公钥和钱包地址的关系如下图所示: 大家看到钱包地址1A1zP1eP5QGefi2DMPTfTL5TTmv7DivfNa有什么想法呢? 肯定有人在想,这么一大长串字母和数字实在是太不好记忆了。能不能生产一个比较好记的钱包地址呢? 比如MyNameIsHanMeiMei....这样开头的地址呢? 当然可以,这叫做靓号地址,只不过需要大量的算力才行。 比特币中的交易简单来说,交易就是告知全网:比特币的持有者已授权把比特币转帐给其他人。而新持有者能够再次授权,转移给该比特币所有权链中的其他人。 注意, 在比特币的世界里既没有账户,也没有余额,只有分散到区块链里的UTXO(Unspent Transaction Outputs)。怎么理解这个UTXO呢?没有账户也没有余额,那么钱包里面的金额是怎么计算出来的呢? 别急,让我们一一道来。 话说,在比特币中,比特币钱包间的转账是通过交易(Transaction)实现的。 我们看一个标准的交易流程。 那么问题来了,世界上第一个比特币是哪里来的呢? 答,是挖矿来的。好了,我们的001交易表示的就是一个挖矿的过程,在这个交易中,输入就是挖矿,输出编号1,BTC数目是50,目的地址是A,表示这50个BTC给A了。 接下来,A想发25个BTC给B,怎么构造这个交易呢? ...

June 20, 2020 · 1 min · jiezi

百度超级链XuperChainV37事件订阅功能-助你实现多维度事件监听及时获取链上最新动态

百度超级链学院·公开课XuperChainV3.7系列功能详解最后一期【事件订阅】将在618压轴来袭! 想要监听账户的最新交易情况,但却苦于要轮询所有上链区块并遍历所有内容? 仍然不知如何获取链上区块,实时查询某个交易的上链状态? 本期公开课深度解读【事件订阅】功能,手把手带你实现多维度事件监听,教你及时获取链上最新动态。 【主讲嘉宾】:王玉操 百度超级链资深研发工程师 【课程简介】:超级链事件机制简介,支持的事件监听类型以及事件监听使用方法 【课程时间】:6月18日(本周四) 20:00 扫码预约直播

June 18, 2020 · 1 min · jiezi

开发者大赛-aelf轻型DApp开发训练大赛结果公布

6月9日,由aelf基金会发起的轻型DApp开发训练大赛圆满收官。本次训练赛基于aelf公开测试网展开,主要针对轻型DApp,旨在激励更多的开发者参与到aelf生态中来。 活动于4月21日上线后,aelf团队收到一批有志于深度参与aelf生态发展的个人开发者及开发团队的报名信息。此次训练赛基于aelf DAO进行发布,评委由aelf技术团队和生态建设团队成员共同担任。6月8日,大赛获奖作品提前在saelf governed community telegram群内进行了公示。 经过大赛评委团的集中评选,仔细考量作品完成度、场景创新性、用户体验感和技术框架,最终综合四项评分标准,选出参赛作品“实现电子证据存储DApp”获得优秀设计奖,并为参赛作者提供12000个ELF的获胜奖励,现将获奖作品内容公布如下。 作品名称: 实现电子证据存储DApp 创作目的: 提高司法诉讼中认定电子证据真实性的效率,降低当事人的维权成本。 面向用户: 需要固定电子证据作为诉讼证据的用户需要对艺术作品声明原创的用户需要审查电子证据的司法部门产品逻辑: 存证需求:对于第一类用户,需要返回证据原文件 ;对于第二类用户,需要借助区块链时间戳标识作品的完结时间,借助哈希验证标识作品的内容,最后仅需返回哈希验证的结果。验证需求:对于第一类用户,输入标识码,返回原文件;对于第二类用户,输入标识码和原文件,返回哈希比较的结果。pr地址:https://github.com/DAO-Testne... 代码地址:https://github.com/hdm926/ael... aelf基金会举办此次训练赛主要是为了充分确保aelf主网启动后在性能、链上治理、用户体验等方面可以为开发者提供一个稳定、可靠、易用的DApp开发、部署、运行环境,同时也可以探索区块链技术在经济社会治理中的应用场景。未来,aelf也将秉持“开源、开放”的理念,持续践行促进区块链技术与实体经济融合的发展初心。

June 9, 2020 · 1 min · jiezi

为什么自定义密码学原语对在区块链上开发至关重要

区块链是一个基于密码学、经济学和网络科学的新技术。对于一般的大众来说,其中的密码学并不是一门容易亲近的学科,甚至是上面提到的三个学科中,大家觉得最有距离感的学科。但身处区块链圈的朋友们一定会常常听到「区块链是一部 Trust Machine」这样的说法,或者有人会说在区块链的世界里是「In Math we Trust」,可见密码学对于区块链技术来说是根基一样的重要存在。 好了,那么问题来了: 区块链究竟在哪些地方用到密码学呢?密码学为什么对区块链技术至关重要?区块链的哪些地方用到了密码学?首先,如果你是一个区块链用户,可能在你房间里的某个角落,会有一张纸条,上面抄着十二个不知道怎么来的单词,有的人还有很多张,甚至有些大 holder 会把这十二个英文单词刻在钢板上,然后锁进保险箱里。 是的,为什么这十二个助记词,或者像一长串乱码般的私钥能够代表你对资产的所有权呢? 这背后的原理其实就是密码学原理。 我们的密钥、地址和钱包都是通过密码学去实现,利用非对称加密技术——椭圆曲线算法(ECC)可以验证某人持有的私钥是否是吻合某个公钥,通过这个方式我们可以证明这个人是否是这笔加密资产的持有人,因为除了拥有私钥的人之外,其他没有该私钥的人是没有办法解锁这笔资产的。 我们在此用比特币举例私钥、公钥和地址生成的原理,一个比特币钱包中包含一系列的密钥对,每个密钥对包括一个私钥和一个公钥。私钥通常是一个随机选出的 256 位的数字。基于私钥,我们就可以使用 secp256k1 标准的椭圆曲线这个单向密码函数产生一个公钥。基于公钥,我们又可以使用一个单向哈希函数 SHA256 和 RIPEMD160 生成比特币地址,再通过 Base58 check 编码将比特币地址变成现在这较为简洁的形式。而像我们比较常用的助记词,则是通过基于 BIP 39 标准而生成的随机英文单词。如果没有私钥或助记词的人,是无法使用这笔加密资产的。 比特币的公钥和地址的生成过程 (图取自精通比特币) 当我们有了可以配对的密钥对后,可以在各种类型的钱包或者客户端上做验证,确认资产的所有权,并且通过这个客户端来进行各种资产的使用。例如最简单 BTC 转账,或者再进阶一点的用某个钱包去签署智能合约的交易:比如用 Metamask、imToken 或者 Alphawallet 等钱包里的 ETH 去购买加密猫,或者在 DeFi 的平台上面进行借贷,以及用 Uniswap 交换某些 ERC20 Token 等。 除了转账等基本的验证外,现在甚至某些平台的身份验证都可以用公私钥来做登录验证,或者通过验证你是某笔资产的所有人来进行各种权益的证明。简单来说,公私钥验证系统背后的密码学就是用户想畅游区块链世界的通行证。 在区块链中,还有另外一个不可忽视的密码学使用场景,就是区块中的交易排序,以及 Merkle Tree 等决定区块排序的过程。比特币就是将每笔交易用 SHA256 算法进行加密,在这里加密算法确保了区块链的安全性,以及几乎不可能被篡改的特性。光是在这两个比特币的基础使用场景中就都用到了密码学,于是乎甚至还有许多人在猜测,中本聪可能是个密码学大佬,才能够把密码学在这个点对点的现金系统中使用的淋漓尽致。 当然,除了在区块的生成和公私钥验证这两大区块链的核心功能上可以发挥用途之外,密码学在隐私保护甚至扩容等方面都可以派上用场。 现在的公链如何使用密码学?Wow,这是一条新的公链吗?那它有没有钱包啊 ?又要多一组新地址和抄一组新的助记词了。。。如果一个用户真的愿意自己好好地保管自己的资产,也勤于投资不同的公链,我相信他们一定也会有类似的经验和好几组不同的助记词或私钥。但到最后,他们能够保存好的,可能只剩下那些最主要的持仓资产,有些人甚至忘记备份某些资产的助记词。 长期下来,区块链资产管理的问题也导致区块链的门槛越来越高。所以一些钱包为了解决这个问题,已经提出了很多的优化方案。有些钱包甚至可以做到一个身份钱包的单一助记词,可以管理多种资产等功能,但仍然有许多组不同的地址必须要由用户来做管理。这样的问题对于很多新公链而言可能更为严重,因为如果用户要去通过他们的网页或手机钱包,去尝试链上的应用,用户就会增加许多管理公私钥的成本,更何况他们不像邮箱的密码一样可以任由用户自己定义,既不滑顺也不香。 但为什么区块链会有这样的限制? 这样的限制是因为目前许多的公链,都将很多密码学原语的使用场景写入了共识层,因此在这些公链中,像公私钥签名、客户端验证,以及区块生成的哈希和常用的加密算法,基本上都是镶嵌在共识层中的。例如地址所使用的验证、交易使用的签名等,其实都写在底层协议中,因此会变得非常难以改动。另外,许多公链的虚拟机性能都不足以支持灵活的密码学原语部署,因此对于这样的公链而言,如果底层的虚拟机不预先支持某个密码学原语,那么基于该密码学原语的场景可能很难直接被开发者使用。 如果要更动,唯一的办法就是硬分叉! 拿以太坊为例,以太坊的共识层写入了哪些密码学的场景呢? 除了区块的加密签名和 Merkle Tree 的哈希外,还有交易签名和客户端的验证。如果有任何人想要在这些点上做改动,例如将以太坊公私钥的哈希算法 keccak-256 换成其他签名算法,那么唯一的办法就是提一个 EIP (Ethereum Improvement Proposal),然后等待、祈祷这个提案被排入硬分叉之中。因为写在协议层的内容,就是全网的所有用户都必须遵从的规则。 ...

June 9, 2020 · 2 min · jiezi

百度超级链牵头制定IEEE跨链标准-Naming-Protocol首揭秘

百度超级链牵头制定IEEE跨链标准, 针对跨链寻址协议的跨链标准—Naming Protocol首次深度揭秘。 去年,全球最大的专业技术组织、有着130余年历史的IEEE(电气和电子工程师学会)设立IEEE计算机协会区块链和分布式记账委员会(IEEE Computer Society Blockchain and Distributed Ledgers Committee,IEEE C/BDL),旨在推动区块链与分布式记账技术的标准化及其应用实践。作为IEEE C的重要成员以及区块链行业领军企业,百度在推动区块链标准化方面不遗余力,积极发挥引领带头作用,并取得显著成效。百度超级链牵头制定IEEE跨链标准, 针对跨链寻址协议的跨链标准—Naming Protocol首次深度揭秘。 本文是百度应计算机协会区块链和分布式记账委员会(IEEE C/BDL)之邀,由百度区块链系统部技术负责人荆博对跨链技术及寻址协议进行详解,并对针对跨链寻址协议的跨链标准—Naming Protocol展开介绍。研究跨链技术标准的背景 近年来,随着区块链行业的蓬勃发展,各家科技公司都在发展自己的区块链业务。由于区块链行业还处于早期发展阶段,各大公司都试图主导行业标准,因此产生了很多的区块链框架,例如在国外有IBM主导的Fabric,Intel主导的Sawtooth,Facebook主导的Libra,国内有百度主导的XuperChain等。 这些框架底层协议各不相同,并且随着区块链被被纳入新基建的范畴,鼓励开发国产自研的底层区块链框架, 如火如荼的区块链底层技术研发更加活跃,由此形成了新的数据孤岛。无论这些孤岛是基于相同的底层系统还是不同的底层系统,其数据互通都非常困难。因此,迫切需要一个解决方案能够系统地解决多链数据融合的问题,从而实现不同链之间的价值互通。 因此,国内几个主要的区块链技术公司在电子标准院的协助下,组织起人马,成立了多个标准工作组,针对跨链技术展开了深入研究,并提出了一系列的标准草案。其中,IEEE标准Standard for Blockchain Interoperability - Naming Protocol 已经立项,接下来将针对该标准展开介绍。 什么是跨链技术 跨链(Cross-Chain),简单来说就是通过一定的技术措施实现相对独立的不同区块链系统之间数据和资产的链接互通。可以将跨链理解为在不同的信息孤岛间搭建起一座座桥梁,使得信息能够便捷的流动,为价值互联网奠定基础。常见的跨链解决方案一般是针对资产类,实现不同链之间任意数据的跨链互通难度会更高。我们这些标准工作组迎难而上,试图解决的就是后者。 跨链技术常见的挑战 1)原子性。可以通过哈希时间锁的方案来实现。交易互为锚点,任意一方未生效,另一方可以及时回滚。2)有效性。验证锚点交易的有效性。可以通过SPV证明来实现。3)资源寻址。如何快速跨链定位并获取到相关的资源。这就需要设计一套完整的寻址协议。**针对第三项跨链寻址协议,我们立项了IEEE标准Standard for Blockchain Interoperability - Naming Protocol。 解决思路 1.区块链互操作的命名协议 跨链涉及到不同链的资源的互操作,但是由于不同链的协议各不相同,对不同链的资源进行统一定义描述是很非常困难的。首先,我们需要一个标准协议,来为每一个区块链网络上的资源分配一个地址。这个协议可以被称为跨链寻址协议。跨链寻址协议,英文Naming Protocol for Blockchain Interoperability。该协议可以使得任意一个区块链网络能通过标准化地址定位所要访问的其他区块链网络的资源。例如,我们可以定义一个这样的协议: [:][//][//][?] 所有的区块链网络都可以使用这个协议来为自己区块链网络上的资源来生成一个地址。我们来继续举个例子来说明这一点: 首先,我们假定有一个区块链网络名字叫hello_chain,完全遵循我们在之前定义的它使用名为Xuper的底层框架搭建,这个网络下面跨链寻址协议。有一条子链/侧链/平行链叫child_chain。在这个child_chain上有一个使用wasm(webassembly)合约虚拟机才能执行的智能合约,合约名叫counter。顾名思义,这个合约其实是一个简单的计数器。 该合约提供了2个方法,1个叫increase,1个叫getNumber。调用increase方法,会使得每次将数值加1。而调用getNumber方法,会返回当前的数值。接着,假设我们现在正处于另一个区块链网络world_chain上,希望跨链访问hello_chain网络上的子链child_chain上的名为counter的计数器智能合约,并获取当前的数值。我们需要先按照之前定义的跨链寻址协议来生成访问地址,举个例子,我们可以这样写: xuper://hello_chain/child_chain?module=wasm &contract_name=counter &method_name=getNumber 其中, xuper: Xuper hello_chain: hello_chain child_chain: xuper//child_chain module=wasm: wasm contract_name=counter: counter method_name=getNumbergetNumber ...

June 9, 2020 · 1 min · jiezi

区块链从入门到放弃系列教程涵盖密码学超级账本以太坊Libra比特币等持续更新

简介 区块链是一种防篡改的共享数字分布式账本,可记录公共或私有对等网络中的交易。分布式账本分布到网络中的所有成员节点,以加密散列链接的块的顺序链,永久记录网络中对等点之间发生的资产交换的历史记录。 区块链的广为人知是从比特币开始的,但是区块链不是比特币,区块链只是比特币底层的技术基础。比特币可以看做是区块链的副产品。 本文不介绍炒币,币圈有风险,炒币需谨慎。 更多内容请访问www.flydean.com我觉得做技术的还是要静下心来,专心的搞搞技术,闲看庭前花开花落,漫随天外云卷云舒! 如果你非要问我对币圈的看法,个人觉得当你看完我的所有文章之后,就会发现其实虚拟货币就是那么回事,它只是一堆数字,你认为它有价值它就有价值,你觉得它没用它就是一堆空气而已。 其实区块链的底层技术并不复杂,也不是什么新的技术,但是当这么多技术汇集在一起,就产生了强大的催化效应,于是区块链诞生了。 区块链中最重要的技术组成部分就是密码学和分布式系统,通过在分布式系统使用共识机制和智能合约,最后产生了强大的区块链系统。 总结:区块链的本质就是记账!什么是区块链有同学会问了,讲了这么多还是不明白什么是区块链呀,接下来我们用一个例子来生动形象的说明,本例子纯属虚构,如有雷同实属巧合: 话说一年一度的华山论剑又要到了,东邪,西毒,南帝,北丐,中神通外加新晋新秀郭小侠六个人又准备在华山山顶大块肉,大口酒的潇洒走一回了。 那么问题来了,吃肉喝酒是要经费的,六人商议决定每人交500文钱作为这次活动的经费。为了方便管理经费的使用情况,他们选择了憨厚老实的郭小侠作为本次活动的记账人,由郭小侠全权负责维护账本的记录情况。 这就是现在的集中式账本系统,一切郭小侠一个人说了算,虽然郭小侠老实可靠,但总好像缺了点什么。 又到了月度回顾的时间了,郭小侠把这个月的消费记录列了出来,发给大家。西毒看了账单有异议了,因为账单记录了西毒出入易翠阁一次花费20文。西毒说他没有去过,但是账单如此,还是从他的账户中扣除了20文。 西毒觉得肯定是郭小侠想害他,故意弄错了账本记录,但是他又没有证据,只好求救于郭小侠的老婆黄小蓉。 黄小蓉想了想,找到了一个解决办法,那这样吧,六个人每个人保留一个账本,只要有人消费了,都要通知其他的人,大家一起记账,这样就不存在一个人记账中可能出现的篡改记录的问题了。这就叫做分布式账本,因为账本是一块记录接着一块记录,按照时间来排序的,因此也称为区块链。 过了一段时间,问题又出现了,因为大家都觉得会有人来记账,然后大家都没有记账,导致有些记录丢失了。黄小蓉又想出来一个办法,首先记账的人可以得到1文钱的奖励,通过这样的奖励机制,来鼓励大家记账,这个机制就叫做挖矿。 为了保证账本中记的账目都是真真的切切实实的这六大高手的花费,黄小蓉给他们分别分配了一个暗号,通过这个暗号就可以验证消费是不是出自他们之手。这就叫做区块链中的密码学。 然而,问题还没完,如果有多个人同时记账,而记得账目又不同,就导致了分布式账本中数据不一致的问题,而解决这个问题的方法就叫做共识机制。共识机制有很多种,比如谁记得又快又多就用谁的,这种共识机制叫做POW。又比如按谁剩余的钱最多,就选谁来记账,这叫做POS。 六人觉得,如果记账记到第一百笔的时候,需要庆祝一下,去买个烤羊排啥的。大家把这个逻辑也写在账本中,这叫做智能合约。 西毒有一天想把自己的账本历史记录修改一下,但是其他的五个人不同意,这就叫做防篡改机制。 如果把这个链的记账权限扩展到整个武林,谁都可以来参与记账,这叫做公链。 如果只能这六个人记账,就叫做私链。 郭小侠的师傅江南七侠听闻也建了一个链,想跟五绝的链打通,这就叫做跨链操作。 西毒昭告天下说,他要邀请天下好友建一个公链,说这个链有多么多么有前途,这叫做背书。 西毒说,在这个公链上挖矿,所得的奖励是一片树叶(附带我的亲笔签名),这些树叶非常有价值,并且上限1000枚,挖完就没有了。这就叫做发币。 但是西毒的链还没有正式建好,就开始预售树叶了,这叫做ICO。 看到大佬都在发币,裘千尺也发币了,西毒大佬看不起裘千尺,把他的币叫做山寨币。 于是大家都开始卖树叶...没人做实事了,最后ICO拿到了真金白银跑路了。 例子就讲这么多,如果还有人不明白区块链到底是啥,请关注我,私信我!我手把手教你,不教到会誓不罢休。 区块链不是什么大家记住我的话,区块链的本质只是一个分布式账本,用来存储数据用的,如果讲得更高级一点,可能里面还包含有智能合约,就是在某个条件下会触发某些记录的更改操作。 它跟数据库没有什么本质的区别,记账记账记账才是区块链的真正作用。 区块链不是银弹,它只是一个记账的手段。所以后面你看到那些山寨币把自己的项目夸上天的那种,就要考虑考虑风险了。 什么纳米币,太空币等等,你换一种方式记账就能改造纳米技术,让卫星上天了? 更有甚者,觉得用了区块链就改变了社会秩序和规则?什么鬼? 区块链的基础:密码学密码学是区块链的基础中的基础,没有密码学就没有区块链。 密码学是区块链世界中的安全保证。如何防范密钥丢失,如何保证交易的安全,如何验证交易的正确性等等都是密码学要做的事情。 下面是我总结的关于密码学的文章: 一致性hash算法女巫攻击及其防范HMAC算法及其应用MAC攻击及缺陷一次性密码本-绝对不会被破译的密码DES算法AES算法分组密码与模式公钥私钥RSA算法详解中间人攻击混合密码系统单向散列函数数字签名一文读懂密码学中的证书密钥详解更加安全的密钥生成方法Diffie-Hellman基于口令的密码(PBE)一篇文章让你彻底弄懂SSL/TLS协议区块链的基础:分布式系统和共识机制如果说密码学是区块链的钥匙的话,那么分布式系统就是区块链的基石,而共识机制就是保证区块链基石稳定性的混凝土。 下面是有关分布式系统和共识机制的文章: 理解分布式一致性:Raft协议理解分布式一致性:Paxos协议之Basic Paxos理解分布式一致性:Paxos协议之Multi-Paxos理解分布式一致性:Paxos协议之Cheap Paxos & Fast Paxos理解分布式一致性:Paxos协议之Generalized Paxos & Byzantine Paxos理解分布式一致性:拜占庭容错与PBFT超级账本Hyperledger Hyperledger是一项开源工作,旨在推动跨行业的区块链技术供企业使用。这是由LinuxFoundation®主持的全球合作,其中包括金融,银行,物联网,供应链,制造和技术领域的领导者。这183个不同的成员和9个正在进行的项目(包括Hyperledger Fabric)协同工作,以创建一个开放的,标准化的企业级分布式分布式账本框架和代码库。 Hyperledger其实是由很多各项目构成的,他们 Hyperledger Fabric框架在许可的网络上支持分布式分布式账本解决方案,成员之间彼此了解,适用于广泛的行业。它的模块化架构最大程度地提高了区块链解决方案的机密性,弹性和灵活性。 下面是有关超级账本的文章: 分布式账本简介Hyperledger Fabric基础知识Fabric的6大特性使用IBM Blockchain Platform extension开发你的第一个fabric智能合约在IBM Cloud中运行Fabric使用VSCode连接到IBM Cloud区块链网络以太坊 以太坊是由程序员Vitalik Buterin在比特币的基础上开发出来的一套公链平台。它被称为第二代加密货币与去中心化应用平台。 以太坊创造性的提出了智能合约的概念,扩充和丰富了人们的想象。 有了智能合约,以太坊也就插上了腾飞的翅膀,各种Dapp应运而生,而以太坊最最有名的就是做ICO发代币了。 ...

June 7, 2020 · 1 min · jiezi

区块链系列教程之比特币的世界

简介2008年一个化名为中本聪的神秘人第一次以论文的形式提出了:比特币:一种点对点电子现金系统(Bitcoin:A Peer-to-Peer Electroic Cash System),从此标志着比特币的诞生。 2008年到2020年,经过12年的发展,比特币已经成为市值最高的虚拟货币,也是当之无愧的虚拟货币大当家。那么比特币的发展中有哪些有趣的事情呢?且随着本文的步伐来一步一步揭开比特币的神秘面纱吧。 更多精彩内容且看: 区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新Spring Boot 2.X系列教程:七天从无到有掌握Spring Boot-持续更新Spring 5.X系列教程:满足你对Spring5的一切想象-持续更新java程序员从小工到专家成神之路(2020版)-持续更新中,附详细文章教程比特币的诞生2008年10月31日,一个署名叫Satoshi Nakamoto的人,发表了一篇论文,论文的名字叫做Bitcoin:A Peer-to-Peer Electroic Cash System,翻译过来就是比特币:一种点对点电子现金系统。这代表这比特币诞生了。 下面是这篇论文的摘要。 有兴趣的朋友可以去阅读一下论文的正文部分,正文部分不长,只有9页,而就是这短短的9页为我们打开了一个新世界的大门。 论文中并没有引入新的技术,只是对于老的技术比如:P2P网络,分布式系统,密码学,共识算法的重新而又巧妙的应用。 论文解决在无信任网络环境中的货币伪造的问题和双重支付的问题。 而现在比特币官网对比特币的最新定义是一种创新的支付网络和新的Money: Satoshi Nakamoto是谁熟悉日语的朋友可能对这种名字比较熟悉,我记得在看一个美剧Hero的时候,里面有个能停止时间,甚至穿越时空的日本人印象特别深,那个人在美剧中叫做Hiro Nakamura,翻译过来叫做中村宽。而发明比特币的Satoshi Nakamoto,一般被翻译为中本聪。 中本聪在发出论文之后,应该就开始着手实现比特币系统,并最终在2009年1月3日,第一批比特币诞生了。 第一批比特币是50个BTC,现在价值大概...额,350W人民币。一下一套房就出来了。 上面的具体信息是通过比特币区块浏览器查询得到的。你可以在很多这种公开的浏览器中获得这个信息。 中本聪大约在2010年中期共享了最后一段程序之后,把其他工作交给了当时的开发领导加文.安得森。 然后,中本聪就消失了。 是的,以后再也没有听到中本聪的声音。当然有很多人声称自己就是中本聪,但是并没有实际的证据来证实。 不管是什么原因导致中本聪的隐退,但是一切都不重要了,因为潘多拉魔盒已经被打开了。 为什么会有电子货币人类从最原始的物物交换,到后面的贵金属充当一般等价物,再到由国家发现货币替换一般等价物,最后到去中心化的电子货币。 其实对于最后一部分是否真的需要这种去中心化的电子货币我是持保留意见的。 货币的背后其实是一种信用背书,如果持有这个货币,能够随时随地进行商品货物的购买,并且这种货币的通货膨胀水平维持在可以接受的范围之类的话,那么这种货币就是可以被信任的货币。 我们不会因为无法兑换这种货币而苦恼。 在去中心化的货币时代,其背后的信用背书是什么呢? 支持的人会说是对算法的认可。只要相信这种算法的公平公正性,和生成货币的稀缺性,这样的货币就是有价值,可以被信任的。 打个比方来说,有人在一个矿山中发现了一种石头,测得这种特殊石头的总数是2100万个。只要能买得起挖掘机的人都可以自由来挖这种石头,当然如果你的挖掘机贵一点,性能好一点,可能就会多挖一点。 然后对外宣称这种石头是独一无二的,并且是有限数量的,是非常稀缺的。 那么问题来了,当一群人热火朝天的挖出来石头之后,卖给你,你会买吗?你觉得这种石头的价值在哪里? 其实问题的本质在于你是不是认为这个石头有价值,或者说大部分人认不认为这个石头有价值。 如果大家都觉得这个石头很好,那么拿着这个石头可以到处去换购商品,这个石头跟钱就没什么区别。 如果大部分人都不认可这个石头的价值,那么这个石头也就只能在小范围内流传。 怎么把石头炒出黄金的天价,这就是市场运作的人擅长的事情了。比如很久之前的荷兰郁金香,又比如一颗永流传的钻石,再比如现在的比特币。 鲁迅说过:这个世界本没有路,走的人多了,也就成了路。 比特币的价格先看一下比特币的价格走势图: 在2017年之前,比特币都是非常非常便宜的,也就是说比特币在出现大概8年的时候,基本上还没人相信的。 然后突然在17年到18年间涨到了历史的最高峰,大概一个BTC要差不多2万美金。 后面就是波动性的起伏,直到今天的9千美元左右。 讲到比特币的价值,肯定要提一下比特币的第一次交易:2010年5月22日美国的拉丝勒•豪涅茨(Laszlo Hanyecz)用10000个比特币交换了两块价值25美金的披萨。这是比特币第一次在现实世界获得价格。 1万个比特币的价值我们就不用多讲了。有些事情错过了就是错过了。 自古多情空余恨,此恨绵绵无绝期! 比特币系统比特币的底层是区块链技术,区块链可以形象的理解为去中心化的分布式账本,该账本由很多区块组成。 每10分钟左右一个新的区块被创建出来,加到区块链的尾端。新的区块记录了这10分钟内发生的所有交易. 交易用来记录一笔交易的具体信息。包括付款人地址,收款人地址 ,付款金额,付款人签字,收款人公钥、付款人资金来源交易ID等。 比特币系统有下面几个特点: ...

June 5, 2020 · 1 min · jiezi

CKB-开发者首次-Live-Coding-传授独家秘籍

昨天,学姐在 Nervos 直播间进行了为时三小时的首场 Live Coding,在直播中,学姐现场实现了 Open Transaction,也响应了大家的要求,女装出镜。 ??? 学姐放话说,如果反响好,那么以后会持续地做系列直播,如果反响不好的话……那么这一次是第一次,也是最后一次给大家做 Live Streaming 了。(大家且行且珍惜,别忘了在评论区留言来点反响呀!) 本次的 Live Streaming 足足持续了三个小时,这也让我们不得不感叹学姐的体力和脑力,相信我,这一定不是常人之所及。至于到底有没有翻车呢?让我们先来看一下视频回顾? 腾讯视频:https://v.qq.com/x/page/v0976... 在日常的工作中,学姐常常需要把 OTX 实现出来。本着不要所有的合约都自己做,给大家留点机会的原则,学姐在这个 Proposal 出来之后,等了一段时间。但是,这个 Proposal 自从三月份出来之后,一直也没有人做出来。现在学姐又急迫地需要这个合约,所以还是不得已自己开始动起了手。 虽然我们现在的合约开发已经有很多流程和套路可以走,有很多调试工具可以用,但是这些工具大家实际用的并不频繁。我们常常会听到有人说:「我又调了一晚上,我又卡在那边调不出来了。」等等这些状况。但实际上有些情况可能并不是这么的复杂,只要换一个方法就可以平滑地实现。 所以,在这次的直播过程中,学姐为我们分别详细地讲解了下面四个内容: Open Transaction 概念交易架构构建 & 调试 CKB 脚本一些有用的建议整个直播学姐为大家展示了如何更好地写合约,学姐说,写 CKB 合约最重要的一点,是首先要搞清楚合约的架构: 你的 transaction 是什么样子的?你的合约接受什么样的 transaction?什么样的 transaction 又会被你的合约拒绝?如果你有这样一套足够完善的数据集之后,那么在实际写合约的过程就会变得简单很多。因为当你已经有了足够的测试之后,就可以进行更便捷的开发。 你可以写代码来验证一些 transaction,再用各种各样的工具来帮助你调试这些合约,甚至可以写一些 log message 来展示合约里用到的数据,并调试合约。这样一来合约的开发会越来越快。 一些实用的工具Xuejie 全程分享了超多有用的开发工具和资料: ?standlone-debugger:你是不是每次测试合约都需要运行一条 CKB 链?大可不必!来试试 standlone-debugger,不用运行 CKB 链,直接测试合约,支持 debug,printf,可查看合约 cycle 运行数量和完整的合约运行路径等等: https://github.com/xxuejie/ck... ?Perkins' tent:通过一个 docker 镜像包直接创建一个 CKB 服务器,不仅包含了 ckb 还包含了 graphql-server,一个更强大的 ckb-indexer,流控功能等等: https://github.com/xxuejie/pe... ...

June 4, 2020 · 1 min · jiezi

百度超级链XuperChainV37可信账本功能带你实现链上数据隐私保护与计算

#百度超级链学院·公开课# 百度超级链XuperChainV3.7可信账本功能强力来袭 受困于数据隐私泄漏、数据被恶意篡改等问题,链上数据保护与计算常常难以展开。 如何打破数据孤岛,实现链上数据隐私保护与计算? 本期公开课带你深入解析超级链链上数据协同功能,通过可信账本实现链上数据隐私保护与计算! 【主讲嘉宾】:超哥 百度资深研发工程师 【课程简介】:可信计算环境解析、超级链可信账本功能和应用场景探索及链上隐私计算实践模拟。 【课程时间】:6月4日(本周四) 20:00 【直播预约链接】:http://abcxueyuan.cloud.baidu.com/#/live_detail?liveId=241&linkToken=gyVZo

June 3, 2020 · 1 min · jiezi

春藤8910DM芯片底层解决方案软硬兼施破解区块链物联网融合难题

春藤8910DM芯片底层解决方案,软硬兼施破解区块链物联网融合难题 上云同时上链,首个Cat.1物联网芯片+区块链底层融合解决方案落地 文/王吉伟 2009年,随着中本聪“点对点电子先进系统理论”步入实践,比特币出现了。当0号创世区块与1号区块相连形成链之后,区块链正式诞生。 之后,全球挖矿模式开启,比特币价格一路高涨。2017年12月17日比特币价格一度涨到19870.6美元,此后不断跌涨。现在,它又来到了10000美元的高点。 比特币火爆后,币圈欣欣向荣。那些以割韭菜为目的的各种代币,只关心如何做盘与收割,并不在意电子货币底层的区块链技术。因为就是说了,韭菜们也不懂更不关心。炒币的人,天天妄想走上李笑来的“财富自由”之路。 然而除了各种“韭菜收割大捷”造就的一轮轮庄家致富故事之外,区块链技术已在更多的行业中扎根、发芽、生长。等到币圈大佬都跑到国外之后,人们才发现币没了,但区块链火了。尤其是,在政府将其写入报告之后,区块链应用正在影响更多的行业。 区块链,就是一个分布式的共享账本和数据库,它具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点。基于这些特点,区块链能够应用于金融、物联网、保险、数字版权等诸多领域。 尤其是在物联网领域,物联网与区块链被誉为“天作之合”。把区块链技术融入物联网,借助物联网的“万物互联属性”就能让区块链应用无处不在,也就能让物联网运营做到更高的效率、更快的速度和更稳妥的安全。 愿景丰满,但现实骨感。区块链与物联网确实在逐渐的融合应用,然而出现的问题却也不少。譬如安全,区块链应用目前大多只部署在云端,但若是本地设备上的数据尚未上链,存在被修改或被入侵的风险的数据,还能够被智能合约信任吗?又比如,当应用区块链的复杂程度与资源投入占比过高时,就是区块链再好也会惨遭企业排斥。 一边是迫切希望通过区块链解决物联网安全及效率问题,另一边却是在现实应用中遭遇各种困难与诸多不确定性。这种强烈期望与无奈现实之间的矛盾,该怎么解决? 这个背景下,5月27日,紫光展锐携手摩联科技、广和通、万向区块链,做了一件具有里程碑意义的大事:推出了全球首个Cat.1物联网芯片+区块链底层融合解决方案,将芯片与区块链深度融合,从底层数据源头解决物联网与区块链融合应用的难题。 看到这里,急需区块链解决方案的企业可能会问:这到底是一个怎样的方案?别急,听王吉伟频道为你详细解析。 从解决方案谈起,基于CAT.1底层融合解决方案 这套解决方案是这样的。广和通基于紫光展锐物联网芯片平台春藤8910DM,以及摩联科技的BoAT(Blockchain of AI Things)区块链应用框架,打造了Cat.1区块链模组L610。万向区块链提供联盟区块链开源平台系统,最终下游商家将芯片模组与系统封装于设备终端,实现设备联网的同时数据接入区块链。 在这个解决方案之中,几家厂商凭借优势各司其职。 紫光展锐通过春藤8910DM物联网芯片平台,构建底层安全可信环境,同时为区块链应用平台打通与物理世界的连接,完成安全的数据采集与通信功能。 摩联科技通过自主研发的承载在蜂窝物联网平台上的区块链应用框架BoAT,全面支持各种物联网设备的可信数据上链。 广和通则基于春藤8910DM芯片平台以及摩联科技的BoAT区块链应用框架,推出全球首款Cat.1区块链模组L610,该模组接口丰富,支持多协议与应用服务,适用于多个领域。 万向区块链利用其在区块链技术研发和应用落地方面的经验和资源优势,通过区块链平台PlatONE,帮助企业完成不泄漏隐私的数据跨组织分享,以及数据金融化和资产化,协助传统信息物联网转型价值物联网。 简单的讲就是,这套方案可使搭载春藤8910DM芯片的物联网设备,具备访问区块链和调用智能合约的能力,数据上云与数据特征值上链同时进行,从而实现“链上-云上”的数据可信对应。 当然,随着这个方案率先在紫光展锐春藤8910DM上落地,春藤8910DM也成为了全球首款支持区块链技术的Cat.1 bis物联网芯片平台。 软硬融合,解决区块链+物联网融合难题 这个方案,对几家合作厂商而言是在实践物联网+区块链融合创新。对下游厂商而言,已然是一种全新的物联网体验。意义在于,它让物联网设备可以更简单的应用芯片级底层安全区块链技术,只需搭载春藤8910DM即可。 这套方案能够做到让设备厂商“一劳永逸”,软硬融合是其中的精髓。而在历经大量物联网与区块链融合应用的实践后,很多厂商也早已视软硬融合为此中最佳解决方案。 原因在于,目前的物联网和区块链交集主要在云端,物联网设备采集数据后,通过软件实现数据上链,若底层硬件架构尚未部署可信数据上链,源头数据仍存在被篡改风险。 同时,未经加密的物联网设备流量信息,还会有更大的几率被攻击获取。2020 Unit 42 IoT威胁报告显示,目前98%的物联网设备流量未进行加密,57%的物联网设备易受中等或高强度的攻击。 因此,纯软件上链并非物联网融合区块链技术的最佳打开方式。 想要解决以上问题,真正实现更高程度的全流程数据上链,需要通过“软硬融合”,在终端设备硬件底层部署可信数据上链能力,打通物联网+区块链的关键一环,从数据源头实现上链。 做到物联网终端设备可信,企业就能与区块链共识信任机制一起有效降低安全风险,最终实现基于区块链共识信任机制的商业闭环。 这里多说几句。对于软硬融合解决方案,王吉伟频道认为“软硬融合”重点不在于各种推陈出新的软件应用,而是在于硬件性能。具体到物联网之中,体现为更合适的物联网通讯芯片。但,哪种通讯技术更适于物联网+区块链的软硬融合呢?经过一系列研究,业内人士均认为Cat.1的优势最为明显,主要表现为以下几点: 带宽、时延、移动性、语音方面,可完美替代传统2G;承载于现有LTE网络,无需运营商继续投入;单天线设计,降低终端厂商成本;价格更低,技术成熟稳定。所以,在工信部明确2G/3G退网策略后,Cat.1是海量物联网连接的最佳选择。而要选择Cat.1芯片,自然非紫光展锐莫属。其在去年11月发布的全球首颗LTE Cat.1 bis芯片平台春藤8910DM,已在多个领域实现落地应用,能够为中下游厂商提供全场景多连接的物联网芯片、以及相应的技术解决方案。 这,也正是摩联科技等几家厂商在物联网+区块链融合方案上,首选紫光展锐的原因。 区块链技术,让信息物联网转型价值物联网 紫光展锐工业物联网副总裁鲜苗认为,当前物联网存在需求碎片化、多主体多标准、终端安全风险、信息隐私风险、中心化管理带来的低运营效率等多种问题。物联网运营效率不够高是一方面,海量物联网数据如何实现商业价值更是所有厂商持续探索的难题。 在区块链的应用方面,其实自Vitalik Buterin(V神)提出“比特币应当扩展其货币功能,成为下一代智能合约和去中心化应用的平台”的看法并于2013年推出以太坊以后,各行业就踏上了区块链技术在各行业应用的探索之路。其中,以物联网行业的探索最为勤奋。 原因无他,区块链数据难以篡改、可溯源、可追踪等特点,恰好可以将物联网低成本获取的海量数据,转化成大规模、高效率、低成本的可信任数据,同时能保障数据的稳定性和安全性。尤其是去中心化架构所实现的分布式数据记录和存储,能有效减轻传统中心化计算的压力和风险。 注意,这里王吉伟频道用了“转化”这个词。其实企业在数字化转型进程中,由业务数据化走向数据业务化,本质上就是通过一定的手段让大量数据再次产生价值。 现在很多区块链机构在做的,就是探索与研究如何让信息物联网转型成为价值物联网。譬如紫光展锐合作伙伴,由V神出任首席科学家的万向区块链,所打造的以隐私计算为特色的新一代联盟区块链平台PlatONE就在做这个事。 只是,如何做到价值转换呢?要让信息物联网转型价值物联网,放在以前有很大困难:物联网经营有难度,上链安全有难处。现在,则可以通过紫光展锐的Cat.1物联网芯片+区块链底层融合解决方案来实现。 具体如何实现呢?这里说一个简单的应用案例。 专注于车联网和共享出行的云咖智能,所孵化的新型共享出行平台便采用了Cat.1+区块链融合方案。基于此方案,云咖智能推出“去中心化OTA平台为核心”的新型行业解决方案。租车公司车辆配备的终端设备T-Box,搭载广和通LTE Cat.1模组L610,实现低成本上云和上链。在运营架构上,中间层采用以分布式存储公有链为核心的区块链,来取代OTA平台。 这其中,云咖智能承担移动出行服务商功能,用户通过云伽智能出行平台实现车辆的预定功能和智能合约的执行。以前中间平台的利润,重新回馈给车辆供应方和消费者,达到为85%的参与者提高收入的目的。 这样,原本由中心化商家运作、具有信息不透明、大数据筛除、价值分配不公平等的情况,全部被区块链技术公开透明、不可篡改等特性替代,从技术上重构了性能、重新分配了价值。 理论上,云咖智能共享出行的解决方案,可以复制到任何存在中间商平台的领域。而要做到这些,只需在物联网硬件设备中搭载LTE Cat.1模块L610,实现同步上云与上链。 后记:物联网+区块链赋能新基建,价值物联网助力数字化 ...

June 2, 2020 · 1 min · jiezi

两会热议区块链百度超级链链上新基建

2020年全国两会正在进行中,这是区块链成为国家战略之后的第一次两会。两会上,“区块链”一词成为代表委员们口中的流行词,“谈链”成为一种新风尚。今年4月,国家发改委首次明确将“区块链”列入新型基础设施范畴。人大代表、政协委员积极发布有关区块链产业发展提案,涉及技术创新、产业融合及标准制定等内容。 全国政协委员、百度董事长兼首席执行官李彦宏在接受央视采访时也表示,“新基建”的关键在于新,要用大数据、人工智能、区块链等新的技术来提升中国基础设施的能力。 百度超级链技术赋能"新基建" 当前,我国区块链的领先优势主要体现在应用领域,在基础研究、关键技术和核心专利方面依然较为薄弱。对此,全国人大代表、江西省农信联社党委书记、理事长孔发龙建议,集中力量发展国产自主可控的区块链技术平台,全力争取发展主动权。 百度超级链作为区块链行业引领者,一直坚持区块链核心技术自主研发和创新原则。目前,已经实现核心技术自主可控,包括加密技术、共识算法、智能合约等行业内独创技术,针对底层核心技术申请超过200篇。百度完全自主知识产权区块链解决方案XuperChain正式开源以来,始终保持高频迭代。目前XuperChainV3.7版本已经发布跨链应用,帮助开发者更好地进行功能组合。同时,百度超级链旗下XuperChain、XuperData安全、功能、性能获得官方认证,满足国家权威单位对国产自研区块链技术的最高要求。 全新产品矩阵助推产业融合 与以往不同的是,今年代表委员们关于区块链的建议更接地气,更贴近民生。全国人大代表、河北省涿州范阳医院院长周松勃表示,应加快促进大数据、区块链、人工智能等新兴技术在医疗体系的集成应用,促进基层医疗体系数字化转型。 百度超级链一直致力于推动区块链与产业融合,在医疗、司法、智慧城市等领域推出解决方案并应用。医疗领域,百度超级链通过构建医疗大数据网络,助力解决行业中长期存在的信息安全和信息孤岛问题,促进电子处方可信、安全、高效流转,从根本上杜绝了冒用和篡改等难题。未来,百度超级链将继续运用区块链技术赋能智慧医疗场景,打造“互联网+医疗健康”服务“医+药+保”的完整闭环。司法领域,百度存证链联通司法体系,形成完整电子证据闭环,切实保障存证可用、可信、可靠。智慧城市建设方面,全国政协委员、新大陆董事长王晶建议,构建"国家政务公链" 运用区块链打破信息孤岛,提升国家治理的现代化水平。北京市海淀区落地的“链i政务通平台”就是以百度超级链作为底层技术搭建,实现了数据连接和互动,有效解决了数据共享中安全和可信问题。 日前,百度超级链推出全新产品矩阵:超级链专业版、超级链开放网络和行业解决方案。此次全新产品矩阵的推出将进一步满足企业、开发者等用户的不同上链需求,为加速区块链与产业融合发展提供坚实基础。 力推区块链“立标准”“树规范” 立标准、树规范是区块链行业可持续长远发展的重要前提。今年全国两会,有不少代表、委员建议政府加强引导出台政策,促进区块链行业规范健康发展上面。民建中央在《关于引导区块链产业健康发展的提案》中建议,建立区块链产品测试中心,制定测试标准,打造区块链"中国标准"。作为区块链行业引领者,百度超级链一直积极推动区块链行业标准建立。目前,百度超级链已加入中国电子技术标准研究院等多个国内权威组织,并作为企业代表就全球区块链贸易标准分享实践经验。 随着区块链被正式纳入"新基建",区块链应用将迎来新一轮的井喷期。百度在人工智能、大数据、云计算、区块链等业务的建设上已走到世界前列,这些先进技术的深度融合释放出更大的能量。为了大力推动区块链快速普及,除了技术赋能、产品支持外,百度超级链学院还通过区块链咨询、教育培训、人才认证、与高校共建区块链课程以及线上公开课、线下沙龙等多种方式加速人才培养与项目孵化,以更好的推动区块链产业化快速发展。

June 1, 2020 · 1 min · jiezi

区块链华山论剑百度微众趣链大咖共话跨链

随着区块链技术进一步发展,其应用场景得到拓展,链间价值流通、数据交换的需求骤增。5月26日,在“跨链技术价值与应用生态”主题线上沙龙中,来自百度、微众银行、趣链的三位技术负责人开启了新一轮“华山论剑”,就技术难点、市场需求和应用场景等方面对“跨链”技术进行了详细拆解,并围绕跨链方案、安全性、性能和效率等问题展开圆桌讨论,认为跨链作为价值互联网的基础,将是区块链未来发展的大趋势之一。 本次直播活动由百度超级链学院主办。百度超级链学院是一站式的区块链教育服务平台,通过线上课程及沙龙等形式,进行区块链技术及应用相关知识传播,同时面向高校、培训机构输出区块链实训平台等产品,加速产教融合与区块链人才培养,推动区块链技术普及。 “跨链技术价值与应用生态”线上圆桌论坛 “跨链”指将同构或异构的区块链系统连接起来,实现资产、数据的操作。百度资深研发工程师王玉操介绍,不同类型数字货币兑换其实就是最早的跨链原始驱动力,之后智能合约的出现,带来联盟链、行业链数量井喷。但人们发现链间智能合约、共识算法、密码体系等机制差异很大,导致大量数据无法打通互认,形成数据孤岛,彼此的价值体系难以统一,而跨链技术真正满足了数据确权和价值传递这两大需求,让价值互联网得以变成现实。例如,应用了百度超级链技术的北京互联网法院“天平链”将受理的4万件案件全部上链,电子数据超过900万条,跨链存证数据量已达上亿条,解决了互联网审判当中电子证据的取证难、存证难、认定难的问题,就是非常典型的跨链案例之一。而在未来,随着跨链标准和技术进一步完善,数据互通已不再是问题,大型区块链生态的融合将推动价值互联网的继续发展,届时真正全球化、全局通用的价值互联网将形成。王玉操认为,要实现这一目标,跨链技术需要满足标准化、易用化和融合化,对此,百度超级链通过其全球部署的开放网络、多点布局的专有网络,以及各类跨链解决方案和网络生态融合方案,让更多的企业、更多的区块链应用都能加入这个价值互联网的生态中来。 微众银行区块链底层平台研发负责人李辉忠认为,区块链技术的应用前景非常广阔,主要分为资产类、存证类和流程类三个方向,而跨链技术本质上是为了解决区块链应用的扩展性问题。李辉忠将跨链技术遇到的问题形容为“东西南北通”,即在底层架构不同、安全机制不同、数据结构不同的情况下,如何互联互通?以及在部署方式不同、接口协议不同、业务模式不同的情况下,如何简化接入? 李辉忠表示,要实现联盟链跨链,在“南北”上需要先支持业务快速接入多链、支持平行扩展;在“东西”上需要先支持跨链互联互通,跨业务访问。而且接口协议要可以适配任意链,且接入方便快速。 趣链跨链项目负责人徐才巢更多剖析了跨链技术的核心难点,他认为跨链技术分为单跨链中间件、多跨链中间件、中继链等模式,要在特定场景下进行特定分析,来判断区块链业务适用于哪种跨链模式。在技术上,跨链协议、交易验证、事务一致性和隐私保护等,都是跨链落地需要面临的重要关卡。如何去实现跨链落地也是业内人士和开发者最关心的问题,在圆桌论坛中,三位区块链技术大咖就实操过程中的安全、性能效率、有效性和真实性等问题进行了交流研讨,认为跨链是未来区块链的核心竞争力,未来相对成熟的区块链业务将会从单链协作迈入跨链协作阶段,但要实现这一目标,则需要标准化的跨链规范来进行约束,推动链与链之间更好融合。 目前,百度超级链XuperChain V3.7版本已经发布了跨链应用,并针对只读事务场景和非事务场景的应用进行了开源,帮助开发者更好的进行功能组合。随着国家将区块链纳入“新基建”范围,区块链应用将迎来新一轮的井喷期,跨链技术也面临广阔的应用前景,像百度超级链等提前布局的厂商,正在为价值互联网的全面落地起到了巨大的推动作用,也为中国数字经济的建设打下了坚实的基础。 关注百度超级链微信公众号_(Baidu-XUPER),回复“跨链”,领取嘉宾演讲ppt。 登录百度超级链学院官网,观看活动精彩回放!https://xuperchain.baidu.com/... 百度超级链是100%国产自研的区块链系统,性能卓越、安全可控、行业领先,在存证、司法、版权、医疗、数据协同、溯源、智慧城市等领域推出解决方案并应用,已经与北京互联网法院、重庆市、百信银行等政府、大型企业达成深度合作。

May 28, 2020 · 1 min · jiezi

人人都在谈的区块链真的人人都能懂吗

当前区块链技术已如火如荼,各行各业都积极落地应用,几乎人人都在谈。那么,区块链技术到底是什么?有何价值?又该如何应用呢?本文将从概念、技术构成、转账方式以及发展趋势等方面为大家详细介绍区块链技术的价值。一、区块链技术的前世今生1. 区块链的“前世”区块链技术不是一项横空出世的新技术,它是站在巨人的肩膀上不断演进的。区块链的重要组成技术源于1985年发明的椭圆曲线加密算法,1995年密码学家提出“智能合约”概念,逐渐地,2005年发明工作量证明机制,直到2008年中本聪发表《比特币:一种点对点的电子现金系统》,才标志着区块链的诞生,所以区块链诞生至今仅11年的时间。 2. 区块链关键技术体系及技术分类(1)区块链关键技术体系区块链是一种组合技术,由以下几个关键部分组成。 动态组网,即点对点传输网络;块链数据结构,前后紧密相连的块链结构;共识机制,维护记账一致性;密码学技术,是区块链安身立命的基础技术;智能合约,在链上应用较多。(2)区块链的技术分类区块链常见的技术分类有公有链、联盟链、私有链。腾讯区块链目前主导且落地的是联盟链技术。 公有链技术:最大的特点是公有链没有准入、准出机制,像比特币、以太坊,任何人来去自由,大部分公链的参与节点的权限都一致,去中心化特性明显,但性能低下,如比特币每秒能处理的交易数仅有七、八笔左右。 联盟链技术:指若干个机构共同组成联盟链去做某个场景,它具备中心化管理能力和较好的性能,联盟链技术的落地发展是比较符合我国国情的。 私有链技术:由于链本身要多方参与、多方协同的意向基础技术,而私有链的参与方都是一个主体,因此价值有限,一般用在一些内部监督场景。 3. 区块链的定义举一个网上的例子,沈阳某小区的业主用32把锁锁住了自己的车库门,防止外来车辆占用他们的车位,有网友调侃说这就是一个区块链。虽然是一句调侃,不过它和区块链内涵的确有很多相似之处。 首先,每一个锁前后紧密相连,与区块链各个区块前后紧密相连有相似之处,其次车主用自己的钥匙打开自己的锁进门就可以停车,也类比于区块链需求使用对应的个人私钥才能支配链上的数据或资产。同时呢,打开锁的动作是每个车主自己完成的不需要依赖一个开门大爷去打开,整体上也体现了去中心化的机制。 一句话定义区块链技术:区块链是一种具有防篡改、可追溯、共享特征的分布式账本技术。 下文具体介绍这三大特征: 防篡改:区块链天生的记账方式和传统记账方式不同,它是多中心共同维护一个数据。从下图节点1到节点6中看出,如果将一个结点上的数据修改,由于其他5个节点有全量数据账本,这时他们就会发现是谁做的修改,再通过一些机制驱除他或者惩罚他。 可追溯:链上数据是随着时间单向链式记录的,每一个数据都可以追溯最初写入的“人”(数字签名)和时间。每一个节点数据是冗余存储的,并且都有账本,数据上链后所有参与的节点就能看到这个数据信息,都能追溯该数据的写入时间以及写入的“人”(数字签名)。 共享:传统的记账方式或者数据记录方式是一个主体或一个人来记录。从纸张的出现人们开始记录信息,这时仅是个人在记录各自账本;发展到互联网时代,中心化的数据库其实也是一个机构或者个人在记录信息。而到了区块链时代,便是由多个人共同维护一个数据账本,是一种去中心的记账方式,每个主体的账本一直影响账本中的记录数据也就实现了共享。 4. 银行转账方式与区块链转账方式的不同银行传统的转账方式和区块链的转账方式有什么不同?比如A转给B一笔钱,A就发送申请转账的消息到银行的中心化账本,银行修改A与B之间的余额,接着再向B做一个查询操作,B就能够看到,这是银行的转账方式,利用中心化的一个机构来维护账本信息。 区块链的转账方式不同于银行,以比特币为例,在本地建立一笔交易由A转向B。完成交易后,通过P2P动态组网广播出去,每个节点获取到该信息:有人要转移一笔账。 再按照一套规则选出一个人记录这个账,记录者可能会得到一些奖励(记对了有奖励,记错了或有惩罚),记账时要注意A是否有权限将余额转给B,B是否有资格拿这笔资产,以上都通过之后,再将这笔交易打包进区块中,之后对区块做一次广播,区块广播到整个网络后,每个节点会拿这个区块挂接到自己之前记录所有账本(区块链)上,这笔记录就生效了。 如果一个人修改了该账本也不会有影响,因为账本由非常多节点共同来维护,单个节点修改对整个账本来说是无影响。因此区块链不依赖任何一个中心化的机构,采取一套可行的技术制度完全可以组织一个个节点(个体)来实现价值的转移和存储。 5. 区块链的防篡改机制那么区块链是如何实现这样的可信、防篡改呢?区块链不是通过一项技术就做到完美的,而是多项技术融合的成果。 (1)根据博弈学原理,多维度防篡改 下图三条线分别代表密码学原理、算力博弈和多方见证三个系统。如果每个系统有90%的靠谱程度,以企业的关系将三个系统叠加,即使有人三次想突破最后的底线,要达到这个目的的概率也只有千分之一,这就是防篡改的技术原理。依据博弈学原理来防篡改,保证篡改区块链所付出的代价要大于篡改区块链所获取的收益。 (2)依据密码学原理,以块链结构实现数据存储 那在区块链中,究竟什么是区块,区块间又是如何“链”接的? 区块分为“区块头”和“区块体”。区块头起到一个很重要的作用就是将各区块“链”在一起,其中一个关键点在于哈希算法,将区块1做一次哈希产生一个指纹值(哈希值),把它放到区块2的区块头里面,再将区块2做一次哈希放到区块3的区块头里,这样就让每一个区块紧密相连。 假如要修改区块1,那么区块1改变了之后,区块1的哈希值也会变,就会使得区块2也发生变化,继而导致区块3的变动,这便使得修改一个已存在的区块需要修改其后叠加的所有区块,从而使修改区块链上的数据难度增大。 修改一个区块就必须产生一个新的区块来去承载修改后的交易记录,如比特币网络平均每10分钟全网算力才能算出一个区块,要算出这么多区块得付出非常大的算力成本,但若拿这些算力做挖矿也就是账本维护,将会获得很多收益。因此密码学就是通过篡改所要付出的成本大于你篡改所要获得的收益,从而保障链上的信息不可篡改性、一致性得以保障。 6. 从信息互联网到价值互联网我们将当前的互联网称为信息互联网,将结合区块链的互联网成为价值互联网。二者之间的差异主要体现为:互联网传递承载信息,价值互联网(区块链)传递承载价值。 (1)信息互联网信息传播趋向零成本:互联网本质是实现信息传播趋向零成本,例如银行间转账、团购、共享单车、游戏、咨询、短视频等等应用,都是实现了信息传播趋向零成本后催收出的新兴应用。 信息易复制、易篡改、易泄露:互联网传播、承载的信息易被篡改、泄密和复制。 比如某作者在网络上发表一篇文章,文章本身很容易就被复制盗取,同时中心化数据库承载的数据也管理员或黑客修改,因此一旦发生纠纷,我们很难使用一个普通电子数据作为证据在司法场景举证,因为该数据的产生时间、归属人、数据本身的内容都是存在很大的不确定性,都有很低成本的篡改手段可以实现数据的修改。 (2)价值互联网价值传播趋向零成本:信息互联网实现了信息传播趋向零成本,区块链的一个伟大特质是可以实现价值传播趋向零成本。 区块链通过私钥操作的机制,可以通过将“身份”与私钥强绑定来确定链上数据的操作人,同时数据上链可以确定唯一性,并且不可篡改。 上文说到的文章发布,在发布时上链我们就能确定其可信的发布时间、发布人、发布内容,区块链可以为这篇文章确权,为后续的潜在纠纷打下确定性基础。 不仅如此,区块链的特性价值传播场景下能发挥更大作用,价值的传播或者说资产的传播强依赖唯一性、不可篡改性,因为资产不能像数据,可被复制,一个资产是发送转移后就是你多我少的,不能出现双花情况,区块链很好的满足的资产传播所需要的核心要求。 价值互联网具备确定性: 第一,每一笔区块链的操作都需要一个私钥操作,这个私钥紧密关联“身份”,这个身份可以是个人身份也就是自然人身份,也可以是企业身份也叫法人身份。 第二,区块链上写入信息的时间不是由一个中心化服务器决定的,而是由若干个全量参与区块链网络的节点保障的,因此篡改一个服务器的信息没有用。 第三,内容无法被篡改,从Who、When、What三个方面保障信息的确定性。这样的确定性是信息互联网所无法做到的。 价值互联网将由政府部门参与并主导: 信息互联网的繁荣发展是由B端、C端共同驱动的,因为互联网承载的是信息、娱乐、资讯等。但区块链若要大规模应用,我们认为政府需要成为主导力量,因为无论是区块链上“身份”的合法性,链上数据的合法性,都由需要政府部门参与认可。 区块链最大的应用场景是价值(资产)的低成本传递流转,大额资产如房产、证券、土地等上链的数字化,“资产网关”级的部门都是政府部门,因此价值互联网的繁荣需要由政府部门来牵头主导。 当前很多资产的流转传播都需要很高的时间成本和金钱成本,如果完成社会主流资产的链上数字化后形成我们14亿人口的一个价值传播网络,我们整个经济社会的交易成本将大幅降低,交易效率大幅提升,这将会极大的提升我国的经济活力,创造释放出强大的生产力。 从“要想富,先修路”到“要想富,先建链”: 政府部门自上而下牵头建立我国的价值传播网络,就如同过去在政府部门牵头在祖国大地上修建高速公路、高速铁路一般。 要想富先修路,修路本质上是为加快局部地区人才和物质的流动,物质和人才的快速流动有益于市场经济,良好的道路基础设施对我国经济助力颇多。 后来到了信息化时代,李克强总理多次提出电信行业需要“提速降费”,本质上就是要加快信息的流转,来进一步加快信息的交换、加快交易的撮合,这也是很有助于实体经济、数字经济的。 如今习主席提出区块链国家战略,我们希望以政府为主导建立起区块链价值传播网络,建立起我们14亿人口的价值流转“高速公路”,从而加快大量主流资产的流转效率,降低流转成本,提振我国经济。 二、区块链的应用价值1. 区块链能做什么?区块链最底层的特性是防篡改,这项技术人类追寻了很多年。在电信时代,虽然我们用了加密等各种手段去防止信息被篡改,保障信息真实性,花了很多成本但效果始终不如人意。 如今区块链技术的出现,让我们找到了一种有效的电子数据防篡改机制,这个价值非常大。有了数据的确定性之后,很多场景下提高了作恶成本,增加了信任基础。 上文说到区块链的本质是可以让价值传播的成本趋向于零,这个价值不仅是资产,也可以理解为价值数据。实现主流资产在链上低成本流转是一件非常具有挑战性且非常长期的事,不可能一蹴而就,区块链的落地应用也需要循序渐进,步步为营的。 我把区块链落地应用简单的分为以下四个阶段: (1)互联网数据上链增信阶段个人认为当前的区块链落地就处于第一阶段,典型落地应用是区块链存证,我们看到19年网信办区块链业务存证业务占比超过15%排名第一,BATJ等一线厂商也都有存证相关的区块链业务。 ...

May 27, 2020 · 1 min · jiezi

GitLab-开启地域封锁之时GitHub-在中国畅谈无国界

内容导读:GitLab 发布了有关地域封锁的公告,中国被列入受限制名单。而在昨天进行的中国开源年会上,GitHub 副总裁 Thomas Dohmke 和 CSDN 创始人蒋涛进行了一场炉边对谈,他们针对技术社区的发展和开源等问题,进行了一场深度的探讨,谈到了开源不分国界的问题。作为有代表性的技术社区的两位高层,他们的交谈究竟擦出了哪些火花? 关键词:GitHub 开源 区块链 近日,GitHub 的竞争对手、全球第二大开源代码托管平台 GitLab,在其官网上发了一个声明,宣布了一个「封锁令」,一时间引起激烈讨论。 该公开声明称,遵循当前政治形势下的行业普遍做法,GitLab 决定,不会给中国/俄罗斯公民提供 offer,那些有权限访问客户数据的员工,现在也不能移居到中国或俄罗斯。 声明中,指名道姓地列出中国与俄罗斯这条声明甚至引起 GitLab 内部人员的诧异,其全球风险与合规总监也表示:「我很困惑,为什么要把这些国家单独列出来?没有哪条法律规定我们这么干吧?」 GitLab 由乌克兰程序员开发。在去年 9 月,它们获得了由谷歌母公司的投资部门谷歌风投(GV)领投的 1 亿美元融资,该轮融资让公司的估值超过了 10 亿美元。此举也让 GitLab 在与 GitHub 的竞争中增添了几分筹码。 但如今,GitLab 却因「当前政治气候」,而公开拒收来自中国和俄罗斯的工程师,不免引起了大家质疑。一个自称多元化全球化的团队,支持开源的开源代码托管平台,难道也要对员工分国界了? 就在 GitLab 封锁令引发业界广泛讨论的同时,它最大的竞争对手 GitHub 在这个方面,却选择了截然不同的态度。 中美程序员扛把子的高峰对话在昨天举行的中国开源年会 COSCon’19 上,GitHub 副总裁 Thomas Dohmke 和 CSDN 创始人蒋涛,针对开源发展做出了多个维度的探讨,在他们的对话中,Thmoas 表现出来对中国的友好度,和 GitLab 的态度大相径庭。 Thomas Dohmke (左)和蒋涛(右)在进行会谈两人的对话,涵盖了个人经历,工作经验, GitHub 的发展,以及 GitHub 和中国的联系等多个角度。这场干货满满的谈话,也成了本次开源大会上最引人注目的一个环节。 我们选取了其中的四个话题,去重现这场对谈,带领大家感受他们思想上的碰撞。 嘉宾介绍 Thomas Dohmke ,GitHub 副总裁,负责管理特殊项目、并购和国际扩张。他曾是 HockeyApp 的联合创始人兼首席执行官,该公司于 2014 年被微软收购。Thomas 通过微软的收购加入了 GitHub,并成功地完成了交易阶段。 ...

November 5, 2019 · 1 min · jiezi

004Envelop基于Blockstack的文件传输dapp

本篇文章主要介绍基于Blockstack的文件传输工具; A-链接地址官网地址:https://envelop.app/ Github地址:https://github.com/envelop-app B-特性:1: Share private files easily,without losing their ownership 在不失去拥有者身份的条件下分享私有文件; 2: Envelop runs on blockstack.You decide where your files are stored. 你能决定文件存储的位置,使用默认配置或者自己配置。 C-应用 1- 上传文件 2- 复制链接(Copy Link)并分享 https://envl.app/syuukawa/KSp... 使用另外的浏览器访问Url的效果 3- 点击下载(Download) 使用Chrome浏览器更加友好 D-特性QAhttps://envelop.app/faq.html I want to send a file to a colleague/friend. Do they need a Blockstack account?No, they do not need to have a Blockstack account or have used Envelop before. With the link Envelop provides after you upload a file, he/she will be able to easily download the file. ...

October 22, 2019 · 1 min · jiezi

超级链学院小课堂什么是共有链联盟链及私有链

October 16, 2019 · 0 min · jiezi

沙龙报名-区块链数据服务技术应用实践

京东云是国内首家提供区块链数据在线分析服务产品的公司,也是行业内首家对区块链数据服务进行开源的公司。 本次沙龙是京东云BDS开源后,首次在深圳举办线下沙龙,我们将邀请京东云BDS团队核心成员与区块链爱好者一起分享“万链归一”计划、高校开发者招募计划,并对如何搭建公链全节点、获取公链全量数据、数据的结构化处理等技术进行分享。本次沙龙采用定向免费邀请+公开邀请方式,欢迎感兴趣的朋友前来参与活动! 京东云BDS开源链接:https://github.com/jdcloud-bds/京东云BDS产品链接:https://bds.jdcloud.com 时间:2019年10月18日(周五)14:00-16:00 地点:深圳大学沧海校区信工楼605会议室 主题:万链归一,数据赋能——区块链数据服务技术应用实践 点击“京东云”即可报名! 当天到达现场的开发者将赠送京东云纪念品,还有最新活动预告,不容错过!????????????

October 16, 2019 · 1 min · jiezi

一文读懂Fractal共识协议iChing之精妙

前言在过去的十年里,PoW 共识协议一直安全地支撑着区块链系统稳定运行,而其存在的能源浪费和算力集中的问题也显而易见,因此,Fractal 在 2017 年设计之初就决定了朝着 PoS 的方向进行探索,追求更加环保、安全、高性能的区块链共识协议。 Fractal 独有的 3S 特性分别为:Scalability(可扩展)、Sustainability(节能)和 Security(安全)。其中 Scalability 特性体现在 Fractal 设计的 Layer 0 优化协议 Backpackers 中,关于该协议在另一篇文章中有详细说明,本文着重介绍 Fractal 的共识协议——iChing,该协议不是目前已知协议的改进和变形,而是完全自主创新的一套算法,也是支撑着 Sustainability 和 Security 特性的核心技术。 iChing的核心思想目前大多已知的 PoS 协议为了避免诚实节点间的数据不一致性,通过交互式 BFT 类协议来实现数据的确认与共识,这种构造方式直接来源于已知的协议以及各种改进和变形,同时也继承了该类协议的缺点及问题,即难以在完全去中心化的条件下实现全球规模的部署与运行。因此,iChing的设计方法完全放弃了 BFT 类协议的选择。 回顾比特币所设计的 PoW 共识协议,其核心思想是通过硬件资源限制了参与者发送信息的频率与数量,以此保证系统中的输入噪音足够少,进而所有诚实节点可以达成一致。同时,这种一致的达成并不依赖交互式的密码协议,而是通过竞争的方式自然实现,从而避免了复杂的通信开销。因此为了实现新的PoS共识协议,iChing 也遵循这两个做法。 iChing的共识过程1. 通过算法构造将矿工的算力竞争转化为 stake 的竞争,从而限制矿工的输入,产生合法的共识节点; 2. 在去掉硬件资源限制和避免运行交互式密码协议的同时,采用竞争机制实现数据的一致性,使得所有诚实节点达成共识。 iChing的算法构造H ( context , < PK , > ) < T iChing 采用上述哈希不等式将 PoW 的算力竞争转化为 stake 竞争,其中: context 是区块中的上下文,包括上一个区块的哈希值及当前的时间戳round,因此所有的有效输出形成了一个哈希值相连接的链条也就是区块链。其中 round 是一个单调递增的时间变量, 在单位时间内单个账户只能进行一次 hash 运算,超过当前系统当前 round 的挖矿操作将不被接受。 PK 是公钥,在PoS中,拥有Stake的人才能参与共识,因此执行此算法的节点应输入代表自身身份的公钥PK以供其他用户检验其拥有的 stake,并以此来调节其挖矿难度。  是签名,为了防止他人冒用身份,同时应附上该公钥所对应私钥对本次尝试的签名。此处所使用的签名算法是确定性签名,也就是输入确定后,签名结果唯一确定。这样保证了在每个 round,一个账户只能够合法尝试一次挖矿操作。 ...

October 15, 2019 · 1 min · jiezi

QuarkChain出席2019年TechCrunch-Disrupt-旧金山新创展盛会

10月2日到4日,2019 TechCrunch Disrupt San Francisco 新创展在美国旧金山莫斯康展览中心举行。作为区块链初创公司之一,QuarkChain参加了此次盛会。TechCrunch Disrupt SF由全球知名科技媒体TechCrunch举办,是全球最具影响力的初创公司峰会。今年,有近500家来自AI、BioTech、blockchain、FinTech、IoT等多元产业新创公司参展,吸引了超过10000名参会者。 本次活动从蓝色起源的CEO Bob Smith 的暖场拉开序幕,接下来则是由Neeraj Agrawal (Battery Ventures), Jyoti Bansal (Harness) 和 Whitney Bouck (HelloSign)参与的“如何创造一个十亿美元软件即服务公司”的圆桌论坛。其他的演讲者包括Joseph Gordon-Levitt(美国演员、制片人)、Aaron Levie(美国企业家)、Neal Mohan(YouTube首席产品官)、Will Smith(美国演员)和导演李安等。 QuarkChain在活动现场布置了专属展台,QuarkChain CEO 周期及其团队与众多参会者进行深入探讨。QuarkChain依靠其高吞吐能力以及支持分片异构可定制化的灵活优势吸引了众多领域的企业代表的关注。周期介绍了QuarkChain在企业服务方面的优势,并共同探讨未来合作的可能。

October 15, 2019 · 1 min · jiezi

什么是挖矿

区块链中经常会听到挖矿这个名词,因为它和现实中的挖矿不一样,所以很多人对这个词很费解。为什么那么多人去挖矿呢?因为挖矿成功后会有奖励。为什么挖矿需要大量的矿机呢?因为有大量的哈希计算。这个计算的过程就被称为挖矿。 哈希函数要想明白什么是挖矿,就必须要先了解计算机中的一类函数——哈希函数。比如md5、sha256等都是哈希函数的一种实现方式,它们最终都是将任意长度的数据都转换为固定长度的数据。就如同你去办身份证一样,不管你高矮胖瘦、贫富贵贱,给你的身份证id都是一个18为的数字,这个过程就如同进行了一次哈希。 我们来简单感受一下sha256哈希函数: 1. 输入长度可变,输出长度固定不论输入的是多长,都能得到一个定长的字符串hash("a")ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bbhash("hongtao")7530e08344cf1ec5157f34e2447182d7ec7040a36fba24fc7006499513d96c26 2. 对数据敏感只要数据有一点变化,那么就能得到一个完全不一样的字符串hash("hongtao") 7530e08344cf1ec5157f34e2447182d7ec7040a36fba24fc7006499513d96c26hash("hongtaofu") 1059ac7a8f6d4eb9024231eb260bfcc30d23fdf1b461164741f71835c49689063. 单向性给定一个字符串,比如“hongtao”,我们可以马上计算出他的哈希是: “7530e08344cf1ec5157f34e2447182d7ec7040a36fba24fc7006499513d96c26”。但是给你一个哈希: “3e23e8160039594a33894f6564e1b1348bbd7a0088d42c4acb73eeaed59c009d”,要想计算出他的一个原像,这比登天还难 4. 不可被碰撞比如给定一个字符串“a”,他的哈希是: “ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb”。你不可能通过计算或者暴力破解去找到另外一个字符串,使得他的哈希也是: “ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb”5.从概率的角度来分析一下哈希函数:sha256函数:实际上输出的值就是256个bit(比特),如果我们想随机去碰撞一个哈希值,那么他的概率是多少呢?每一个bit可以是0或者1,256位要求全部相同,那么概率就是$\frac{1}{2^{256}}$ ≈ 1.157 X $\frac{1}{10^{77}}$。而宇宙的总原子量是$10^{79}$个,总质量$10^{56}$g。大型计算机的速度在$10^{20}$Hz/s,个人计算机计算哈希的速度在$10^{10}$Hz/s。所以如果要想去碰撞哈希,这完全是不可能的。 挖矿先上一副全网络挖矿统计图: 当前全网算力是95.21EH/s,1EH/s = 百亿亿次哈希/秒。而比特币的所有矿工大概需要计算十分钟,才会有一个矿工碰巧找到满足要求的哈希 一个哈希的部分碰撞比如有一个数据和一个随机数(nonce),我们对它们作哈希,希望得到的哈希前面有6个0 Hash("hongtao"+nonce)=000000xxxx..50...xxxx(十六进制,共64位);这个时候我们修改nonce,哈希也会发生变化,需要经过 16 x 16 x 16 x 16 x 16 x 16 = 16,777,216次哈希计算,才能得到想要的哈希。 hash("hongtao623022891")0000000bd07143fcbb02e54dc5b68f0e391f80a44d72f9ebe53ae7cc31434056 笔者的电脑是2.9GHz x 6核,大概用了1分钟才计算完,这个时候任何人想要修改前面的数据,比如把hongtao修改为taohong,修改过后都需要进行一分钟的计算才能找到合法的随机数 如果前面要求不是6个0,而是16个0,就需要计算$16^{10}$ x 1分钟。笔者的电脑需要计算2091917年才能计算出来。 现在我们就可以利用一个哈希的部分碰撞去保证数据的很难修改了,最终达到个人、组织或国家无法修改的难度。当区块被链接起来过后,历史数据将达到所有国家都无法修改的难度 什么是挖矿我们先看看比特比区块的数据: 难度:这个难度前面讲过,是根据以往的2016可区块计算出来的,表示这个区块头的哈希需要满足前面有多少个0。随机数nonce:这个就是矿工不停修的数字,然后去得到满足相应要求的哈希,如果算出来了,就代表成功挖到这个区块的矿了。将获得这个区块的奖励我们来看一个区块头的信息: 可以看到,当前区块的哈希和上一个区块的哈希,前面都是0。0越多代表挖矿难度越大,0越少代表挖矿难度越小。现在要求的挖矿难度是17个0。我们前面计算了需要16个0的话需要挖2091917年,所以现在的比特币,想要用个人电脑去挖矿,简直是比中彩票、比陨石撞击地球还难。 注:这里为了方便大家的理解,直接将难度说成了前面需要多少个0,实际上对难度的定义是通过其他表达式来表示的 最后所以挖矿需要大量的矿机,这些矿机实际上就是计算机,只是这些计算机对哈希的计算能力进行了增强。比如将哈希算法固定到硬件上面,以此来获得高速的哈希计算能力。还有的机器通过显卡挖矿,这是因为显卡也具有一定的计算能力,这样可以充分利用计算机的资源。由于计算机的速度满足摩尔定律,每过18个月,速度就会翻倍。而计算机内存的速度增长却很缓慢,大概每年7%,所以有的虚拟币挖矿需要求结合内存,这样大家的挖矿就相对于平等一些。挖矿是一个很消耗资源的,尤其是电力,所以矿机一般都选择电费便宜的地方。

October 14, 2019 · 1 min · jiezi

001humans基于Blockstack的DApp介绍

官网地址:https://humans.name/GitHub地址:https://github.com/markmhx/hu... Humans介绍Humans:Create an independent profile on the web within minutesHumans:在几分钟内在网上创建一个独立的个人资料 Let's admit it: profiles on Facebook, LinkedIn etc. are ugly. And no company should control your identity or personal content online.让我们承认这一点:Facebook、LinkedIn等网站上的个人资料很难看。任何公司都不应该控制你的身份或在线个人内容。 With Humans, you'll put your best face forward while maintaining full control over your profile, now and forever.对于别人,你会展示出你最好的一面,同时保持对你的个人资料的完全控制,现在和永远。 操作展示登录 开始创建个人信息 3.填写您的新公共档案,保存您的变化。选择“????”以查看您的个人资料完全一样,它显示给其他人,可以与朋友分享这个页面的网址。 4.个人博客 5.点击Setting可以编辑个人的信息;以及配置对应的域名; 6.可以进行域名配置 总结Humans类似于个人的博客系统,博客内容存储在加密的存储上,除你之外的任何人,都不会完全拥有你自己的数据,你完全可以进行每日的更新,当然也可以将你的链接发送给朋友,也可以将这个当作个人的简历;更新自己的能力等等;平台已经提供给你,到底怎么玩,你自己决定。 自定义域名的功能,让你可以拥有你自己的更加理想的个人博客; 本文由Rebase社区的River进行整理和编辑,转载请注明出处,多谢。

October 7, 2019 · 1 min · jiezi

002BlockPhoto基于Blockstack的去中心化私有的图片管理

本篇文章主要记录了基于Blockstack的去中心化私有的图片管理系统BlockPhoto; block-photos官网简单介绍:One of the most secure solutions for storing your photos in the cloud with amazing privacy.block-photos是一个私有的非常安全的将图片存储在云上的DApp; BlockPhoto主要实现了以下几个功能: 上传照片下载照片删除照片添加照片到图片集编辑图片集标题 对于开发者:这个项目实现了图片相关的一系列操作;为需要实现图片相关功能的开发提供了一个很好的参考; WebSite:**https://app.block-photos.com/GitHub:**https://github.com/nerdic-coder/block-photos 火星财经:https://www.huoxing24.com/use... 本篇内容由Rebase社区的River进行整理和编辑;如果对Blockstack和区块链感兴趣请关注我们的公众号以及个人微信:

October 7, 2019 · 1 min · jiezi

003feed基于Blockstack的社交网络工具

本篇文章主要介绍feed;WebSite:https://www.feed-app.net/GitHub:https://github.com/knaut/feed feed的官方介绍如下:feed is a social networking utility powered by blockchain.feed是一个由区块链支持的社交网络工具。 主要实现了如下功能: 发布状态根据DID查询状态— 可以加以完善的是添加好友,然后获取好友状态等等; 1.初始页面截图 2.登录 3.发布状态 4.查询状态 本文由Rebase的River,进行整理和编辑;如需转载请注明出处,多谢;

October 7, 2019 · 1 min · jiezi

hyperledger-fabric-14-创建联盟

概述在fabric中联盟不能为空,必须包含一个组织机构,所以在创建联盟的时候必须有一个组织机构,能够添加进去,fabric中的联盟和通道是一对一的关系,联盟必须和通道channel并存,而联盟的所有配置都是记录在系统channel的配置区块中的,包括有哪些联盟,有哪些org,所以要添加联盟就必须修改区块中的数据,更新配置,也就是重新上传配置块。系统channel的配置块是根据configtx.yaml的Section: Profile中的配置文件来创建的,如下所示以TestConsortium联盟为例,如需视频学习,可以参考视频教程.。 TwoOrgsOrdererGenesis: <<: *ChannelDefaults Orderer: <<: *OrdererDefaults Organizations: - *OrdererOrg Capabilities: <<: *OrdererCapabilities Consortiums: SampleConsortium: Organizations: - *Org1 - *Org2 TestConsortium: Organizations: - *Org1以JSON格式输出新联盟的配置材料 #生成包含新联盟的新创世区块configtxgen -profile TwoOrgsOrdererGenesis -channelID byfn-sys-channel -outputBlock ./channel-artifacts/sys-channel.block#将其内容转换成JSON并抽取出新联盟的配置材料configtxlator proto_decode --input ./channel-artifacts/sys-channel.block --type common.Block | jq .data.data[0].payload.data.config.channel_group.groups.Consortiums.groups.TestConsortium > ./channel-artifacts/TestConsortium.json获取系统通道的创世区块以JSON格式输出新联盟的配置材料# 生成包含新联盟的新创世区块configtxgen -profile TwoOrgsOrdererGenesis -channelID byfn-sys-channel -outputBlock ./channel-artifacts/sys-channel.block# 将其内容转换成JSON并抽取出新联盟的配置材料configtxlator proto_decode --input ./channel-artifacts/sys-channel.block --type common.Block | jq .data.data[0].payload.data.config.channel_group.groups.Consortiums.groups.TestConsortium > ./channel-artifacts/TestConsortium.json获取系统通道的创世区块** (可选)设置了ORDERER_CA变量: docker exec -it cli bashexport ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem切换到OrdererOrgs的admin用户 ...

September 8, 2019 · 2 min · jiezi

三星发布区块链手机你会买么

据韩国国家日报 sedaily 的报道,三星于美国时间 9 月 5 日推出区块链版Galaxy Note 10 手机,名为「KlaytnPhone」,在基础版本的功能上额外增加了对比特币、以太坊和其他加密货币的支持。 据悉,Galaxy S10 系列通过手机自带的「Blockchain Keystore」应用程序,使用者可实现数字签名、完成数字资产存储和传输以及向商家付款,也就是说这是一款「区块链手机」。 目前 KlaytnPhone 仅限韩国销售,价格约 1000 美元(约 7000 元人民币)。 三星研发「区块链手机」的动作,早有端倪。 早在 2018 年底,社会化新闻网站 SamMobile 便对外透露,三星为数字资产应用程序申请了三个商标,正计划将「冷钱包系统」整合到即将推出的 Galaxy S10 中。对此,三星当时向外界辟谣称,“这是谣言和猜测。” 但在 2019 年 1 月,世界知识产权组织公开的一份报告中显示,三星提交了三项区块链相关专利 —— Blockchain KeyStore(区块链应用程序)、Blockchain KeyBox (区块链密钥箱)及 Blockchain Core(区块链核心)。 直到前几天三星的「区块链手机」推出,辟谣信息也被正式辟谣了。 事实上,三星并非第一个推出「区块链手机」的手机厂商,SUGAR糖果、长虹、联想、HTC、SIRIN Labs 早已抢先一步入局,不过,这些手机厂商大部分不仅没能通过「区块链手机」在大众市场中撬得用户,在加密市场中也无甚反响。 有人断言,传统的区块链手机概念已经「不灵了」。 从结果来看,区块链手机不一定能创造价值,但将「区块链手机」推向支付领域,将硬件设备与数字资产钱包应用绑定的「应用型」智能手机,可能比前者拥有更加广阔的市场与增长空间。 当前,包括微软、Google、Facebook 等在内的世界科技巨头纷纷入主区块链行业已是不争的事实,未来,行业竞争将愈演愈烈。 据最新统计,三星是目前全球最大的智能手机厂商,其次为华为、苹果、小米、OPPO,所以入主区块链行业,可能是三星想要维持自己霸主地位的手段之一。 作为三星老对手,苹果 Apple Pay 副总裁 Jennifer Bailey 最近也表示,苹果正在关注加密货币,但短期不会有动作。Bailey 说:“我们认为它具备令人瞩目的长期潜力。” 对于区块链手机,国内各厂商与服务商也在加紧布局。 日前中国电信发布了《5G时代区块链智能手机白皮书》,描述了中国电信打造的一个区块链应用生态,用独有的去中心化技术引领数字经济新变革,为5G手机提供更安全的硬件底层架构,使5G手机逐步成为去中心化运算和数据的节点,形成新的价值传输网络,塑造手机使用安全生态体系。 这表明,电信所说的区块链手机将会把区块链作为手机的一项底层技术,保障手机的安全,而不仅仅是接入简单的区块链应用。白皮书中提及,电信还将联合华为、360、小米、vivo等共建5G区块链手机生态,而这将是一个巨大的蓝海市场。 你会购买区块链手机吗?为什么? -END- ...

September 8, 2019 · 1 min · jiezi

hyperledger-fabric-14-单机安装教程

Fabric v1.4.0单机安装部署一、前期准备fabric的安装依赖于docker环境,所以前提需要安装好docker,同时对一些软件的版本也做了要求如下所示,: curl需要最新版本,docker 版本17.06以上docker-compose1.14.0以上版本go 版本1.11以上版本本文档安装的操作系统为ubuntu,如果是centos,基础环境的准备请自行切换到centos,如需视频学习,可以参考视频教程. cURL最新版安装 # 下载最新版的cURL并将其解压wgethttps://curl.haxx.se/download/curl-7.65.3.tar.xzsudo tar xzvf curl-7.63.0.tar.gz -C /home # 编译并安装cURLcd /home/curl-7.65.3./configuremakesudo make install通过运行curl --version查看是否安装成功。 Docker和Docker Compose安装 Docker首先卸载可能存在的旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc sudo apt-get update sudo apt-get install apt-transport-https ca-certificates gnupg-agent software- properties-commoncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker version查看是否成功 ```Docker Compose ...

September 8, 2019 · 1 min · jiezi

区块链应用场景如何创新墨者链助力链生态发展

2019年将是区块链商业应用元年,区块链技术已经在性能、易用性、可操作性方面发展成熟,能够支撑起大规模商业应用。Facebook、摩根大通、谷歌、IBM以及腾讯、华为、阿里等巨头公司纷纷高调宣布布局区块链领域,墨者安全基于以太坊技术推出墨者Paas平台与国内多家头部企业达成合作,助力数字版权应用发展。目前,墨者安全合作伙伴包括: 1、某国家知识产权交易中心 墨者使用计算机视觉技术,为知识产权交易中心提供图片商标检索比对服务。 2、在线云图科技 墨者为在线云图科技提供照片侵权检索。采用区块链存证、北斗时间戳、以及计算机视觉处理技术,同时对接司法机关,为云图照片提供存证确证、侵权检索穿透、司法取证举证形成证据包等服务。 3、省级报社 墨者为某省级报社原创文章、原创图片、照片做侵权防护。借助图像处理、计算机视觉、NLP技术、全网检索、定点检索技术,全面提升侵权检索准确率及效率。 4、知识产权链 墨者参与知识产权数字家庭研发全流程。提供区块链以太联盟链技术、定做ERC智能合约、业务全流程生态活动结算、版权存证确证、文件分布式存储、以及前后端整套技术。打造一站式版权链技术流程。 5、明星工作室 明星摄影工作室是国内顶级摄影师大师的工作室,为国际国内明星、超模打造的摄影与时装盛宴。墨者为头部明星所有照片提供区块链存证确证、司法取证、计算机视觉识别,全网检索比对,确保头部明星作品版权所有。并与明星一起打造明星链。 区块链作为新兴产业,其发展需要良好的营商环境和产业大气候,随着近几年区块链法律法规和监管体系逐步完善,有利于区块链行业的整体发展,是区块链技术迈出了规范化的第一步,越来越多的企业可以正规地做应用。好风凭借力,如今墨者链已经从概念到物联网、金融、供应链等实际应用场景的落地: 1、区块链+版权保护 “墨者链”以区块链底层技术为基础,利用区块链不可伪造的特性,以低成本和高效率为海量数字内容提供版权存证,实现“创作即确权、使用即授权、发现即维权”,区块链技术的可追溯特征,有效保护了原创者对于作品的所有权,利用AI进行互联网级同文件检索,一旦发现侵权行为的出现,将会把侵权者的行为永久记录到链上,为原创者后续维权提供保障。 2、区块链金融结算应用 在清算和结算领域,不同金融机构间的基础设施架构、业务流程各不相同,同时涉及很多人工处理的环节,极大地增加了业务成本,而区块链上的数据是分布式的,每个节点都能获得所有的交易信息,一旦发现变更可通知全网,防止篡改。建立在墨者链基础上的支付系统有着“去中介化”的特征,以此改变现有以集中清算为特征的支付系统,可以说是一种趋势。 3、普通存证与司法存证应用 墨者链存证是墨者安全联合第三方电子合同平台以及司法鉴定、审计、公证、仲裁等权威机构发起区块链联盟链的存证方式,支持电子数据存取证服务,利用区块链去中心化特点,实现证据固化和永续性保存。一旦产生纠纷,用户可从联盟链中的司法鉴定、审计、公证、仲裁机构节点随时取证。全链每个节点都有完整存证,增强了可信度。仲裁机构可直接从其自身节点获取和验证数据,不需要第三方机构出具证明。 4、区块链保险 通过在保险场景应用区块链技术,可将保险索赔置于不可更改的总帐下,有助于消除保险业中常见的欺诈源;以智能合约形式载录的保单和共享账本可提高财产保险和意外伤害保险的效率;使得医疗记录可被加密保护并在健康服务提供者间共享,从而提高医疗保险生态系统的交互操作性;通过智能合约的形式保证再保险合同在区块链平台上的信息安全,简化保险人和再保险人之间的支付流程。 5、区块链溯源 溯源也是区块链现阶段应用较广的领域之一,且多为跨境产品及食品的溯源。对于这些产品来说,产品的来源极为重要,所以需要一种工具来证明产品来源的真实性及流转的可追踪性。企业通过墨者链搭建了一个产品数据溯源体系,实现大数据存证。所以,追其本质,溯源也是将区块链当作一种存证工具使用。 6、区块链医疗领域应用 在医疗领域,面对信息存储量巨大的医疗机构,聚集着众多敏感信息,使用墨者链技术可以为患者的隐私保护提供可靠的解决方案,同时,使用墨者链技术,医院、医生、患者、保险公司等等相关各方都可以成为整个链条的一部分,从而降低人们之间的信任成本,减少医患纠纷和欺诈行为。 7、区块链游戏 区块链为全球游戏行业的困境提供了解决方案。区块链技术的安全特性也被用在了保证游戏道具归属和交易上,将区块链技术的不可篡改的特点应用游戏的交易中,也使得交易过程更加的安全可靠。将区块链正确融入在线游戏,它表明玩家可以彼此之间互动,玩家能以前所未有的方式来玩游戏,开发者可以通过强调区块链独有的游戏元素来制定新的游戏类型。 8、区块链社交 隐私安全和保密性是社交通讯的基本需求,但区块链提倡公开透明,社交信息都是公开的。墨者链借助独创的密码学专利技术补充了区块链缺少非对称加解密能力的缺点,提供完整且安全的点对点加密,同时借助区块链去中心化特点 ,给社交过程提供良好的仪式感。 9、供应链金融 主要利用墨者链和大数据技术,基于银行、政府、企业等全方位海量可信数据,建立智能风控模型,改变金融机构传统的抵押担保的放贷模式,优化供应链上下游商业生产活动,为上下游提供资金支持、信用证明,解决中小企业融资难融资贵的问题。 10、区块链积分联盟 利用墨者链技术的能力为生态内商户打造所需的场景应用,打造基于区块链技术的积分(数字资产)发行、管理和流通网络,任何企业和个人都可以便捷加入,成为资产方和渠道方,联合生态内外企业、商户、渠道、发行方等,进行积分(数字资产)的发行、汇兑和管理,实现不同数字资产之间互通互换,资产流通。 目前区块链已经走出了行业早期的泡沫阶段,应用场景逐步开始落地。区域链所引发的创业热潮还在持续,放眼全球,许多国家认识到区块链技术巨大的应用前景,开始从国家层面设计区块链的发展道路。得益于政府的支持和推动,墨者安全将利用自身场景生态及大数据方面的优势推出“墨者链”平台,专注于区块链领域的技术研发、应用和服务,通过实践和应用助力链生态发展。

August 21, 2019 · 1 min · jiezi

Blockstack3-Blockstack-ID授权登录2

上一篇总结:上一篇的标题有点问题;不应该是授权登录,应该是登录;授权的意思是用户授权第三方平台可以使用,然而例子中并没有体现;所以加了一篇新的授权登录;授权登录主要实现的是,授权Blockstack ID可以访问DApp,并在授权过程中提示DApp访问用户的内容的权限(读写或者只读); 1.打开链接:https://browser.blockstack.org/在Home中我们能够看到很多DApp;我们从中任意选择一个,进行点击操作; 2.选择recall :https://app.recall.photos/ 3.选择Sign in或者Start using in with blockstack 4.会弹出授权的提示页面:[https://browser.blockstack.or...*] 5.提示内容"Recall" (app.recall.photos) wants to read your basic info, and publish data stored for this app. Select an ID to use:Recall 将要读区你的基本信息,并且对这个app授权数据存储(默认为Gaia); 6.点击ID进行授权;跳转到:https://app.recall.photos/dashboard 7.然后就可以使用Recall DApp;其他的DApp授权登录操作类似; 下一篇:Blockstack ID Profile(简介) 2019-08-21 BTC - 10658 ETH - 194

August 21, 2019 · 1 min · jiezi

Blockstack3-Blockstack-ID授权登录

对上一篇文章:Blockstack ID注册,进行简单的回顾了讲解;因为上一篇中有一些问题没有明确;Blockstack ID是用户名,传统用户登录的时候需要的不仅是用户名还要密码;所以在Blockstack ID授权登录的时候也是需要密码的;但是这个密码和传统的密码还是有区别的;还记得上一篇中最后的Secret Recover Key 和 助记词吗(12个英文字符串);如果上一篇没有那就是我遗漏了,因为有些信息是需要保密的,要不然账号就会丢失,正好证明了我的保密性; 所以Blockstack ID的授权登录需要: 1.密钥(长字符串)和 助记词(12个英文字符串)2.密码3.邮箱Blockstack通过这两个方式来保证用户的安全性;当然如果使用助记词是可以从新恢复账号的;这个先有个印象,有特别想了解的可以留言;如果没有我就找个合适的机会在讲解吧,毕竟恢复账号是件不好的事情哈哈; 1.打开网站:https://browser.blockstack.org/ 明确一个问题;Blockstack 注册完成后会默认处于登录状态;状态保存在浏览器中;所以要想查看如果登录,请清空浏览器缓存,或者换一个浏览器Blockstack缓存在浏览器中的实现一定是经过验证的,但是相关的文档和具体实现我还不是很清楚;个人建议,换一个浏览器做测试;2.选择sign up:https://browser.blockstack.org/sign-up 3.选择用已经存在的ID进行登录 — sign in with an existing ID 4.输入Secret Recovery Key或者Magic Recovery Code;2个输入其中的一个就好,我们输入Secret Recovery Key【注册邮件中一个很长的字符串】; 5.输入密码;注册过程中设定的密码; 6.输入创建ID时用的邮箱; 7.登录成功; 下一篇:Blockstack ID Profile

August 21, 2019 · 1 min · jiezi

IPFS与Filecoin-从入门到精通

《IPFS与Filecoin 从入门到精通》在接触 IPFS 之后,对这种可以本质上改变网络数据的分发机制的协议非常感兴趣,但由于目前国内并没有比较深入分析 IPFS 的书籍,而一些资料因为英文的缘故在一定程度上也为不少 IPFS 爱好者带来了一些学习上的困扰,不仅为了加快扩散 IPFS 爱好者的国内群体,决定以开源的形式完成这本《IPFS与Filecoin 从入门到精通》的书籍。 写作进度目前进度第10章项目地址 支持本书如果你时间有空闲并且想要为本书 《IPFS与Filecoin 从入门到精通》做一些力所能及的工作,你可以参与到本书的写作或纠正工作中来,一同完善本书并帮助壮大 IPFS 在国内的学习群体,让大家更快的使用 IPFS与Filecoin。 授权许可除特别声明外,本书中的内容使用 CC BY-SA 3.0 License(创作共用 署名-相同方式共享3.0 许可协议)授权,代码遵循 MIT License (MIT 许可协议)。 开始阅读第一部分:IPFS 入门第1章:初识 IPFS第2章:安装与运行环境 2.1 Go 环境变量2.2 安装 Go2.3 安装 IPFS2.4 配置 IPFS 开发环境2.5 IPFS 常见命令第3章:IPFS 底层技术 3.1 分布式哈希表(DHT)3.2 Chord 协议3.3 Kademlia 协议3.4 S/Kademlia 协议3.5 BitTorrent 协议3.6 分布式版本控制(Git)3.7 自验证文件系统((SFS)第二部分:深入理解 IPFS 核心技术第4章:IPFS Multiformats第5章:IPFS IPLD第6章:IPFS 存储层第7章:IPFS Bitswap第8章:IPFS 网络层第9章:IPFS Cluster 9.1 IPFS Cluster 与分布式系统9.2 深入理解 IPFS Cluster9.3 IPFS Cluster 安装与配置第三部分:IPFS 实战第10章:基于 IPFS 视频网站第11章:基于 IPFS 手机文件管理APP第四部分:FileCoin第12章:FileCoin概述第13章:共识与密码学第14章:容错处理第15章:经济激励第16章:存储市场与检索市场第17章:如何挖矿及使用Filecoin参考论文论文列表 ...

August 20, 2019 · 1 min · jiezi

区块链技术应用于版权保护与其优势所在

Nowadays,区块链的应用于各个场景的捷迅可谓是炙手可热。在这个时间节点中,还有诸如墨者链之类的平台将区块链应用于版权保护,并且各个平台已经在实践中实现了该项目。 将区块链应用于版权领域真的可以解决抄袭成本低,获取证据困难和维护权利困难等行业的痛点吗?区块链如何在版权保护领域发挥作用?与传统版权服务相比又有哪些优势?区块链版权证书的法律效益是什么?是否还有必要支持公信力背书吗? 在互联网时代,受版权保护的数字作品已经大规模出现,要获得小视频,图像,在线作品和音频的版权保护并不容易。对于大量的在线作品,版权保护中心中国的版权登记,除了资金和时间的高成本外,还证明了版权登记的及时性。 “区块链技术通过运用数据加密、时间戳、分布式共识和智能合约等手段, 在节点无需信任的分布式系统中实现基于去中心化的协作,提高效率,降低成本。” 墨者安全将区块链技术应用于版权领域如下三个场景: 一是确权,区块链可作为有时间戳信息的分布式数据库来记录知识产权所有权情况,提供不可篡改的跟踪记录,而无需去寻求第三方信托的帮助;二是用权,区块链不可篡改的特性可以完整记录作品的所有变化过程,有利于实现版权交易的透明化,而通过智能合约,作品的用户便可向作品的版权所有人进行自动化的支付;三是维权,区块链可以将侵权电子证据进行高可信度存证,降低取证成本和提高证据证明力,为司法取证提供技术保障和结论依据。 At the same time it also means,至少在当前环境下,区块链进行确权依旧需要与国家机构接洽,依旧需要公信力背书,那么对比已存在的传统版权登记服务,岂不是多此一举吗? 相较于现行的版权保护服务,区块链具有明显优势,因为如果去版权保护中心进行版权登记,不仅需要缴纳登记费还需要耗费较高的时间成本。“一是传统版权登记的周期太长,官方的审核一般需要20个工作日;二是版权登记的价格偏高,通常登记单件作品的市场价得500多元。” 除确权外,在维权上,区块链并不能对侵权行为进行判断,这是否意味着区块链在维权方面并无用武之地? 对此,墨者安全表示,虽然区块链不能判断行为本身是否侵权,但是相较传统的电子存证方式,区块链在记录侵权证据时成本更低、容量更大,与此同时也提升了普通电子证据在法庭上的司法证明效力。

August 20, 2019 · 1 min · jiezi

HPBWalletHPB钱包Xcode集成

HPB-Wallet:HPB钱包Xcode集成1 集成说明由于HPB主网账户底层算法和以太坊相同,因此我们可以采用以太坊的底层算法对接HPB。熟悉以太坊的朋友都知道,以太坊提供了一个Web3.js API 中文文档的库,通过调用js的代码去实现区块链DApp的开发。 但是对于iOS的小伙伴来说,直接调用js无疑是很困难的,并且从实现上来说也很复杂。因此我们找到了一个swift代码实现的web3swift的库,通过这个我们可以使用swift语言去开发应用,这让实现变得简单。接下来,我们就以这个库为基础,详细介绍钱包的开发过程。 2 Xcode工程设置2.1 开发环境 支持iOS 9.0以上系统使用Xcode 9或更高版本swift4.1开发语言2.2 Xcode工程设置 库文件的导入使用cocoapods,详细安装步骤,请点击 创建Podfiletouch Podfile 使用CocoaPods 安装 web3swift目前HPB Wallet采用 web3swift 0.7.0版本,后续也会以该版本作为基础进行说明。 platform :ios, '9.0'target '<Your Target Name>' do use_frameworks! pod 'web3swift', '~> 0.7.0'end在Podfile所在的文件夹下输入命令: pod install 导入成功,启动工程在使用的地方导入头文件。 2.3使用CocoaPods的问题 pod search无法搜索到类库的解决办法(找不到类库)(1)执行pod setup(2)删除~/Library/Caches/CocoaPods目录下的search_index.json文件 pod setup成功后会生成~/Library/Caches/CocoaPods/search_index.json文件。终端输入rm ~/Library/Caches/CocoaPods/search_index.json删除成功后再执行pod search(3)执行pod search安装好了web3swift库,接下来我们会讲解如何创建钱包。作者:感谢HPB Wallet 开发团队整理供稿。 更多技术咨询 如果你想了解更多关于钱包的技术文章,请访问:HPB-Wallet 如果你想了解更多关于HPB的技术信息,请访问我们的GitHub WiKi:HPB WiKi of GitHub 如果你想获得更多HPB信息,请关注我们的官方网站:HPB Website

July 26, 2019 · 1 min · jiezi

阿里云Link-TEE获得全球首款GlobalPlatform-TEE全配置安全认证

2019年7月12日,阿里云Link TEE正式获得由国际标准组织GlobalPlatform(以下简称GP)颁发的TEE安全评估认证证书,也成为全球首款获得GP TEE全配置(支持TEE Time and Rollback PP-Module和TEE Debug PP-Module)安全认证的产品。 GP是跨行业的国际标准组织,也是全球基于安全芯片的安全基础设施统一的标准的制定者,制定了可信执行环境的标准,是TEE(Trusted Execution Environment)产品全球最权威的专业安全性评估机构。目前,GP TEE安全性认证已是公认的TEE方案在行业纵深方向发展的必由之路。阿里云Link TEE本次斩获的 “全球首款”是国内TEE安全方案在国际上的一个具有里程碑意义的事件。 此次GP TEE安全认证,由国内知名第三方安全实验室DPLS Lab提供专业测评,基于Link TEE v1.1.3软件产品,使用NXP的i.MX6QP SoC作为硬件载体,支持可信应用程序的硬件隔离,提供数据和密钥安全增强保护,可以为客户提供符合GP TEE Protection Profile全配置的商业TEE安全解决方案。 阿里云智能IoT资深安全专家董侃非常看好TEE在物联网领域的应用场景,“阿里云Link TEE是物联网设备的可信计算框架,是专为物联网设计的安全方案,可以提供不同安全等级的可信保护。阿里云Link TEE基于ARM Trustzone或C-SKY的安全扩展技术提供硬件级别的可信根,也提供软件级别的保护方案,具有代码小、运行速度快、安全等级高等优点。该产品在智能汽车、路测单元、智能售卖机、智能音响、摄像头、无人机、智能机器人、区块链可信应用和eSIM领域有广阔的应用场景和市场需求。” “市场一直在等待能增强用户信心的安全标准,”恩智浦高级副总裁Geoff.Lees 说,“阿里云Link TEE提供了这一安全保障,并开启了更快部署安全的工业和物联网解决方案的大门。我们正积极与阿里云合作,提供我们特有的价值与能力,共同制定统一的认证标准,提高安全和隐私的门槛。” DPLS Lab的实验室副主任安焘表示,“作为GlobalPlatform国内首家认可并授权的具备TEE全面评估能力的的安全实验室,有幸能担当此次阿里云Link TEE安全评估实验室,与阿里云物联网安全团队精诚合作对该产品功能符合性与安全抗攻击能力进行全面评估,并经过不懈努力最终达到GP严苛安全标准,完成了此次全球首款全配置TEE安全认证,同时该产品也是GP全球范围内认可的第三款TEE产品。” 本文作者:云媗阅读原文 本文为云栖社区原创内容,未经允许不得转载。

July 16, 2019 · 1 min · jiezi

去中心化身份-ID-DIDs

昨天去参加 ArcBlock 的区块链漫游指南讲座,还是比较有收获。比较引起我兴趣的主要有两个内容,一个是讲座中提到的 Decentralized Identifiers(DIDS),即去中心化身份,另一个则是基于 Forge 的 DApp 开发。讲真,在这之前对 DApp 只有一点粗浅的认识,了解完 Forge 之后才勾起了我的兴趣 —— Dapp 开发居然可以如此简单!不过本篇就先主要介绍 DIDs 吧,Forge 的部分留到下一篇讲。 什么是 DIDs?DIDs 是 W3C 小组提出的一份关于去中心化身份的草案。我们在物理世界中会用身份证、驾驶证、护照等等标识自己的身份,而在虚拟的网络世界中,我们则需要注册各种各样的账号,不同的应用会分配给我们一个 id 来标识我们是这个应用中的谁。 在网络世界中,我们还经常会使用一些第三方来登录某个应用。比如常用的微信授权登录,Google 授权登录、Facebook 授权登录等等。我们使用这些第三方登录的诉求是减少账号的产生,我只要有很少的几个账号就可以访问任意的应用了,不需要记住过多的账号和密码。但同时,这些第三方登录在给我们打开方便之门时,隐私也已经在到处流窜了 —— 当你拿着同一个账号在不同的应用之间切换的时候,你的数据也在这些应用之间流动了,数据是你的吗?不是,你的数据属于那些应用背后的公司。你今天想买一块儿手表,明天你就能在别的地方看到手表的广告。细思极恐,你可能已经是赤裸裸的了,只是取决于别人想不想挖掘你。 DID 是为了保护你的隐私而生的。首先 DID 一定是基于区块链的,你的凭证不应该属于某个集中式的服务,他不应该属于任何人,只属于你,区块链技术为这个目标的实现提供了很好的基础,你的凭证分散在全球的任意节点上,而且只有你能够管理你的凭证。 DID 不需要向任何人申请,不会有任何第三方持有你的 DID,你的 DID 只有你能持有,你持有的 DID 能够通过一些算法证明你是你。 我理解的 DIDs 原理首先 DIDs 是以区块链技术为基石的,区块链为 DIDs 提供了安全可靠的身份注册表。你拿着你的 DID 能够找到他对应的 DID 文档,DID 文档是一组特殊的数据结构,可能是个 JSON 也可能是别的,里面会包含一些与该 DID 有关的信息,比如加密材料,身份验证套件,具体的服务端点等。 比如小 A 通过某个 DApp 发送给我一个文件叫我签署,我之前没用过这个 DApp,而这个 DApp 如果支持某种 DIDs 的实现,那我就可以按照这种 DIDs 的生成算法,生成一个 DID,并把我的一些认证信息填入进去(比如身份证号,手机号,邮箱等等)。然后我使用这个 DID 作为我对这个 DApp 的授权 ID,这个 DApp 可以拿着我的 ID 去校验我是不是我,校验的具体方式都在 DID 文档中定义好了,校验的时候可能会调用 DApp 提供的某个接口(提供了具体的校验方法),但是 DApp 是拿不到我的个人信息的,他只能拿到校验的结果是 true 还是 false。 ...

July 14, 2019 · 1 min · jiezi

Nervos-强力招募区块链开发工程师

继《Nervos 与火币联手打造金融公链》新闻发布后,我们马不停蹄开启了新一轮人才招募计划。区块链开发工程师们、以及有志于投入和钻研区块链开发的,请瞄过来!加入我们,一起开启区块链工程实践的黄金时代! 什么是区块链开发十年间,区块链从 1.0 发展到了 3.0,从点对点的电子现金到智能合约再到扩容解决方案的实践,区块链技术的不断进步让我们相信一个更加美好的新时代已经来临。 区块链技术设计密码学、经济学、共识算法、P2P 网络、数据存储等多领域。作为一种革命性技术和新的发展领域,区块链为开发者和技术爱好者创造了新的就业机会。 区块链开发主要分为两个主要模块:核心区块链开发和区块链软件开发。核心区块链开发人员主要负责开发区块链系统的架构,如何设计协议,共识协议的设计以及与区块链技术相关的其他高级决策和开发。而区块链软件开发人员使用 Core Blockchain 开发人员设计的架构和协议来构建在区块链技术上运行的去中心化应用程序。 关于 Nervos NetworkNervos Network 是由 Nervos 基金会成立,通过一层公有链协议 Nervos CKB 保证网络的安全性与去中⼼化,二层协议提供具有可扩展性的交易和计算服务,以及多个应用层协议衔接商业场景。 2018 年 7 月 Nervos 完成 2800 万美元的融资;2018 年 11 月,Nervos CKB 代码开源;2019 年 5 月,CKB 测试网正式上线。 Nervos 的工程师们Talk is cheap,show me the code。Nervos 的开发团队是一群热爱开源的 Hacker,他们希望用最简单的代码解决问题,但简单并非容易。20 多位开发者在 400 多个日夜、5 次封闭开发,将 Nervos CKB 测试网呈现。 开发团队有着深厚的区块链技术研发和开源精神 首席架构师谢晗剑(Jan)曾是以太坊(Ethereum)核心研究团队唯一中方成员,与 Vitalik 一起从事以太坊的早期 PoS 协议和 Sharding 方案的研究,实现了以太坊 PoS 的早期原型。他设计与开发了世界上第一个开源数字货币交易所 Peatio 以及世界上第一个使用微服务架构的开源企业区块链内核 CITA。 ...

July 12, 2019 · 1 min · jiezi

AElf随机数合约标准ACS6

本文主要讨论区块链系统中随机数的常见方案,AElf中对于可提供随机数的智能合约提供的标准接口,以及AEDPoS合约对ACS6的实现。 关于ACS的说明可见这篇文章的开头。 区块链和随机数区块链系统中,与合约相关的随机数应用大致有几种场景:抽奖、验证码、密码相关等。 而由于区块链本质上是一个分布式系统,他要求各个节点的运算结果是可验证的,传统的随机数生成结果在不同机器上基本不会一致,让所有的节点产生同样的随机数又不造成过多的延时是不可能的。 好在区块链系统中生成一个可用的随机数,我们已知有几种方案。 中心化生成随机数。随机数由可信的第三方提供,如RANDOM.ORG。Commitment方案,或者hash-commit-reveal方案。如果读者有读过AElf白皮书会发现AElf主链共识用于确定每一轮区块生产者确定生产顺序的in_value和out_value便采用了这种方案:区块生产者在本地生成一个随机的哈希值in_value后,先公布承诺(即out_value),其中out_value = hash(in_value),到了合适的时机再公布随机哈希值in_value,其他节点只需要验证out_value == hash(in_value)就可以了。这里的in_value可以认为是一个随机数。采集区块链状态信息作为种子,在合约中生成随机数。万一被人知道了随机数的生成算法(智能合约的代码是公开的),再获取到正确的种子,这个方案生成的随机数就可以成功预测的。不敢相信还真有人用这种方式。 显然,站在去中心化的角度上考量,Commitment方案至少是一个可用的方案,只需要保证作出承诺(commitment)的人不会自己偷偷提前公开随机数,或者自己利用随机数作弊即可。 然而很不幸,其实在区块链系统中,这是无法保证的:我们无法保证生成随机数的人不会利用信息不对等来做出不公平的事情,比如当这个随机数被作为某次赌局开奖的依据时,随机数的生成者哪怕在赌局开始之前就做出了承诺,依然可以选择性地中止公开这个随机数——这样相当于他得到了“再玩一次”的机会,因为如果他不公开这个随机数,要么赌局会选择其他人公开的随机数,要么这个赌局会作废。 如果预防随机数生产者的选择中止攻击呢?有一系列成熟的方案,参看Secret Sharing。 简单解释一下:现在有五个人A~E,每人掌握一个公私钥对,此时A产生了一个随机数Random,生成对应的承诺Commitment,同时将随机数Random与B、C、D、E的公钥进行加密得到四个SharingPart,加密SharingPart时便保证只需要凑够B~E中两个人就可以恢复Random,将SharingPart和Commitment一起公开。这样哪怕他自己因故没有公开Random的值,B~E中任意两个人用自己的私钥分别对自己收到的SharingPart解密,凑齐两个解密后的数值(要按A加密出SharingPart的顺序),便可以恢复出Random。而万一两个SharingPart没能恢复出Random,只能认为A从一开始就决定作恶——这时候只需要在区块链经济系统的设计中,让A付出代价就行了。比如直接扣除A申请称为随机数生产者缴纳的保证金。(TODO: 画图) 此外,我们还可以选择不依赖某一个个体产生的随机数,而是选择多个个体的随机数进一步计算哈希值作为应用场景中的可用随机数。如此我们可以比较稳定、安全地在区块链系统中得到随机数。 ACS6 - Random Number Provider Contract Standard我在之前的一篇文章中解释了AElf区块链关于共识的合约标准,实际上是作为AElf主链开发者对合约开发者实现共识机制时推荐实现的接口。而关于随机数生成,我们制定了ACS6,作为对任何提供随机数的合约推荐要实现的接口。 不出意外地,ACS6是选择对Commitment方案进行抽象,得到的合约标准。 支持使用ACS6的场景如下: 用户对实现了ACS6的合约申请一个随机数,类似于发送了一个定单;实现了ACS6的合约给用户返回一些信息,这些信息包括用户可以在哪个区块高度(H)获取得到一个随机数,以及用户获取随机数可用的凭据T(也是一个哈希值);等待区块链高度到达指定高度H后,用户发送交易尝试获取随机数,凭据T需要作为该交易的参数;实现了ACS6的合约根据凭据T返回一个随机数。如果用户尝试在高度H之前获取随机数,本次获取随机数的交易会执行失败并抛出一个AssertionException,提示高度还没到。 基于以上场景,我们设计的ACS6如下: service RandomNumberProviderContract { rpc RequestRandomNumber (google.protobuf.Empty) returns (RandomNumberOrder) {}rpc GetRandomNumber (aelf.Hash) returns (aelf.Hash) {}} message RandomNumberOrder { sint64 block_height = 1;// Orderer can get a random number after this height.aelf.Hash token_hash = 2;}用户发送RequestRandomNumber交易来申请一个随机数,合约需要为本次请求生成一个凭据(token_hash),然后把该凭据和用户能够获取该随机数的区块高度一起返回给用户。高度达到以后,用户利用收到的凭据(token_hash)发送GetRandomNumber交易即可得到一个可用的随机数。作为合约,在实现该方法的时候应该缓存为用户生成的凭据,作为一个Map的key,这个Map的value则应该根据合约自己对随机数的实现自行定义数据结构。 比如,AEDPoS合约在实现ACS6的时候,可以将该Map的value定义为: message RandomNumberRequestInformation { sint64 round_number = 1;sint64 order = 2;sint64 expected_block_height = 3;}其中round_number指示为了生成该用户申请的随机数,应该使用哪一轮(及之后)各个CDC公布的previous_in_value值;order为这个用户申请随机数的RandomNumberProviderContract交易被该轮第几个CDC打包(所以需要使用该轮该次序以后公布的previous_in_value作为随机数生成的“原材料”);expected_block_height则是要告知给用户的需要等待到的区块高度。 ...

July 12, 2019 · 3 min · jiezi

开源免费的EOS-ETHXLM收款插件

无需搭建比特币/以太坊/EOS全节点(每一个都需要几百G空间)无手续费,你的程序你做主所有收到的钱实时自动转移到开发者个人账户,即使被拖库也没钱可盗。GitHub 地址 开发者访问本地 http 接口,向用户展示付款方法,用户付款后程序会访问本地回调URL 步骤: 1. 创建一个Mixin Messenger账户.访问 https://mixin.one/messenger 下载对应手机端App。 中国大陆用户可以访问 https://a.app.qq.com/o/simple... 下载 2. 激活开发者账号登陆 https://developer.mixin.one ,用App扫码登录 这个 教程对于新开发者很有用。 Clone, build, rungit clone https://github.com/myrual/mixin-network-snapshot-golangcd mixin-network-snapshot-golang编辑一部分配置信息const ( userid = "3c5fd587-5ac3-4fb6-b294-423ba3473f7d" sessionid = "42848ded-0ffd-45eb-9b46-094d5542ee01" private_key = `-----BEGIN RSA PRIVATE KEY-----MIICXAIBAAKBgQDACTrT4uaB9el9qe0MUOsFrm8kpaDI9PowauMB1Ha25mpfL+5hMFqISLS5z2P89nAsXBg+KyQ2gAVA6rBwW/ZqOc1PKiJhhLBS80nzo3ayfv7OlzNGIxMyqD5izCCtPixnqpuTePoPWq4CNZlxop0VYklsWEfU0U0qqMBgmtqYfQIDAQABAoGAR8crZed5oTn5fC73m5LjRcxdXqVJ49MtcMuC7jwr41FckRepUkpwjGAgrRMHnJXAd9Q0e4hEkNppHEqciGLXR1dQfZnaM1Gnv7mD3oSgHaH+4qAMnNOCpvwW4Eu3yp9b1UGj9SvM3D2BrpA+MGf0E/yEJzpRcT956W6SPYYSegECQQDm4uTK+teoxr1ZagJZuCta+IhMzpxIWMob+JN/Huf7OnRcIa9JpXngg4tHOUWmZCDQdqeJMpaQc8SQ44hba015AkEA1OyJswNIhdmvVp5P1zgREVVRK6JloYwmAtj+Qo4pWJ117LqH4w+b491r4AeLEGh8VrZ4k6Hp+Cm783S2jTAWJQJARbWdlHdV45xVkQiDuyjy1h2RsXb0EpfUNcvAZLIlImIMvcBh1x+CA7pTs+Zj1BAJJEee37qJYQXDBGfeRJPKKQJAVG+cx42Ew/eoTZwoIzvLoOkJcFlNHjwaksSER9ZiVQ7URdVOr99vvXQAJG45Wn9k12oy9LCfvNan/wqIngK0tQJBAL1Wc02seEbMeWyt5jycJEhn6G8F18s9S1v0GXb4U/7/6Y87P3TmDLcEuCXkrbZQaCX7jVLu0BkDw8To58TWjh0= -----END RSA PRIVATE KEY-----` ADMIN_MessengerID = ""//this is your mixin messenger id, you can find your id in contact page.)编译go build mixin_snap.go运行./mixin_snap数据库同一目录下会生成一个test.db 的sqlite3文件。 如何使用获取数字资产当前价格信息,因此可以计算客户应该付多少数字资产curl -X GET 'http://localhost:8080/assetsprice'价格结果如下,其中Full Name是该币种全名,Symbol是在交易所和钱包的缩写符号,USDPrice是当前资产美元价格,BTCPrice同理。 ...

July 12, 2019 · 3 min · jiezi

MakerDAO-万字深度报告揭示以太坊最大稳定币的价值所在及启示意义

近期,秘猿科技研究院对 MakerDAO 项目进行了深入研究,本文是基于研究成果,撰写而成的《MakerDAO深度报告》。该报告分为四个章节,分别向读者阐述了以下四个部分,即: 稳定币的存在意义 MakerDAO 的研究价值 MakerDAO的分析框架 系统目标 产品分析 治理机制 MakerDAO 的启示意义稳定币作为一种基于区块链技术的新型支付工具,意义重大。而 MakerDAO作为最早的去中心化自治组织之一,为以太坊提供稳定币,系统长久运行,治理结构不断优化,新提案也陆续融入,具有一定的研究价值。我们希望能够通过对MakerDAO 的深入研究,能为整个加密资产行业共同面临的困境带来一定的启示。 作者:tequila、William、cj 稳定币的存在意义1.1 起源比特币通过其不断攀升的市值影响力,从最初的密码朋克和极客圈走入主流资本的视野。在过去十多年间,支撑比特币运行的区块链技术并未实现真正的大规模应用,然而基于其理念或技术架构衍生出的加密资产生态却格外生生不息。我们 观察到有一种对加密资产应用的共识逐渐在早期勘探者中形成,即“稳定币”— —一种基于区块链技术的新型支付工具。 “稳定币”是人们在基于区块链技术的加密资产发展中提出的众多隐喻中的一 个。就如同其他隐喻一样,这些新的名词并非用来标新立异或引发歧义,其真正的用途是让具有不同背景和经历的人凭借想象力和符号来直觉地理解事物,而不需要分析和概况。隐喻是管理科技创新的手段,人们可以通过它将隐性知识和显性知识放到一起,并开始交流。 1.2 类比为了让新的物种更快地被大众所接受,人们往往习惯于通过对比现存的事物来凸显其优势。然而,这种方式常常会限制我们对新物种的判断及理解。在现代成熟商业制度中,我们早已习惯使用法币作为支付工具。然而伴随着比特币成长的区块链技术又赋予了“稳定币”怎样的优势,以唤起我们对这种新型支付工具的需求呢?在回答这个问题之前,我们仍然需要了解下比特币究竟解决了哪些传统支付无法实现的问题。比特币是一种无审查的电子现金,可以在没有金融中介参与的情况下,实现点对点的线上支付功能,而区块链技术则帮助其有效避免了支付过程中的双花的问题。尽管比特币没有责任主体,但这并不妨碍它和当下被严格监管的传统金融系统共存了十多余年的事实。然而,自比特币诞生以来,人们对其用途的争议从未停止过,这一分歧也同时反映在其剧烈波动的价格上,这让人们很难将其作为价值存储或延期支付工具。 因此,人们也就自然而然地期待通过区块链技术和比特币的设计理念来缔造一种价格相对稳定的支付工具,大家将其称之为“稳定币”。我们通过对市场上各类稳定币的研究发现,以下几种需求较为主流: 1) 锁定利润:在缺少法币交易对的加密资产交易所里,投机者和交易者需要将 波动较大的加密资产转换成价格波动较小的稳定币来锁定收益。此外,矿工 需要降低因加密资产价格剧烈波动而带来的挖矿收益风险。2) 价格套利:当稳定币价格脱锚或遭遇大幅波动时,套利者预期项目方会采取 行动以维护其价格的稳定,从而实施套利。3) 稳定避税:通过将法币转换成稳定币,持有人可以规避其所在地的金融系统 对其获利的监管。4) 银行系统以外的支付通道:部分加密资产的矿工、投机者和用户可能并没有 本国商业银行的账户,通过持有稳定币,使得他们可以在任何有网络的地方 实现支付、转账及汇款等功能。其优势还体现在 7*24 小时的不间断市场及 无审查特性等。5) 抗恶性通胀:在一些法币通胀率极高的国家,其本国货币的自由兑换也会受 到限制。一些和美元锚定的稳定币成为这些恶性通胀国的货币避险工具。 1.3 演化在生机勃勃的加密资产生态内,不少稳定币项目都将短期目标聚焦在支付工具上, 并将其宏伟的长期目标落在全球清算及结算工具上。为了实现这些当下看来“不可思议”的目标,项目创始团队借鉴了各种传统外汇市场的“货币稳定机制”以试图来试验出最佳策略组合。按照人们的预期,稳定币的目的地会是一个巨大的市场,以至于传统资本巨头 JP Morgan 和主流社交媒体 Facebook 也积极参与其中。我们根据稳定币的内生信用主体,将其分为以下几类: 1) 依靠第三方机构信用发行的稳定币:其特点是仍然需要可信的第三方来对资 产进行信用背书及托管。 a) 传统金融机构发行的稳定币。银行基于区块链技术提供的新型可确权记账方式,如 Silvergate Network(SEN) 支付和 JPM Coin。这类代币未来存在为企业级用户进入加密资产领域提供服务的可能性。b) 根据发行方在第三方银行账户内的法币存款而发行的稳定币。这类稳定币的风险主要来自于账户托管银行的偿付能力风险及发行方的自我监督及审计风险,如 Tether 等。 c) 和除法币以外的其他外部资产相锚定的商品型稳定币。这类稳定币往往基于高质量的流动性资产质押来发行,这类资产有国债、大宗商品、股票等。 2) 以单个或一篮子加密资产作为价值锚定的稳定币:其特点是缺少长期价格稳定机制,且加密资产之间较高的相关系数会直接限制一篮子组合的风险分散程度。这类稳定币的代表项目有 MakerDao 等。 ...

July 11, 2019 · 5 min · jiezi

邀请函百度超级链首场Handson带你轻松玩转区块链约么

百度超级链技术开源以来,得到了开发者们的持续关注,开发者群常常爆满,1群、2群、3群……持续增开,群内7*24小时热火朝天的讨论和咨询,把我们的群助手、超级链技术工程师忙的不亦乐乎。 如果你没见过凌晨3、4点钟的百度,(举报小编歪楼啦,这是什么梗?)那你一定要见开发者和百度工程师讨论到凌晨的景象。 有图有真相???????????????????????? 在我们的开发者社群中,提issue、找bug、探讨行业热点话题以及各种商业应用的交流始终不断,开发者们的热情如这盛夏骄阳般火热。 社群中的神交是不能完全满足开发者交流的愿望的,接下来福利来了,百度超级链学院大讲堂计划于7月27日在北京举办首场线下活动,百度超级链的技术和产品专家将与开发者们亲密接触,可以现场聆听技术大拿对超级链乃至区块链最新技术的解读,了解时下最热门的超级链商业应用案例,同时还可以在小X姐姐等工程师的指导下部署区块链网络,创建智能合约,进行转账查询等操作。那些你之前关注的超级链问题—— VAT是什么用处? VM开源了么,兼容性如何? 超级链在SaaS方面有没解决方案? 记账的时候,记账内容可以自己定义吗? ……来现场,我们给你答案!百度超级链首场Hands-on,邀你一起来组网! 下面为大家敲敲黑板,画重点—— 本次活动亮点有:• 时下,最热门的区块链技术应用案例分享超级链行业应用专家为你分享超级链在版权保护、司法存证、政务和金融领域数据协同等场景下已落地的商业应用项目,以及超级链BaaS平台和更多解决方案 • Hands-on环节超级链资深工程师将手把手现场指导开发者部署超级链网络。从现场组网、到首个创世块配置,再到智能合约编译、部署和调用,助你成为实践型选手。 • 小X姐姐嘉宾亮相每周都出现公众号里、视频课程里的Xuper红人,明明可以靠颜值偏偏靠coding的——“小X姐姐”将空降现场,为大家来主题演讲,讲什么呢,到现场你就知道啦。 【活动信息】• 时间:7月27日14:00-17:00• 地点:北京市中关村(报名审核通过后告知详细地址)• 邀请人群:互联网或者区块链技术开发者 【日程安排】12:30-14:00 活动签到14:00-14:40 超级链核心技术解读14:40-15:20 超级链四大解决方案及行业应用15:20-15:45 专家QA解答15:45-16:00 课间休息&自由交流16:00-17:00 超级链Hands-on(网络搭建、转账查询、创建智能合约等) 【特别提醒】• 本次活动免费,审核通过后即可参会• 活动中设有线下部署超级链网络等操作辅导环节,请自带运行Linux/MacOS 系统的笔记本,并提前安装git、go 1.12+、gcc 4.8+、docker,并从github上下载最新版本分支的最新代码:https://github.com/xuperchain...• 悄悄告诉你,老板说参会人数不达标就要取消活动啦!欢迎大家多多转发本活动,推荐给你的开发者朋友参加哦 【报名方式】• 戳链接填写并提交报名表即可报名:http://hdxu.cn/YL9D8• 活动开始前主办方将统一对报名者信息进行审核;审核通过后,您即可凭报名平台下发的电子票券参加本次线下沙龙活动 如果你是区块链开发者、技术发烧友,欢迎加入超级链开发者社群。加群方式:添加百度超级链小助手微信(image-baidu),验证口令:技术论坛加群

July 11, 2019 · 1 min · jiezi

AElf共识合约标准ACS4aelf开发者社区

ACS:AElf Contract Standard,AElf合约标准,顾名思义,就是开发AElf智能合约时需要继承和实现的一些接口。所有的ACS都通过protobuf的service定义。 ACS4作为ACS之一,是实现任意一种共识合约时,需要实现的一些接口。本文主要讨论共识标准接口的可行性和AElf中为共识合约的实现所提供的接口及其他支持。抽象共识的思路站在实现区块链共识的角度,我们主要关心三件事: 谁可以产生区块,如PoW共识允许每一个人参与算力竞争,PoS和DPoS共识则要对此做出一定限制;如果可以产生区块,那么应该在什么时候产生,或者说当前的时间能不能开始尝试广播区块;作为一个区块链全节点,应该怎么验证这个区块的合法性。 针对这三点,我们很容易想到三类接口: 输入公钥,判断这个公钥有没有资格产生区块,PoW共识直接返回true就可以了,DPoS可能会对大部分人返回false。输入公钥,返回这个公钥下一次能够产生区块的时间戳,或者返回这个公钥当前能不能产生区块。全节点得到区块头(block header)之后,输入从中提取到的共识数据,验证这个区块的1和2相关信息,即,PoW共识需要验证nonce的合法性,DPoS共识需要验证新区块的生产者身份合法性、生产者是否尊重自己的时间槽,得到验证结果。除此以外,为了得到接口3中的输入,即区块头中的共识数据,至少还需要为区块生产者提供一个生成区块头共识数据的方法。 AElf中的实践首先,AElf的主链选择的共识属于DPoS,本文虽说讨论的是通用共识接口,也免不了倾向于多讨论(AE)DPoS。 其次,所有的共识合约标准上的接口,都是只读的,因为单纯获取这些数据无需改动WorldState。(WorldState是以太坊中的概念,AElf在开发中称用于存储合约的状态的数据库为State DB;除此之外还有Chain DB,用于存储区块本身,包括区块中的交易。) ACS4中合并了接口1和接口2,得到一个接口: rpc GetConsensusCommand (google.protobuf.BytesValue) returns (ConsensusCommand) { option (aelf.is_view) = true;} message ConsensusCommand { int32 NextBlockMiningLeftMilliseconds = 1;// How many milliseconds left to trigger the mining of next block.int32 LimitMillisecondsOfMiningBlock = 2;// Time limit of mining next block.bytes Hint = 3;// Context of Hint is diverse according to the consensus protocol we choose, so we use bytes.google.protobuf.Timestamp ExpectedMiningTime = 4;}很显然,NextBlockMiningLeftMilliseconds的值取决于ExpectedMiningTime(预期出块时间)与当前时间(调用这个接口的时间)的差值。 ...

July 11, 2019 · 1 min · jiezi

AEDPoS合约实现之GetConsensusCommand

正如文章AElf共识合约标准中所述,GetConsensusCommand接口用于获取某个公钥下一次生产区块的时间等信息。 在AEDPoS的实现中,其输入仅为一个公钥(public key),该接口实现方法的调用时间另外作为参考(其实也是一个重要的输入)。AElf区块链中,当系统内部调用只读交易时,合约执行的上下文是自行构造出来的,调用时间也就是通过C#自带函数库的DateTime.UtcNow生成了一个时间,然后把这个时间转化为protobuf提供的时间戳数据类型Timestamp,传入合约执行的上下文中。 事实上,无论要执行的交易是否为只读交易,合约代码中都可以通过Context.CurrentBlockTime来获取当前合约执行上下文传进来的时间戳。 本文主要解释AEDPoS共识如何实现GetConsensusCommand。在此之前,对不了解AElf共识的聚聚简单介绍一下AEDPoS的流程。 AEDPoS ProcessDPoS的基本概念我们不再赘述,假设现在AElf主链通过投票选举出17个节点,我们(暂时地)称之为AElf Core Data Center,简称CDC。(对应eos中的BP即Block Producer这个概念。) 这些CDC是通过全民投票在某个区块高度(或者说时间点)的结果,直接取前17名得到。每次重新统计前17名候选人并重新任命CDC,称为换届(Term)。 在每一届中,所有的CDC按轮(Round)次生产区块。每一轮有17+1个时间槽,每位CDC随机地占据前17个时间槽之一,最后一个时间槽由本轮额外区块生产者负责生产区块。额外区块生产者会根据本轮每个CDC公布的随机数初始化下一轮的信息。18个时间槽后,下一轮开始。如此循环。 Round的数据结构如下: // The information of a round.message Round { sint64 round_number = 1;map<string, MinerInRound> real_time_miners_information = 2;sint64 main_chain_miners_round_number = 3;sint64 blockchain_age = 4;string extra_block_producer_of_previous_round = 7;sint64 term_number = 8;} // The information of a miner in a specific round.message MinerInRound { sint32 order = 1;bool is_extra_block_producer = 2;aelf.Hash in_value = 3;aelf.Hash out_value = 4;aelf.Hash signature = 5;google.protobuf.Timestamp expected_mining_time = 6;sint64 produced_blocks = 7;sint64 missed_time_slots = 8;string public_key = 9;aelf.Hash previous_in_value = 12;sint32 supposed_order_of_next_round = 13;sint32 final_order_of_next_round = 14;repeated google.protobuf.Timestamp actual_mining_times = 15;// Miners must fill actual mining time when they do the mining.map<string, bytes> encrypted_in_values = 16;map<string, bytes> decrypted_previous_inValues = 17;sint32 produced_tiny_blocks = 18;}在AEDPoS合约中有一个map结构,key是long类型的RoundNumber,从1自增,value就是上述的Round结构,CDC产生的每个区块都会更新当前轮或者下一轮的信息,以此推进共识和区块生产,并为共识验证提供基本依据。 ...

July 11, 2019 · 4 min · jiezi

AELF开发者社区AElf区块链分红合约Profit-Contract接口和实现思路

初衷简单说,我们需要一个智能合约来管理所有的分红项目(profit item)。 分红项目是一个代币分配中心:每个分红项目的创建者(creator)可以为该分红项目注册(register)分红的接收地址(receiver address)或其他可以接收分红的分红项目,并为每个接收方设定权重(weight)。之后,每次分红项目的创建者释放(release)分红时,就会为其下注册的接收方地址(可以是一个单独的账户地址,也可以是一个分红项目的虚拟地址(virtual address))按指定的权重分配代币——把待分配的代币一律转化为ELF,或者直接采取Transfer的方式打到相应的地址上,或者等待接收地址的所有人自行获取分红(profit)。每次释放分红后,该分红项目的账期(account period)加一。 我们从中提取出几个概念: 分红项目(profit item)。通过分红合约创建出来的区块链代币分配中心。分红项目创建者(creator)。有权限为创造出来的分红项目注册分红接收地址。分红的接收地址(receiver address)。一个平平无奇的AElf区块链上的用来接收分红代币的账户地址。要注意的是,该部分分红需要接收人自行获取,不会在释放分红的时候自动打到这个账户上(见“获取分红(profit)”)。分红项目的虚拟地址(virtual address)。每个分红项目,都会通过其唯一标识(profit id)映射出来一个只有该分红项目的创建人可以操作的虚拟地址,这个地址仅用来释放分红,没有对应的公私钥对(碰撞出来这个地址的概率可以忽略不计)。子分红项目(sub profit item)。这是一个相对的概念,每个分红项目都可能成为子分红项目。子分红项目可以被其他分红项目分配权重,这样其他分红项目在释放分红时,会为子分红项目的虚拟地址打上一笔代币。获取分红(profit)。作为一个能够接收某个分红的普通用户,需要自行发送交易来获取自己应得的分红,这是为了避免被注册的接收地址过多,释放分红的交易执行超时。权重(weight)。我们选择使用权重来管理每一个分红接收地址能够获取的分红的比例,即(该接收地址被分配的权重/总权重),这样会更加灵活。在必要的时候,我们会限制某一类分红项目的总权重,并把一部分权重分配给固定的(子)分红项目,以达到强行分红的目的——只要这一类分红项目释放了分红,固定的子分红项目就可以至少接收到一定比例的分红。如DApp开发者部署的合约可以选择将一定比例的分红贡献给国库(Treasury)。释放(release)分红。将该分红项目虚拟地址上的余额全部通过Bancor合约转化为ELF,并Transfer给分红接收地址的过程。账期(account period)。账期的时长由每个分红项目自行控制,释放分红后账期自增1。国库(Treasury)。这可能是AElf区块链中最大的分红项目,它可以作为区块生产奖励、合约交易费分红、合约利润分红的子项目,也作为一般的分红项目将它虚拟地址中的余额分配给上一届产生了区块的CDC、参加了AElf竞选的验证节点VDC、参与了AElf竞选的选民等。 接口创建分红项目: rpc CreateProfitItem (CreateProfitItemInput) returns (aelf.Hash) {} ... message CreateProfitItemInput { sint64 profit_receiving_due_period_count = 1;bool is_release_all_balance_everytime_by_default = 2;} message ProfitItem { aelf.Address virtual_address = 1;sint64 total_weight = 2;map<string, sint64> total_amounts = 3;// token_symbol -> total_amountsint64 current_period = 4;repeated SubProfitItem sub_profit_items = 7;aelf.Address creator = 8;sint64 profit_receiving_due_period_count = 9;bool is_release_all_balance_everytime_by_default = 10;bool is_treasury_profit_item = 11;} ...

July 11, 2019 · 2 min · jiezi

区块链应用落地不是狼来了而是老虎来了

蔡维德、何娟 (中国亚洲经济发展协会区块链产业专业委员会) 1.我们必须要证实消息正确后才行动1970年美国和日本合作拍了一部电影叫做《虎!虎!虎!》,其中上半段讲到日本偷袭珍珠港的故事。日本偷袭珍珠港,美国几乎没有预料到,但是电影上却给了一个不同的故事。 夏威夷美国军官虽然没有得到上级消息认为日军要攻击珍珠港,可是却有许多情报信息送到指挥官表示日军即将来袭。尽管如此,夏威夷的指挥官却一再认为,“等到攻击的消息确实之后,我们才行动”。 就这样,指挥官一直等到确实的攻击消息来了之后才采取行动。结果不言而喻,当指挥官赶到了指挥基地的时候,珍珠港已经被炸的乱七八糟,像下面的图片一样,大部分的飞机都没有起飞,而在地面上被炸毁。看到这情形这军官嘴巴都合不起来,看呆了。 图 1:“虎虎虎”电影中,美国指挥官到达基地的时候,许多飞机已经在地面被日军炸毁 2.三只老虎,跑的快从2015年起笔者就一直在谈论区块链,认为这是500年来的一次巨大的金融创新[3]。在2016年2次拜访英国,和英国央行和伦敦城金融专家讨论区块链在金融的巨大创新。而这里谈的和数字代币没有任何关系,这里谈的都是国外合法合规的金融创新技术。 可是在中国当笔者谈这一话题的时候,有人回答说,“区块链在中国在2016年不会被使用,在2017年也不会被使用,10年后也不会被使用,而且以后永远不会被使用。”还有人说让国外去胡搞,几年之后就可以看到国外胡搞后的笑话。当笔者谈到这是500年最大的金融创新的时候,许多听着都忍不住哈哈大笑。 现在,4年过去了,我们看到的是怎样的国外笑话呢?是不是像夏威夷美军指挥官一样的笑话?不是电影的三只老虎,现在已经是多只老虎 [4,5,6]。而且以后新老虎还会不断出现,并且加速出现。 从2015到2018年7月之前笔者的论调是“狼来了”, 表示这会是将来;但是2018年7月之后,不再是狼来了,而是老虎来了,因为已经来临。 从2018年7月开始,IBM公司推出稳定币计划,这是被美国政府FDIC所支持的稳定币,意味着区块链的金融革命正式来临[8]。在这以前没有国家支持的稳定币发行,而且IBM在2018年8月就直接表明他们发行的是“数字法币”(CBDC)或是“数字美元”。 2019年2月,摩根大通银行也发行稳定币。巧合的是,IBM和摩根大通两个都做跨境支付。没有多久,脸书也公开开始做稳定币,也做跨境支付。分析师预测脸书市值会大增, 而且其支付系统预备进入中国市场虽然社交网站没有进入。 2019年6月5号,由14家银行也推出做稳定币,做结算用 (Utility Settlement Coins USC)。这14家银行包括瑞士、加拿大、美国、英国、日本、西班牙银行,一起推出数字加拿大币、欧元、英镑、日元、美元(聪明的读者,那个世界重要货币没有参与?)。 几天后,VISA也推出了VISA Connect——以区块链为基础的一个跨境支付系统。而且大家都做跨境支付! 读者可以想想如果这些项目都成功,以后跨境支持市场会是什么情况? 众所周知,这些都是世界著名的公司。例如摩根大通是美国最大的银行,脸书是世界上最出名的社交媒体,VISA是世界上最大的信用卡系统。当他们都采用区块链的时候,难道不是一件惊人的事情? 2019年5月国际货币基金会(IMF)也出报告[12],认为这些稳定币就是数字法币(CBDC),等于认同IBM在2018年8月宣告他们的稳定币项目就是数字美元。国际货币基金会也列举数字法币的优势。这些优势英国央行也列举过,而且英国央行还认为数字法币是国家货币政策的一个新工具,也是监管利器。因此这些稳定币的出现,不能只是当作新的金融产品的出现,这些还带来市场结构性的变化。这些稳定币不是世界政府不喜悦的数字代币,而是国外政府支持和鼓励的合法合规金融产品。例如IBM出的稳定币由美国政府FDIC担保支持,同时间美国监管单位一直在限制没有合法的数字代币。 如果国际货币基金会观点正确,14家银行发行稳定币是不是代表世界将很快会有数字加元、数字日元、数字欧元、数字美元、数字英镑? 我们是不是像美军夏威夷指挥官一样,认为必定要等到国外证实启动区块链项目才开始?现在国外项目已经如洪水一般的来了。事实上,这并不是现在才蜂拥而上。这现象早在2018年7月就开始,只是现在速度加快。 最近有知情人透露这次是一次巨大的商业竞争,国外的区块链项目由财团支持,预备在将来世界金融产业上居领导地位。 3.区块链布局区块链布局需要三方面:技术,资源,战略。 ·技术:中兴通讯的故事告诉我们,技术必须是自己的。如果中国继续使用国外技术例如超级账本,技术都在别人手中,以后产业很可能会有严重问题。 ·资源:国外这一次是多家重量级单位,例如14家银行,摩根大通和170家国际银行,IBM公司和40家银行合作。 ·战略:美国是兵分三路,从货币、市场、到监管法规,三管齐下。 中国首先就不重视自己开发区块链技术,认为使用开源的伪链就可以,主动放弃在区块链技术上领导。没有自己的技术,在国际上没有地位。 中国金融资源丰富,如果有资源给中国区块链产业,现在大部分都给了国外的伪链。 在主流金融市场,中国还没有成熟的区块链战略思想。 4.ViSA 的区块链系统历史VISA本来是使用Chain 的链,而且投资3千万美元成为Chain的股东。这公司是2015年3大区块链初创公司之一(另外两家是R3 CEV 和DAH)。但是这家Chain公司的链一直有问题。笔者在2016年就认为其共识机制有问题,在2108年在台湾参加一次国际区块链会议,美国教授也公开认为有问题。终于VISA公司放弃自己投资的公司的产品。 ViSA的区块链支付项目起于于2016年10月。ViSA B2B Connect在2017年11月首次在试点阶段推出,以测试银行对银行的连接。现在已经在30个市场推出,计划在2019年底前扩展至90多个地区。这会挑战了SWIFT跨境支付的市场。 图2: VISA系统的架构 VISA原来对区块链的态度事实上是:公开赞同,实际上怀疑或是反对 [2]。人们对区块链态度一直可以分3种: 公开赞同,事实也支持;公开赞同,私下反对,还可能是强烈反对;公开反对。这次VISA从公开赞同私下反对,到公开赞同还开张做生意,这表示已经从第2种看法演变成第一种看法。 读者可以想想,到底我们自己单位是持守那个态度? 5.VISA区块链系统特性如果我们看图2 VISA公司的系统,会发现它不是一个传统的数字代币系统。它更像是一个区块链的记账系统,有下面特性: 没有经过SWIFT,而让银行和其他银行直接对接,这挑战SWIFT的历史地位。所以参与的银行系统必须事先通过批准,但是商家并不接这链,而是经过银行。例如商家C先得到银行A的批示,让后银行A、VISA、银行B在区块链上交易,让后银行B和商家D交易完成。所以主要是一种银行和银行之间的交易系统。这样架构其实和SWIFT系统很类似。这样的系统SWIFT在2018年也实验过[6],结果是超级账本不能处理34家银行,因为超级账本的“通道”技术不能支持超过这数目的银行参与。VISA系统和SWIFT非常像,也使用超级账本,能够支持多少银行参与?另外商家也不能上链,区块链保护的主要是银行和VISA而已,商家和银行之间的包含还是要使用传统机制。这会是支付系统,而支付系统的一个特性就是必须低延迟,这是公链不能做到的。6.SWIFT的悲哀SWIFT一直是世界金融中心的中心,主导世界跨境支付多年。但是今天出现的这些老虎项目,那个把SWIFT放在他们系统里面?IBM有吗?VISA有吗?IBM不但没有,还公开宣传以后不需要SWIFT。只有在SWIFT的实验报告里面看到使用区块链在跨境支付需要SWIFT系统。这不代表世界金融结构要大变? 7.国外也认为超级账本是伪链根据国外报道[1],超级账本根本不是区块链,IBM公司也收到许多批评。IBM公司在2018年公开承认超级账本的共识机制是“Kafka共识”,一个中心化的共识机制。 这是笔者在2017年7月在深圳演讲的时候提出的问题,笔者的质疑国外后来也引用。其实这事在2017年6月1日,笔者已经把这问题告诉从纽约来北京拜访的IBM全球副总裁,也表示我们可以帮忙解决这技术问题。所以这问题IBM至少两年前就知道这问题。 今天认定超级账本不是区块链已经不是中国的专利,美国媒体公开怀疑。大家问为什么把区块链系统的分布式拜占庭将军协议改换成中心化的Kafka共识协议?2019年4月笔者在美国硅谷参加IEEE国际会议多人也在谈论这问题。 8.解决方法VISA系统还是有许多问题。例如现在VISA系统有15000家金融机构,20亿客户。这个需求和34家银行就不能支持的性能差距非常远 (441倍和5800万倍)。 超级账本不是区块链,扩展性也有限。但这VISA系统可以使用中国推出的熊猫区块链互联网模型[7,11]来解决。每个银行可以有自己的账户区块链,经过这种区块链再经过VISA公司的区块链可以形成一个区块链互联网[9,10],如图3。这种情形,增加交易链可以支持更多的银行参与。 图3:区块链互联网解决VISA系统的问题,增加交易链,许多银行可以加入 而原来VISA系统商家不能进入,只能保护VISA和银行,但是这问题也可以解决。每家商家可以有自己的账户区块链,经过交易链和银行接。这样每个参与单位都可以上链。 图4:商家和银行都可以上链 这样, VISA系统可以有 ...

July 11, 2019 · 1 min · jiezi

以BOX为例介绍在Mixin-Network上发行数字资产ETF-的优势

笑来老师基于 Mixin Network 发行了一个 ETF:BOX。那么 Mixin Network 有什么关键特性非常适合用来构建数字资产的ETF呢? Mixin Network 是一个主网已经上线的公链Mixin Network 主网已经有25个节点,这意味着攻击 Mixin Network 需要控制9个主网节点,因此主网非常安全。Mixin Network 从发布测试网至今没有发生过一起资产丢失事件。 Mixin Network支持海量数字资产目前已经支持BTC, BCH, Bytom, Dash, Doge, EOS, ETH, ETC, Horizen, LTC, MGD, NEM, Tron, Sia, XLM, ZCash。以及所有ERC20, EOS token,TRC10 token。 这对于ETF来说非常方便,只需一个 Mixin Network 钱包,就可以管理很多种资产。下面这张图是当下 Mixin Network 持有的资产的前10名 在 Mixin Network 内点对点转账免费,而且交易进入不可逆状态等待时间小于1秒钟确认快且网内交易免费可以极大的方便ETF交易。 Mixin Network 资产和交易默认保密Mixin Network 内的交易数据使用了cryptonote的技术,交易的双方对全网匿名,只有交易双方知道细节。因此购买ETF的人非常安全,无法被追溯。 Mixin Network 账户持有人可以通过提供授权码让他人查询账户余额ETF发起方可以生成授权码,让份额持有者来实时查询基金持有的数字资产余额。份额持有者甚至可以自行通过软件自行监控余额变化。BOX 就提供了授权码,允许任何人随时查询资产。 用户购买ETF技术门槛很低无需用户操作多种资产私钥,只需一个 Mixin Messenger 手机 App,就可以进行多种资产的管理和 ETF 申购和赎回。 ...

July 9, 2019 · 1 min · jiezi

区块链是产业供应链金融的必经之路

本文是矢链科技 CEO 朱亮亮在 CITAHub 企业分享系列第七期中带来的《区块链是产业供应链金融的必经之路》分享。就“区块链技术到底能够解决什么实际问题”出发,站在了自身企业业务角度,围绕“产业供应链金融”给大家提供了一个解答。区块链技术信仰区块链技术信仰是指“共识的力量”,并且更多是指商业上的共识。也就是说,“区块链技术能够解决信任问题,在商业环境中构造一个可信的计算环境”,这个观点已经得到普遍的认可,“共识的力量”也是非常强的。依托区块链技术所带来“共识的力量”,能够减少企业合作间的信任摩擦阻力,顺利完成项目落地。 所以,真正的技术信仰者,应该走在将技术价值化的路上,将技术价值真正落到实处。任何技术的价值创造过程,都是在解决实际问题的一个过程。因此,区块链技术到底能够解决什么实际问题?“产业互联网” 成为其中的一个答案。 产业供应链金融简而言之,产业互联网是一个 ToB 的互联网。由于天然具有金融属性,所以构建在产业互联网上的供应链金融,叫产业供应链金融。现阶段,矢链科技所从事的是将区块链技术应用于产业供应链金融,从而创造价值。本次分享的重点是:“在产业供应链金融上,区块链技术到底能够创造什么价值,以及如何创造价值?” 所谓「供应链金融」,是指为核心企业上下游的中小企业提供的融资模式。现阶段,中小企业的信用普遍较弱,难以得到金融机构的认可。但是,凭借供应链金融,可以允许中小企业根据上下游核心企业的信用而融到资。 什么是产业互联网?产业互联网指的是「产业+互联网」的一种形式。在此之前,2001 年产业互联网的概念就已经被美国沙利文咨询公司所提出。我们经常听说的「互联网+」,「B2B 模式」本质上和产业互联网是同一个概念。由于,当时的技术限制,产业互联网并没有得到关注。直到 2012 年,通用电气公司(GE)又重新对产业互联网的概念进行介绍,“产业互联网”的概念才得到业界的广泛认可。 那么,产业供应链金融就是构建在产业互联网上的供应链金融。 互联网已经进入下半场互联网可以分为上半场和下半场。上半场指的是消费互联网,为了解决 C 端用户的消费需求;下半场指的是产业互联网 ,即产业与互联网的融合。如果按照这种划分方式,上半场的消费互联网则已经基本饱和,C 端用户的消费需求也已经得到很好的满足,加上人口红利逐步消失,消费互联网已经很难再有爆发式增长。为此,消费互联网开始往供给端延伸。在延伸过程中,促进了产业互联网的发展。特别是在 2016,2017 年,B2B 平台受到了资本青睐,发展迅速。 在这个发展变化的过程中,连接主体和连接内容发生了改变。如果说消费互联网连接的是人与人,以及人与企业间的互联。那么,产业互联网则更为复杂,是人、设备、与企业,甚至企业机构间的互联。比如,企业与企业 、企业与设备、人与设备间的互联。同时,连接内容也发生了改变。消费互联网连接的是信息,包括第三方支付。但是,产业互联网连接的内容除了信息之外,还链接了价值以及资产。比如,实物资产,也开始通过 IOT 技术进行互联。 互联网与传统行业融合的三种方式随着产业互联网的发展,互联网与传统行业的融合越来越紧密。互联网与传统行业融合主要分为三种方式,即 以传统行业为主导,拥抱互联网以互联网企业为主导,跟产业进行结合完全融合的传统行业主动拥抱互联网。比如,长途运输行业。现阶段,中国有 200 多家无车承运人平台,而这些平台大部分是传统物流行业主导。无车承运人平台在 2017,2018 年,得到蓬勃的发展,也得到了资本方青睐。 以互联网企业为主导,跟产业进行结合的。比如,有很多互联网巨头布局汽车行业。何小鹏的小鹏汽车、李斌的蔚来汽车,甚至雷军似乎也要开始造车计划。此外,比如阿里、京东、网易等互联网大厂,开始养猪。这些都是互联网行业去主导的产业互联网的真实案例。 就完全融合的案例来说,马云的菜鸟物流是非常好的融合形式。在早些年,马云曾说不会从事物流快递。事实证明,马云并没有放弃物流快递行业,转而对菜鸟进行了 1000 亿的投资。但是,传统快递行业也不甘示弱,顺丰联合了快递公司成立了丰巢。现在,基本上有丰巢的地方必有菜鸟,有菜鸟的地方也必有丰巢,是真正的近身搏杀。 产业互联网是 ABCD 技术+产业互联网的技术是一种「 ABCD 技术+」,即「AI+Blockchain+Cloud+Data」的技术融合,去改造传统行业。 不管谁来主导,融合趋势已经不可避免。在融合过程中,我们看到传统行业的数字化程度越来越高,并且更加注重行业标准。其中的原因是要做数字化,必须得有行业标准。随着传统行业数字化和标准化的提高,也为产业供应链金融的发展提供土壤。 同时,产业互联网的发展,也离不开供应链金融的支持。 随着消费互联网向供给端延伸,将 C 端用户和产业进行连接,商品和服务就能更加快速的反馈给用户。而这需要把很多中间环节变得非常扁平、管理高效、成本也要更适合这种互联网的方式。所以,在这个过程中它需要两个支撑,即:技术的进步和金融赋能。 区块链在产业供应链金融中的作用 那么,区块链技术能够在产业供应链金融方面起到什么作用呢? 第一步,利用区块链技术搭建一个可信的计算环境。在可信计算环境下,让区块链成为产业与金融机构之间的桥梁。即使一个产业有了数据 ,有了交易场景,但是这些交易场景数据可信性,能不能得到金融机构的认可,则需要用区块链技术来实现。那么,具体是怎么做?首先,需要了解行业标准化程度。如果标准化程度不够,则需要去梳理行业标准。其次,判断行业互联网/区块链化程度。如果行业互联网化程度低,没有基础数据支撑,是比较难落地的。最后,最关键的还要看行业自身的金融需求以及可接受的成本。第二步,确定好行业后,再同行业内头部平台进行合作。从金融机构角度帮助头部平台梳理数据,将交易场景做成可穿透、可视化。 产业供应链金融落地的三个难点产业供应链金融落地有三个难点,即:商业隐私、交易场景真实性、以及风控模型。现阶段,凭借区块链技术、人工智能和大数据技术的协同发力,重点解决这三个问题。 首先,要解决商业隐私保护问题随着数权意识逐渐觉醒,企业对自身的交易数据非常敏感。即便是对金融机构,企业也不愿意透露自身隐私数据。传统行业或者说互联网行业,对金融的理解程度并不高。可以看到一个现象,除非是巨头才会有金融部门。即便是大平台,金融能力都是相对弱的。大平台不知道如何在保护隐私的情况下,做数据脱敏后和银行或金融机构打交道。为此,提供一项区块链技术来帮助大平台实现商业隐私保护显得十分重要。 其次,要保证交易场景真实性现阶段金融机构所谓合规是一种表面合规,在考察贸易背景时,只考察发票及合同。但是,在供应链金融或者说产业供应链金融下,发票和合同是远远不够的。因为,交易场景特别是和具体的某个行业相结合时,是非常复杂的。 为此,矢链科技帮助行业或者行业头部企业去规整数据。但是,现阶段的平台方,数据不规整的,不能够满足金融机构的需求。 另外,需要提供上链前数据的交叉验证。可以利用交叉验证法保证上链前的数据真实性,同时用行业数据做预言,来判断业务的真假。如果数据偏离行业数据标准,则会用这个预言的方式将它舍弃。同时,帮助金融机构做确权标准。 第三,是关键风控每一个行业的风控模型都不太一样,现阶段 ToC 的风控做的很好。但是对于 ToB 领域,现阶段并没有看到比较成熟的风控模型。并且 B 端数据相对较小,基本上难以有庞大的数据库。所以,需要深入到行业中,用沉淀的行业数据,来打造一个能够针对该行业的风控模型。虽然,这样的模型并不适合全行业,但至少可以满足部分标准化程度较高的行业的主要风控需求。 ...

July 9, 2019 · 1 min · jiezi

联盟链FISCO-BCOS-v200rc3-发布

FISCO BCOS是完全开源的联盟区块链底层技术平台,由金融区块链合作联盟(深圳)(简称金链盟)成立开源工作组通力打造。开源工作组成员包括博彦科技、华为、深证通、神州数码、四方精创、腾讯、微众银行、亦笔科技和越秀金科等金链盟成员机构。   2019年6月18日,FISCO BCOS v2.0.0-rc3正式发布,该版本对底层平台的易用性、性能等方面进行了多项优化。 最新代码和技术文档已在github和readthedocs上同步更新,欢迎体验和star支持。 代码仓库: https://github.com/FISCO-BCOS...  技术文档: https://fisco-bcos-documentat... 变更描述底层新特性 升级后的v2.0.0-rc3版本,在分布式存储模块新增了三个特性: 新增支持底层通过数据库连接池直连MySQL 新增支持RocksDB引擎,搭建新链时存储默认采用RocksDB 新增CRUD接口支持,控制台1.0.3以上版本提供类SQL语句读写区块链数据 版本优化 完善ABI解码模块 优化存储模块,增加缓存层,支持配置缓存大小 优化存储模块,允许流水线提交区块,可配置[storage].max_capacity控制允许使用的内存空间大小 修改预编译合约和RPC接口错误码,统一为负数 移动分布式存储配置项[storage],从群组genesis文件移动到群组ini配置文件中 默认存储升级到RocksDB,仍支持旧版本LevelDB 调整交易互斥变量的拼接逻辑,提高不同合约间交易的并行度 其他特性 文档增加对账户的说明,具体参见: https://fisco-bcos-documentat...  Web3SDK提供加载账号文件的工具管理类PEMManager和P12Manager,可以分别加载PEM格式和PKCS12格式的账户文件 macOS提供预编译二进制 Bug修复 修复CRUD接口合约开启并行时可能出现的异常终止 兼容性说明 升级说明兼容升级  直接替换节点的二进制为v2.0.0-rc3二进制,升级后的版本修复v2.0.0-rc2中的bug,但不会启用v2.0.0-rc3分布式存储新特性, 从v2.0.0-rc1升级到v2.0.0-rc3后,无法回滚到v2.0.0-rc1。 全面升级  参考说明文档《安装》部分,采用v2.0.0-rc3搭建新链,需要进行交易重放。 《安装》文档链接: https://fisco-bcos-documentat... # 对社区开发者的感谢 # FISCO BCOS的快速优化和不断成长,是开源社区众开发者群策群力的结果。 谢谢所有投入时间和我们一起研究和改进FISCO BCOS的开发朋友们。 我们鼓励更多开发者尝试这些新功能,并给我们反馈! 我们鼓励机构成员、开发者等社区伙伴参与开源共建事业,有你在一起,会更了不起。多样参与方式: 1 进入微信社群,随时随地与圈内最活跃、最顶尖的团队畅聊技术话题(进群请添加小助手微信,微信ID:fiscobcosfan); 2 订阅我们的公众号:“FISCO BCOS开源社区”,我们为你准备了开发资料库、最新FISCO BCOS动态、活动、大赛等信息; 3 来Meetup与开发团队面对面交流,FISCO BCOS正在全国举办巡回Meetup,深圳、北京、上海、成都……欢迎您公众号在菜单栏【找活动】中找到附近的Meetup,前往结识技术大咖,畅聊硬核技术; 4 参与代码贡献,您可以在Github提交Issue进行问题交流,欢迎向FISCO BCOS提交Pull Request,包括但不限于文档修改、修复发现的bug、提交新的功能特性。 代码贡献指引: https://github.com/FISCO-BCOS...

July 8, 2019 · 1 min · jiezi

DOS-Network-六月项目月报

各位亲爱的 DOS 社区的支持者们,欢迎阅读 6 月 1 日至 6 月 30 日的月度项目进度报告!???? ⚙ 产品和开发从 #beta1.1 测试网从 6 月启动以来,我们持续对节点软件进行优化、同时开发网络浏览器和用户仪表盘。 具有一定技术背景或者对命令行操作界面不陌生的节点运行者可以填写申请表并遵从 GitHub 文档来启动一个测试网节点。 测试节点申请表:https://docs.google.com/forms/d/e/1FAIpQLSdiWuVdyxpVozEC0uWZIj9HCBX9COBYFj8Dxp2C2qX4Qv5U9g/viewform  GitHub 节点文档:https://github.com/DOSNetwork/core/blob/master/README.md 节点 / 客户端软件开发:开启 geth 的轻客户端 (light-client) 模式,减小节点运行者长期维护以太坊全节点的压力。修复了节点订阅合约事件时 Web Socket 断线重连和 eth_proxy 的 EOF 错误。重新定义客户端子命令让节点新生成本地的节点钱包。节点地址与持币地址分开,从此质押的代币不再需要转移到节点地址,而是统一锁定在质押合约中 - 这减少了资金暴露在“热”钱包里的风险。修复启动过程和 DKG (分布式密钥生成) 过程 CPU 使用率过高的问题。改进代码格式、注释、更多的测试覆盖和修复其他一些小问题。智能合约开发:系统合约 : 增加了节点注销函数。给 proxy 合约增加了 truffle 单元测试。- 质押 / 委托合约: 正在开发质押和委托合约。质押 / 委托合约允许节点运行者以及普通持币用户得到质押挖矿的收益。持币用户可以不跑节点、而是把代币委托给节点并且赚取一部分利息;节点运行者除了得到自己质押代币的全部利息之外,也能得到用户委托给该节点的代币产生的利息的一部分。开发者和节点运行者的文档:更新开发者文档 到最新的预言机使用样例和最新版部署的 #beta1.1 合约。http://developers.dos.network更新从源代码编译及运行 beta 测试网节点的 GitHub 文档 (文档在持续更新中)。网络浏览器、用户界面:我们正在开发网络浏览器,方便持币用户及节点运行者搜索节点状态和网络中发生的事件。在这里预览现在的前端设计原型图:https://scene.zeplin.io/project/5d0250d2f695e65dec3f8053 其他:在币安链上发行了 BEP2 DOS 代币,并且从所有 validators 那得到了登陆币安去中心化交易所 DEX 的支持。DOS/BNB 交易对将于 7 月 8 日下午 6 点在币安 DEX 开启交易,同时我们会在下周发布一系列活动,敬请期待!为了方便用户进行代币转换,我们开发了从 ERC20 DOS 到 BEP2 DOS 转换桥https://swap.dos.network。后续我们会持续开发转换桥来实现自动的双向代币转换。转换代币的教程请查看这里「DOS 即将登陆 Binance DEX,并提供 ERC20 DOS 到 BEP2 DOS 的转换中继」???? 运营和市场6 月 2 日,DOS Network 运营和业务发展负责人孙孝虎受邀参加了 BitMax在北京举办的线下粉丝见面会。孙孝虎在会议上发表了演讲,介绍了预言机在区块链行业的重要性,必要性以及预言机的应用场景等。 ...

July 5, 2019 · 1 min · jiezi

OmniUSDT-PHP开发包简介

OmniTool开发包适用于为PHP应用快速增加对Omni Layer/USDT数字资产的支持能力,即支持使用自有Omni Layer节点的应用场景,也支持基于第三方API服务和离线裸交易的轻量级部署场景。下载地址:omni/usdt php开发包 。 1、OmniTool开发包简介OmniTool开发包主要包含以下特性: 完善的Omni Layer节点RPC封装支持利用自有节点或第三方服务获取指定地址的utxo集合支持离线生成omni代币转账裸交易支持利用自有节点或第三方服务广播裸交易OmniTool支持本地部署的Omnicored节点,也支持blockchain.info、btc.com等提供的开放API,要增加对其他第三方服务的支持也非常简单,只需要参考代码实现如下接口: UtxoCollectorInterface:utxo收集器UtxoSelectorInterface:utxo筛选器BroadcasterInterface:裸交易广播器ExplorerInterface:数据查询接口OmniTool软件包运行在Php 7.1+环境下,当前版本1.0.0,主要类/接口及关系如下图所示: OmniTool的主要代码文件清单如下: 代码文件说明omni.php/src/RpcClient.phpOmni Layer的RPC协议封装类omni.php/src/RpcModule.phpOmni Layer的RPC协议分模块访问语法糖omni.php/src/protocol-spec.jsonOmni Layer协议描述元信息omni.php/src/SerializeBuffer.phpOmni Layer协议序列化缓冲区omni.php/src/PayloadFactory.phpOmni Layer协议载荷工厂类omni.php/src/Utxo.php未消费交易输出类omni.php/src/UtxoBag.phpUtxo集合类omni.php/src/UtxoCollectorInterface.phpUtxo收集器接口omni.php/src/LocalUtxoCollector.php基于OmniCore节点的Utxo收集器实现omni.php/src/CloudUtxoCollector.php基于第三方服务的Utxo收集器实现omni.php/src/UtxoSelectorInterface.phpUtxo筛选器接口omni.php/src/DefaultUtxoSelector.php默认的Utxo筛选器实现omni.php/src/BroadcasterInterface.php裸交易广播器接口omni.php/src/LocalBroadcaster.php基于OmniCore节点的裸交易广播器实现omni.php/src/CloudBroadcaster.php基于第三方服务的裸交易广播器实现omni.php/src/ExplorerInterface.php数据查询接口omni.php/src/CloudExplorer.php基于第三方服务的数据查询接口实现omni.php/src/LocalExplorer.php基于OmniCore节点的数据查询接口实现omni.php/src/Utils.php常用辅助函数omni.php/src/Wallet.php离线钱包类demo/rpc-demo.phpRpcClient使用示例,完整实现OMNI代币的发行与转账demo/omni-tx-cloud.php创建并广播Omni代币转账裸交易,使用第三方云服务APIdemo/omni-tx-local.php创建并广播Omni代币转账裸交易,使用自有节点demo/btc-tx-cloud.php创建并广播比特币转账裸交易,使用第三方云服务APIdemo/btc-tx-local.php创建并广播比特币转账裸交易,使用自有节点demo/explorer-cloud.php查询指定的地址比特币余额/Omni代币余额,使用第三方云服务APIdemo/explorer-local.php查询指定地址的比特币余额/Omni代币余额,使用自有节点demo/wallet-init.php本地钱包初始化demo/wallet-demo.php钱包载入、裸交易构造和广播vendor第三方依赖包目录composer.jsoncomposer配置文件2、RpcClient类使用说明RpcClient类封装了Omni Layer的RPC接口协议。创建RpcClient对象时,需要传入包含有效身份信息的节点RPC URL。例如,假设安装在本机的omnicored节点软件配置如下: rpcuser:userrpcpassword:123456rpcport:8332那么可以使用如下的代码来实例化RpcClient: use \OmniTool\RpcClient;$client = new RpcClient( 'http://user:123456@localhost:8332' /*节点RPC接口的URL*/ );Omni Core节点在Bitcoin原有的RPC接口之外,扩充了额外的接口用来操作Omni层的数据,这些扩展的RPC接口采用omni_前缀以区隔于Bitcoin的原有RPC接口。为了便于区隔这两层的RPC调用,RpcClient引入了协议子模块的概念,将Bitcoin的原始RPC接口和Omni的扩展RPC接口分别挂接到btc子模块和omni子模块。 例如,获取某个地址的USDT代币余额需要使用Omni层的omni_getbalance调用,这个RPC调用对应于RpcClient实例的omni子模块的getBalance()方法。下面的代码获取地址1EXoDusjGwvnjZUyKkxZ4UHEf77z6A5S4P的USDT(资产ID:31)余额: $ret = $client->omni->getBalance( '1EXoDusjGwvnjZUyKkxZ4UHEf77z6A5S4P', /*地址*/ 31 /*资产ID:USDT*/ );类似的,可以使用omni_send调用来执行简单的USDT转账,这个调用对应于RpcClient实例的omni子模块的send()方法。下面的代码从地址3M9qvHKtgARhqcMtM5cRT9VaiDJ5PSfQGY向地址37FaKponF7zqoMLUjEiko25pDiuVH5YLEa转入100.0个USDT代币: $ret = $client->omni->send( '3M9qvHKtgARhqcMtM5cRT9VaiDJ5PSfQGY', /*代币转出地址*/ '37FaKponF7zqoMLUjEiko25pDiuVH5YLEa', /*代币转入地址*/ 31, /*代币ID:USDT*/ "100.00" /*转移的代币数量*/ );原有的bitoin层的RPC接口则可以通过RpcClient的btc子模块来访问。例如,使用listunspent调用来获取本地节点中指定地址的utxo: $ret = $client->btc->listUnspent( 6, /*最小确认数*/ 999999, /*最大确认数*/ ['mgnucj8nYqdrPFh2JfZSB1NmUThUGnmsqe'] /*地址清单*/ );开发包中的demo/rpc-demo.php示例代码使用RpcClient类完整演示了在Omni层的代币发行与转账功能,如果你计划搭建自己的Omni Core节点,相信这个示例会有很大帮助。 3、Wallet类使用说明如果不愿意搭建自己的Omni Core节点,而是希望基于第三方API为自己的PHP应用增加对Omni Layer/USDT的支持,那么最简单的方法是使用离线交易的入口类Wallet。 Wallet类的主要作用是根据创建并广播Omni代币转账裸交易或比特币转账裸交易,它的基本使用步骤如下: ...

July 4, 2019 · 2 min · jiezi

图解比原链Tensority算法如何让POW做到人工智能友好

共识算法说起 区块链系统首先是分布式系统,而一致性是分布式系统的基础问题,要保证系统满足不同程度的一致性,则就要用到共识算法。 现在主流的算法有POW、POS、DPOS等等,比特币采用的POW共识算法运行9年之久,已被证明稳定可靠,然而因为巨大的硬件和能源消耗而饱受诟病,特别是专用矿机,在被淘汰之后就变成了废铁。 POS和DPOS为了避免资源的浪费,直接采取抛弃计算的方式,通过持有证明和选举来进行共识,牺牲了一定准入性和去中心化。而比原链从另一个角度来切入和解决POW资源浪费的问题。 比原链共识算法Tensority设计思路 首先我们基于以下思路来设计共识算法: 计算是一种权力,不能因为能源消耗而抛弃计算的方式,为了维持系统的稳定能源消耗是必要的,而且POW已经被证明稳定可靠,同时准入门槛低。(CPU、GPU、ASIC矿机皆可进入,同时也不需要持币或者选举)矿机功能单一是原罪,只能进行哈希运算造成矿机的极大浪费,如果能够将矿机功能多样化将更有利于发展。人工智能技术的迅猛发展,AI智能加速市场需求量增大。为此我们设计了AI友好型的共识算法Tensority。矩阵乘运算与卷积运算是人工智能常用的两种算法,相比后者,前者的应用范围更广。 为了使得比原链共识算法对人工智能友好,同时兼容所有主流的AI加速设备,比原链在算法选型上采用了矩阵乘运算。算法确定之后需要选取参与运算的数据类型,选取的标准有二: 第一,选取的数据类型需目前所有主流AI加速设备都能支持。 第二,神经网络推理的主力数据类型均要支持。 综合来看,int8数据类型满足条件。 比特币POW共识算法回顾 在说到比原链的POW共识算法Tensority之前,我们回顾一下比特币的POW共识算法: 我们知道比特币的POW共识算法是通过不停的迭代计算区块头的哈希值,不断修改参数,直到哈希值匹配的过程。 比原链POW共识算法总览 那么让我们看一下比原链的共识算法总体过程: 整个Tensority算法过程中,区块头的哈希的选取和难度值的比较仍然作为头尾衔接的步骤,但是中间穿插了很多涉及到矩阵的运算过程,而这些运算在AI计算中比较常见,所以支持比原挖矿的矿机就有能力提高AI加速服务。 下面我们来进一步细化每个过程: 种子生成 我们在总览图中可以看到Tensority有两个输入,一个是和比特币相同的哈希头,另外一个就是种子seed,那么种子是怎么来的? 我们可以看到论文中对于种子的描述:种子是一个由一段时间内的区块历史决定的32位的字节数组。种子来自于每256块的第一个块的区块头,一般来说每256个块会更换一次seed,在256块以内都会使用相同的seed。 Cache Calculation 这个步骤主要使用种子通过一定的变换获得一个矩阵。我们首先通过一定次数的哈希将种子进行扩展,以满足Scrypt的输入要求,然后使用Scrypt函数生成一个32x1024x128的矩阵。值得注意的是,我们使用的Scrypt算法就是使用在莱特币中的算法。 Matrix Construction 该步骤会将上一步产生的矩阵变成一个更为规整的矩阵从而适合后续的处理,具体过程将会比较复杂,请参考论文。 Martix Operation 该步骤比较复杂,也是最有意思的步骤。采集的区块头哈希分割为四份,每份做一次哈希生成一个新的哈希值,新的哈希值的每一个比特作为Matrix Construction生成矩阵切片的索引值,从而切片获得一个矩形。经过上述步骤后将获得128个矩形,对这些矩形进行矩阵相乘最后得到一个矩阵。 Work Generation 这个步骤是输入上一步生成的矩形变成一个32位的哈希值,从而进行最后的难度比较。首先将256x256的矩形变形位256x64的矩形,然后通过FNV函数转换为一个32位哈希值。 我们将得到的哈希值和难度值做比较,看是否满足条件,这一轮的共识算法就结束了。

July 4, 2019 · 1 min · jiezi

三-用-JavaScript-写-DAppFO-转帐

FO 是官方在 FibOS 发行的数字货币,也在多个交易所上交易,作者在写文章的时候,大概报价是 0.05 元。官方也推出了一个简洁易用的钱包 APP 供大家管理自己的 FO 资产,有兴趣的同学也可以下载使用(https://wallet.fo/zh-cn)。有 FO 账户还没有 FO 的小伙伴不妨留下 FO 账户,说不定我会抽几个给大家打 FO 呢。 但是怎么打 FO 呢,很简单,大家可以 FO 钱包 APP 中点击转帐,输入收款账户和转账数量后点确定一气呵成。 但是例如我们在一些需要大批量转账或自动化转账的情况下,我们如何通过代码实现呢?接下来我带领大家一起来体验一下: 1. 创建项目我们创建一个文件夹叫 transfer,并且进入该文件夹: mkdir transfercd transfer初始化项目。我们可以执行 fibos 命令是因为我们已经安装了 fibos 命令行工具。如果不清楚如何安装的可以阅读我本专栏的前一篇文章。 fibos --init安装 fibos 依赖包。这里可以 使用 fibos 安装也可以选择 npm 命令安装。当然如果您安装特别慢,可以使用 cnpm 或者淘宝 npm 镜像。 fibos --install fibos.js到此为止,准备工作就做完了。此时你的 transfer 文件夹的目录结构是这样的: .├── node_modules└── package.json2. 主网和测试网介绍这里需要解释一下的是,我们在开发过程中经常碰到的链主要有三类: 主链/主网(Main Chain / Main Net),是由 21 个投票当选的节点负责出块。我们上述说到的价值 0.05 的 FO 就记录在主链上。测试链/测试网 (Test Chain / Test Chain),测试链运行着跟主链一模一样的机制,就是大家都知道这是一条开发用来测试的链,上面的 FO 并没有价值。本地链/本地网。这个是我生造的一个词。根据官网:https://dev.fo/zh-cn/guide/tu... 的介绍应该是在本地生成一个链或者网,只是只有你一个节点。官网上的说法感觉容易产生误解。上述三个链或者网完全隔离。大家不要搞混了。 ...

July 4, 2019 · 3 min · jiezi

二-用-JavaScript-写-DApp环境配置和编辑器配置

环境配置FIBOS 开发环境配置非常简单,只需要安装 FIBOS 即可。不过值得一提的是,目前 FIBOS 只支持 UNIX 系统,比如 Mac OSX,Linux 和 FreeBSD,但是不支持 Window 系统。不过 Window 用户装一个虚拟机就可以造起来啦! curl -s https://fibos.io/download/installer.sh | sh一行代码搞定,So easy! 赶紧试试 FIBOS 装好没。 fibos --version正常输出,棒! 编辑器配置理论上任何编辑器都可以,但是我选择了宇宙第一编辑器 VSCODE。因为 FIBOS DApp 基本上都是 js 文件,所以VSCODE 代码高亮基本上不用怎么配置就可以。 唯一需要配置的是 .abi文件。我们可以在 VSCODE 菜单栏中点击 preferences,搜索 files.associations,打开settings.json文件在最后添加: "files.associations": { "*.abi": "json" }这几行的代码意思就是把 .abi看做 json 文件进行代码高亮。 今天就分享到这里,下一篇文章进入正题。大家有兴趣也可以关注我的知乎专栏:https://www.zhihu.com/people/...

July 4, 2019 · 1 min · jiezi

一-用-JavaScript-写-DApp谈谈-ETHEOSFIBOS

一个普通开发者对 ETH、EOS、FIBOS的看法一直保持着如儿童般的好奇心和技术的热情,挺早就关注区块链和加密货币。当然并没有发财,这可能跟自己知识结构和本身比较穷有关。 在读大学的时候第一次听到了比特币,那时候可能几美元吧记不清了。后来接触到了以太坊,第一次听到了 DApp 这个词。可能当时各种资料比较少,只是看了看文档并没有真正尝试去写一个 DApp。 真正想着去编写一个 DApp 应该是在 2018 年,当时一句话感触至深: 你想真正了解一件事情最好的方法是参与其中。于是乎在 2018 年花了一点点钱买了一点点加密币。大家不用猜也知道,买在了山顶上,哈哈哈。也就是从那时候开始,在 Udemy 买了课程 Ethereum and Solidity: The Complete Developer's Guide 和 参加了 LoomNetWork 的在线互动课程。这两个课程质量非常好,强烈推荐,算是我的 DApp 入门课程。但是但是,我并没有后续自己独立开发出一个 DApp。 再后来,通过一直在微博上关注的西祠胡同响马,了解到了 FIBOS,也把自己为数不多的 EOS 兑换成了 FO。 为什么会关注 FIBOS 呢?经历了 Solidity 写 DApp 的确发现 Solidity 其实也有一定的学习成本,虽然说 Solidity 跟 Javascript 类似,但是还是有自己不同的语法。另外 DApp 编程,跟中心化应用你的大脑回路需要不一样。另外 ETH 一个缺点就是性能比较差,而且跑你的 DApp 非常贵。大家应该也听说过一个云养猫的 DApp 就让 ETH 拥堵不堪了。 当然 ETH 的开发团度肯定也意识到了这些问题,但是有号称区块链 3.0 的 EOS 出来想要解决这些问题。更快的运行速度,更大的通量,更便宜的运行成本,但是似乎并没有解决开发门槛的问题。目前 EOS 仅仅支持 C 和 C ++ 编写合约。EOS 比 ETH 开发门槛更高了。 ...

July 4, 2019 · 2 min · jiezi

如何让中本聪共识更牛

新的基础设施涌现出新的技术,而新技术中所带来的欲望则孕育着技术的自否定。原有的基础设施终因无法再满足欲望所需而被遗弃,在新的技术与欲望的共同推动下实现变革。 人类本身就是在不断迭代的环境中自我进化,不断适应新的技术和掌握新的技能,若无法学习和成长,自然被淘汰。而技术本身也是,若技术无法跟上时代发展的步伐,技术本身也会被超越,被淘汰。 公链和围绕公链形成的生态就如同一个社会体系,很多时候整个社会不是不想快速前进,而是需要一个保守的方式,以稳定和安全为第一优先级,尽量用最小化的变动完成对新情况的适应。 我们必须承认区块链是类似硬件的软件,回顾这项技术并不长的历史,我们已经明显感受到它这一项弱点:每一次分叉都是对整个社区的一种冲击。比如,以太坊从 2015 年至今,经历了三次分叉: Homestead 分叉,通过了 3 个 EIP;Byzantium 分叉,通过了 8 个 EIP;Constantinople 分叉,通过了 5 个 EIP。而 GitHub 中的正在讨论的 EIP 还有上千个。 每次分叉都是在千万个需求中艰难地做抉择,找到当下最必要的几个需求做出改进,并在社区进行大规模的探讨。以太坊的核心开发者要清楚智能合约平台目前面临的情况,调查开发者们的需求,评估每一个协议改进对以太坊本身的影响;而且在一个开源的体系中,每一次改进都会有诸多的安全问题。如最新的君士坦丁堡分叉,SSTORE 指令的改进在最后关头被 ChainSecurity 团队发现漏洞,是一个原本不会出现、但是改进之后牵扯到其他代码带来的可重入漏洞问题。对于一个如此庞大的开源生态,在不断权衡升级的利弊之后,你还不得不在升级之前在测试网反复进行测试来确保安全性,确保任何指令不会由于本次对代码的修改造成其他后果。 但是现实情况就是,技术是不断进步的,不断会有新的硬件设施、软件技术,会有全新的需求,要求区块链协议做出一定的改进。最理想的方式是区块链能够足够的底层、足够灵活、足够简单,在需要升级的时候能够尽可能避免过多的变动。 协议是否能够自我调整?若协议能够自动适应环境的变化,拥有某种类似自我进化的能力,是否能够极大程度改善这一点?在这其中,共识的设计关系到网络和计算能力,是其中关键的一个部分。 比特币是目前运行最久的区块链,已经运行了十年,而十年前和十年后,带宽水平发生了巨大的变化。 如同上图中这个研究所指出的,链接到网络中的比特币 IPv4 节点在 2016 年时带宽中位数为 33 Mbit/s,在 2017 年 2 月,这个数字达到了 56 Mbit/s。而比特币的最大吞吐量至今没有太大的改观。 那是否有能力来让共识算法能够根据环境调节自己的吞吐量,而不需要通过分叉等方式进行升级呢?这里有两个规律我们需要去了解,虽然规律是对历史的总结,但是某种程度上我们可以用这些规律预测未来。 大家熟知的摩尔定律 Moore’s Law也就是集成电路性能18-24个月翻倍,同样的,存储器也是遵循同样的规律。也有表述称每年增长 60%。 以及大家不一定知道的 Nielsen’s Law这是一个和带宽水平有关的定律,大致意思是用户的带宽每年增长 50%。 相对于摩尔定律每年 60% 的计算速度增长速率,带宽增长速率慢大约 10 %。 图片来自:Nielsen Norman Group https://www.nngroup.com/artic...上图是 1983 年到 2018 年带宽的变化曲线,注意竖轴是 Log10,所以我们也能够看到带宽的增长也是指数形式增长的。 ...

July 3, 2019 · 1 min · jiezi

Nervos补完计划正式开启

想要改变世界是很天真的梦想吗?偏偏有群人在这条天真的道路上越走越远,越聚越多........ 2018 年,加密经济开启新世纪元年万物开始复苏,人们前仆后继 我们一直在思考,加密经济未来的样子我们看见了加密经济世界的缺失我们开始试图描绘加密经济世界的精彩绝伦这一切的一切让我们蠢蠢欲试 于是,Nervos 项目就此诞生 但我们知道,完成这个梦想任重而道远: 2018 年 1 月Nervos 基金会成立同时发布了 Nervos CKB 技术白皮书在这个特别的 1 月Nervos 开始组建团队将优秀的开发者汇聚在一起 2018 年 3 月开始 Nervos CKB 的第一个 PoC 原型验证 2018 年 7 月我们完成了 2800 万美元的融资 2018 年 9 月我们开始打造一个更适合区块链的虚拟机 2018 年 11 月Nervos CKB 代码开源! 2019 年 3 月研究员张韧的论文被顶会 IEEE S&P 接收CKB 经济模型提案发布也是在这个特别的 3 月我们被 Bloomberg 报导为 2019 四大值得关注的项目之一 2019 年 5 月CKB 测试网正式上线 2019 年 6 月CKB 发布共识协议提案 ...

July 3, 2019 · 1 min · jiezi

浅析Facebook-LibraBFT与比原链Bystack-BBFT共识

如果说什么是区块链的灵魂,那一定是共识机制。 它是区块链的根基。无论公链或是联盟链,共识机制都从基础上限制了区块链的交易处理能力和扩展性。 2019年6月18日,Facebook 发布了自己 Libra 项目的白皮书,引发广泛关注。作为 Facebook 试图创造国际流通数字货币的重要项目,Libra 区块链采用的是 LibraBFT 共识机制,是一个为 Libra 设计的鲁棒的高效的状态复制系统。它基于一种新型的 BFT 共识算法,HotStuff。 就在 Facebook Libra 项目白皮书发布之前不久,5月17日,比原链发布了 BaaS 平台 Bystack。这是一个一主多侧链架构的商用区块链系统,主链采用 PoW 共识保证多样资产安全和去中心化,侧链提供可插拔的共识以满足不同业务需求。同时,Bystack 本身还针对侧链独创了一种 DPoS+BBFT 的共识算法。 同样是 BFT 类共识机制,LibraBFT 和 BBFT 两者有什么不同呢? 区块链共识机制的意义和现状共识(Consensus)是分布式系统中节点对数据或网络最终状态达成的协议。由于网络环境和节点状态的不可控,共识机制需要同时考虑性能、可靠性、安全性等多方面问题。 共识机制从大的方面,可分为 PoW 等中本聪共识机制,和拜占庭容错(BFT)类共识机制两大类。BFT 共识机制广泛应用于各类联盟链。 PoW 共识在非许可(Permissionless)链上应用广泛,但是它的概率模型在提供较高可靠性的同时,牺牲了效率,浪费了大量计算资源。在具体商业应用环境中,许可(Permissioned)机制已经保证了一定程度上的节点可信度(Semi-Trust)。这样的前提下,用户更关心执行效率(TPS)和最终确定性(Finality)。这是BFT共识在联盟链中流行的原因。 BFT共识机制BFT( Byzantine Fault Tolerance)即拜占庭容错。它是分布式计算容错技术。 由于硬件错误、网络拥塞或中断、以及遭到恶意攻击等原因,计算机和网络可能出现不可预料的行为。拜占庭容错技术被设计用来处理这些异常,在容错的基础上达成共识。 与从比特币衍生出的中本聪共识不同,在BFT类协议中,一旦达成共识,则直接形成确定性结果,而不是中本聪共识的概率上的最终一致。 BFT 类共识在金融场景及联盟链场景中应用甚广。同时随着技术进步,公有链场景下应用的 BFT 共识也在不断出现。 PBFT 共识机制实用拜占庭容错算法(Practical Byzantine Fault Tolerance Algorithm,PBFT)是首个实用的在异步分布式网络中实现拜占庭容错的共识算法。 PBFT 算法可工作在异步环境中,并且优化了原始拜占庭容错算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行——这点已得到广泛验证。PBFT 算法可以在失效节点不超过总数1/3的情况下同时保证一致性(Safety)和交付保证(Liveness)。 无论 Facebook Libra 的 LibraBFT 共识协议,还是比原链 Bystack 的 BBFT共识机制,都在底层上充分吸收了 PBFT 的优点,采用了已有的经过时间验证的处理方式,并在 PBFT 的一些短板和不足之处分别做出了各自不同方向的革新。 ...

July 3, 2019 · 2 min · jiezi

百度超级链学院系列视频课程第二讲如何玩转TDPOS

今天为各位开发者带来百度超级链学院第二讲内容“如何玩转TDPOS”! 候选人的提名、投票等一系列操作是如何进行的?欢迎在本期的视频课程中找答案吧! 第二讲:如何玩转TDPOS视频播放地址:https://v.qq.com/x/page/p0890... 回顾第一讲:如何快速建链视频播放地址:https://v.qq.com/x/page/n0885... 重要提示:登录后选择“超清”进行观看,效果更佳哟!

July 2, 2019 · 1 min · jiezi

Facebook的Libra-区块链到底是如何运作的

本文深入研究了“关于Facebook Libra coin (以及更多)平台协议”的26页技术文档,并对其内容进行了分解说明。同时,我们对这53位作者表示衷心的钦佩!以下为具体分析内容:(文中英文内容为“协议”原文,中文翻译是对“协议”内容的解读。) 摘要The Libra protocol allows a set of replicas—referred to asvalidators—from different authorities to jointly maintain a databaseof programmable resources.换句话说,也就是这个系统需要由一组权威机构以自上而下的方式进行控制。然而,请注意,该数据库是为维护“可编程资源”而不仅仅是维护数字货币的。 These resources are owned by different user accounts authenticated bypublic key cryptography and adhere to custom rules specified by thedevelopers of these resources.使用诸如“资源”(resources)之类的通用词汇使我怀疑这里不仅仅是指一种稳定币。 Transactions are based on predefined and, in future versions,user-defined smart contracts in a new programming language calledMove. We use Move to define the core mechanisms of the blockchain,such as the currency and validator membership.好了,这个有意思了。使用专门的智能契约语言会导致很多问题,比如该语言的功能丰富度,以及延伸到该系统对对抗性契约的健壮性有多强的问题。还有一些关于开发人员友好性以及Libra如何保护智能合约开发人员不受影响的问题都是需要明晰的。 ...

July 2, 2019 · 6 min · jiezi

为什么说Mixin-Network是POS版本的比特币

比特币的账本形成是需要一个困难的计算过程,从上一篇文章的角度出发可以知道任何尝试双花或者改账本的想法都必须付出电费+芯片投入成本。而且矿工挖矿不需要任何许可,任何人有电有网有钱都可以,因此甚至可以认为比特币通过将记账权力交给自由市场,无论是攻击者,还是愿意赚钱的矿工,都是自由市场上的参与者。攻击者如果要修改账本,意味着需要和整个自由市场里面的其他匿名参与者竞争。尽管表面看起来这不是一个消灭坏人的方法,但是比特币10年的历史已经证明通过自由市场竞争可以获得高度可靠的钱联网。 自由主义记账如何应用在POS?POS一直以来都是学者研究的领域,因为POS确认快而且不那么费电。根据文献:On Stake and Consensus所说,符合如下条件的POS是有机会实现一个靠谱的钱联网。 参与记账的节点是随机分布的,因此无法合谋即使他们合谋,他们的合谋也不会打击这个POS系统,因为他们自己还需要把自己锁定的资金拿回来,不能亏钱。他们合谋造成的破坏很有限该论文另外提出一个关键细节就是抵押的资产是否可以在该体系内继续创造出来。如果需要抵押的资产是必须从外部购买,那么该体系依然靠谱。但是如果该体系需要抵押的资产是体系内可以创造的,那么抵押资产就不值钱,因此抵押也就不值钱,因此就无法实现:潜在攻击者花费很多钱才能发起攻击。 很明显,符合以上条件的POS记账方法也是将记账权交给自由市场,从而实现高度可靠的转账和储值网络。 因为该系统节点需要且只需要质押自己的资产,意味着仅需投入金钱,无其他门槛。记账才能分钱,本身有竞争。篡改账本需要与其他节点竞争,要么合谋,要么掏出更多的资产抵押。合谋篡改账本会导致整个网络受到打击,质押的资产可能大幅贬值甚至归0。质押的资产无法在系统内产生,意味着较早参与记账的节点除了比较晚参与的节点获得更多收入以外,没有其他优势。现在看看Mixin Network如何实践这一原则。主网节点第一年需要质押10000个 xin token。质押之后就可以直接成为节点,拥有参与记账的权利。 整个过程无需投票,有钱,有网就可以。符合自由市场定义。主网节点可以获得系统预留的记账奖励,目前是所有主网节点平均分。一笔转账经过2f+1节点验证成功即有效。因此试图篡改账本需要购买其他节点或者购买更多token成为节点。XIN token 本身是固定100万总量的ERC20 token,不会转换到主网,也没有设计暂停机制,因此可以知道质押的资产是系统内无法生成的。集体主义如何记账?需要承认集体主义的代理记账才是社会的主流,正如开银行不是有钱就能干,而是首先需要审批。 现在看看DPOS如何应用集体主义原则记账: 节点需要获得投票才能参与记账,而不是质押,这意味记账权利交给了集体意志的代理人,而不是自由市场。质押的资产可以在系统内生成,而且可以增发。合谋篡改账本不需要投入金钱,只需要获得大多数代理人同意,而不是全部投票人同意。EOS一笔交易成为不可逆只需要3分钟,已经比比特币的1小时通行标准快的多了,但是他的账本长期可靠性等同于SWIFT银行间转账,因为只要代理人同意,他们可以冻结任何一个人资产,而只需要付出很小的代价。正如现在美国可以冻结任何一个银行的美元账户,欧盟可以冻结任何欧元账户。 自由主义,还是集体主义?比特币通过将记账权交给自由主义市场,实现了长期的账本安全,从而吸引更多的资产,更多的资产存储进比特币网络,也推高了比特币价格,使比特币网络更强大,这是一个不可思议但是真实存在正循环。 自由主义市场是这种正循环的源泉,同样采用自由市场记账的Mixin Network 也会实现这种正循环,价格越来越高,网络越来越强大。

June 27, 2019 · 1 min · jiezi