摘要:区块链链的设计⑴为什么各大互联网公司都在做区块链因为区块链的设计是一种保护措施,比如(应用于)高容错的分布式计算系统。区块链使混合一致性成为可能。这使区块链适...
区块链链的设计
⑴ 为什么各大互联网公司都在做区块链
因为区块链的设计是一种保护措施,比如(应用于)高容错的分布式计算系统。区块链使混合一致性成为可能。这使区块链适合记录事件、标题、医疗记录和其他需要收录数据的活动、身份识别管理,交易流程管理和出处证明管理。区块链对于金融脱媒有巨大的潜能,对于引导全球贸易有着巨大的影响。
拓展资料:
1、区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。
2、区块链(Blockchain)是比特币的一个重要概念,它本质上是一个去中介化的数据库,同时作为比特币的底层技术。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
3、区块链——原始区块链,是一种去中心化的数据库,它包含一张被称为区块的列表,有着持续增长并且排列整齐的记录。每个区块都包含一个时间戳和一个与前一区块的链接,设计区块链使得数据不可篡改,一旦记录下来,在一个区块中的数据将不可逆。
参考资料:区块链——网络
⑵ 区域链和区块链的区别是什么
区块链不是单个个体,而是将许多块结构连接在一起形成链结构。然后将每个块连接起来以形成特定的集合或区域。所以区块链和区域链其实没什么不同,区域链这个术语其实是对区块链的另一种表达。区块链技术是底层技术,在没有任何中心化机构运营和管理的情况下,多年运行非常稳定,没有出现过任何问题,所以有人注意到了它的底层技术,把技术抽象提取出来,称之为区块链技术,或者分布式账本技术。我们在搜索区域链时会自动跳转到区块链的搜索结果页面,所以我们可以把区块链和区块链列为同义词。
拓展资料
一、区块链是什么?
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法
区块链(Blockchain)是非常重要得技术,火币网联合清华大学五道口金融学院互联网金融实验室、新浪科技发布的《2014—2016全球发展研究报告》提到区块链是底层技术和基础架构。本质上是一个去中心化的数据库。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本。
广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
区块链 _ 原始区块链 ,是一种去中心化的数据库,它包含一张被称为区块的列表,有着持续增长并且排列整齐的记录。每个区块都包含一个时间戳和一个与前一区块的链接:设计区块链使得数据不可篡改 — 一旦记录下来,在一个区块中的数据将不可逆。
区块链的设计是一种保护措施,比如(应用于)高容错的分布式计算系统。区块链使混合一致性成为可能。这使区块链适合记录事件、标题、医疗记录和其他需要收录数据的活动、身份识别管理,交易流程管理和出处证明管理。区块链对于金融脱媒有巨大的潜能,对于引领全球贸易有着巨大的影响。
二、区域链是什么?
区域链和区块链这两个词仅有一个词不一样,他们是一个意义么?来看看块和域这两个字的含义。块可以理解是整体当中的一部分,域指的是特定的区域,也可以理解成特定的整体。
区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本。
广义的理解,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
⑶ 区块链技术框架有哪些
当前主流的区块链架构包含六个层级:网络层、数据层、共识层、激励层、合约层和应用层。图中将数据层和网络层的位置进行了对调,主要用途将在下一节中详述。
网络层:区块链网络本质是一个P2P(Peer-to-peer点对点)的网络,网络中的资源和服务分散在所有节点上,信息的传输和服务的实现都直接在节点之间进行,可以无需中间环节和服务器的介入。每一个节点既接收信息,也产生信息,节点之间通过维护一个共同的区块链来同步信息,当一个节点创造出新的区块后便以广播的形式通知其他节点,其他节点收到信息后对该区块进行验证,并在该区块的基础上去创建新的区块,从而达到全网共同维护一个底层账本的作用。所以网络层会涉及到P2P网络,传播机制,验证机制等的设计,显而易见,这些设计都能影响到区块信息的确认速度,网络层可以作为区块链技术可扩展方案中的一个研究方向;
数据层:区块链的底层数据是一个区块+链表的数据结构,它包括数据区块、链式结构、时间戳、哈希函数、Merkle树、非对称加密等设计。其中数据区块、链式结构都可作为区块链技术可扩展方案对数据层研究时的改进方向。
共识层:它是让高度分散的节点对区块数据的有效性达到快速共识的基础,主要的共识机制有POW(Proof Of Work工作量证明机制),POS(Proof of Stake权益证明机制),DPOS(Delegated Proof of Stake委托权益证明机制)和PBFT(Practical Byzantine Fault Tolerance实用拜占庭容错)等,它们一直是区块链技术可扩展方案中的重头戏。
激励层:它是大家常说的挖矿机制,用来设计一定的经济激励模型,鼓励节点来参与区块链的安全验证工作,包括发行机制,分配机制的设计等。这个层级的改进貌似与区块链可扩展并无直接联系。
合约层:主要是指各种脚本代码、算法机制以及智能合约等。第一代区块链严格讲这一层是缺失的,所以它们只能进行交易,而无法用于其他的领域或是进行其他的逻辑处理,合约层的出现,使得在其他领域使用区块链成为了现实,以太坊中这部分包括了EVM(以太坊虚拟机)和智能合约两部分。这个层级的改进貌似给区块链可扩展提供了潜在的新方向,但结构上来看貌似并无直接联系
应用层:它是区块链的展示层,包括各种应用场景和案例。如以太坊使用的是truffle和web3-js.区块链的应用层可以是移动端,web端,或是是融合进现有的服务器,把当前的业务服务器当成应用层。这个层级的改进貌似也给区块链可扩展提供了潜在的新方向,但结构上来看貌似并无直接联系。
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。
⑷ 1分钟带你快速了解区块链的技术模型架构
区块链技术性并并不是一项单一的技术性,只是多种多样技术性融合自主创新的结果,其实质是一个弱管理中心的、自信赖的最底层构架技术性。
区块链技术性实体模型由上而下包含数据信息层、传输层的共识层、鼓励层、合同层和网络层。每一层具有一项关键作用,不一样等级中间互相配合,一同搭建一个去管理中心的使用价值传送管理体系。
数据信息层的特性是不能伪造、全备份数据、彻底公平(数据信息、管理权限、编码),而其算法设计是区块链,包含区块链头和区块材。区块链头由三组区块链数据库,一组数据库是父区块链哈希值,用以该区域块与区块链中的前一区块链相互连接;二组数据库是Merkle根,一种用于合理地小结区块链中全部买卖的算法设计;三组数据库是难度系数总体目标、时间格式和Nonce与生产制造区块链有关。
传输层封装了P2P网络体制、散播和认证体制等技术性。在传输层中,新的买卖向各大网站开展广播节目,每一个连接点都将接到的交易信息列入一个区块链中,且每一个连接点都试着在自身的区块链中寻找一个具备充足难度系数的劳动量证实,当一个连接点找到一个劳动量证实(得到装包区块链的资质),它就向各大网站开展广播节目(新装包的区块链),当且仅当包括在该区域块中的全部买卖全是合理的且以前未存有过的,别的连接点才认可该区域块的实效性,而表明认可接纳的方式 ,则是在追随该区域块的结尾,生产制造新的区块链以增加该传动链条,而将被接纳区块链的任意散列值视作在于新区块链的任意散列值。
的共识层封装了节点的各种共识机制优化算法,它是区块链的关键技术,由于这决策了区块链的造成,而记帐决策方法可能危害全部系统软件的安全系数和稳定性。现阶段早已发生了十余种共识机制优化算法,在其中较为知名的有劳动量证实体制(POW)、好用拜占庭容错机制优化算法(PBFT)、利益证实体制(POS)、股权授权证明体制。
鼓励层包含发售体制和激励制度。简易而言,激励制度是根据经济发展均衡的方式,激励连接点参加到维护保养区块链系统优化运作中,避免 对总帐簿开展伪造,使长期性保持区块链互联网运作的驱动力。
合同层具备可编程控制器的特点,关键包含智能合约、共识算法、脚本制作、编码,是区块链可编程控制器特点的基本。将编码置入区块链或动态口令中,完成能够 自定的智能合约,并在做到某一明确的约束的状况下,不用经过第三方就可以全自动实行,是区块链去信赖的基本。
网络层封装了区块链的各种各样应用领域和实例,跟电脑的应用软件、电脑浏览器上的门户网等很类似,将区块链关键技术布署在如以太币、EOS上并在实际中落地式。
#比特币[超话]# #数字货币#
⑸ 区块链是什么
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
区块链(Blockchain)是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
可以用区块链的一些领域可以是:
▪智能合约
▪证券交易
▪电子商务
▪物联网
▪ 社交通讯
▪文件存储
▪存在性证明
▪身份验证
▪股权众筹
我们可以把区块链的发展类比互联网本身的发展,未来会在internet上形成一个比如叫做finance-internet的东西,而这个东西就是基于区块链,它的前驱就是bitcoin,即传统金融从私有链、行业链出发(局域网),bitcoin系列从公有链(广域网)出发,都表达了同一种概念——数字资产(DigitalAsset),最终向一个中间平衡点收敛。
区块链的进化方式是:
▪ 区块链1.0——数字货币
▪ 区块链2.0——数字资产与智能合约
▪ 区块链3.0——各种行业分布式应用落地
⑹ DENC区块链系统架构是怎么样的
DENC区块链致力于打造提升物联网智能充电装置级别的区块链底层架构,满足其所需的系统数据可靠度、安全性以及各式扩展性的应用需求,DENC区块链采用分片技术架构设计,通过分散网络节点,能够应对大规模的信息存储;针对安全性部分通过底层区块链加密技术、去中心化的管理以及智能合约规范,最大限度地降低信息泄露的可能性。
DENC区块链设计主要划分4个主要层次,包含数据层、网络通信层、共识验证层及应用层,各层之间相互独立却又不可分割。数据、网络层封装了数据区块、相关数据加密、时间戳、传播及验证机制等;共识层主要为网络节点的共识算法,激励层则包含了代币发行机制和分配机制;合约层主要封装了各类脚本和智能合约,是DENC可编程的基础,应用层则以DAPP为主要核心封装各种应用场景案例。
⑺ 【科普】如何选择区块链的最长链
本文由币车HIT( biche.yaofache.com )大V养成计划支持。
基于逐利,节点就会自发的遵守协议。共识就是数以万计的独立节点遵守了简单的规则(通过异步交互)自发形成的。
比特币没有中心机构,几乎所有的完整节点都有一份公共总帐本,那么大家如何达成共识:确认哪一份才是公认权威的总账本呢?
为什么要遵守协议
这其实是一个经济问题,在经济活动中的每个人都是自私自利的,追求的是利益的最大化,一个节点工作量只有在其他的节点认同其是有效的(打包的新区块,其他的节点只有验证通过才会加入到区块链中,并在网络上传播),才能够过得收益, 而只有遵守规则才会得到其他的节点认同。 因此,基于逐利,节点就会自发的遵守协议。共识就是数以万计的独立节点遵守了简单的规则(通过异步交互)自发形成的。
去中心化共识
实际上,比特币的共识由所有节点的4个独立过程相互作用而产生:
每个节点(挖矿节点)依据标准对每个交易进行独立验证;挖矿节点通过完成工作量证明,将交易记录独立打包进新区块;每个节点独立的对新区块进行校验并组装进区块链;每个节点对区块链进行独立选择,在工作量证明机制下选择累计工作量最大的区块链;共识最终目的是保证比特币不停的在工作量最大的区块链上运转,工作量最大的区块链就是权威的公共总帐本。
最长链的选择
先来一个定义,把累计了最多难度的区块链。在一般情况下,也是包含最多区块的那个链称为主链
每一个(挖矿)节点总是选择并尝试延长主链。
分叉
当有两名矿工在几乎在相同的时间内,各自都算得了工作量证明解,便立即传播自己的“获胜”区块到网络中,先是传播给邻近的节点而后传播到整个网络。每个收到有效区块的节点都会将其并入并延长区块链。 当这个两个区块传播时,一些节点首先收到#3458A, 一些节点首先收到#3458B,这两个候选区块(通常这两个候选区块会包含几乎相同的交易)都是主链的延伸,分叉就会产生,这时分叉出有竞争关系的两条链。两个块都收到的节点,会把其中有更多工作量的一条会继续作为主链,另一条作为备用链保存(保存是因为备用链将来可能会超过主链难度称为新主链)。
分叉解决
收到#3458A的(挖矿)节点,会立刻以这个区块为父区块来产生新的候选区块,并尝试寻找这个候选区块的工作量证明解。同样地,接受#3458B区块的节点会以这个区块为链的顶点开始生成新块,延长这个链(下面称为B链)。 当原本以#3458A为父区块求解的节点在收到#3458B, #3459B之后,会立刻将B链作为主链(因为#3458A为顶点的链已经不是最长链了)继续挖矿。节点也有可能先收到#3459B,再收到#3458B,收到#3459B时,会被认为是“孤块“(因为还找不到#3459B的父块#3458B)保存在孤块池中,一旦收到父块#3458B时,节点就会将孤块从孤块池中取出,并且连接到它的父区块,让它作为区块链的一部分。
比特币将区块间隔设计为10分钟,是在更快速的交易确认和更低的分叉概率间作出的妥协。更短的区块产生间隔会让交易确认更快地完成,也会导致更加频繁地区块链分叉。与之相对地,长的间隔会减少分叉数量,却会导致更长的确认时间。
⑻ 区块链架构设计有哪些
区块链作为一种架构设计的实现,与基础语言或平台等差别较大。区块链是加密货币背后的技术,是当下与VR虚拟现实等比肩的热门技术之一,本身不是新技术,类似Ajax,可以说它是一种技术架构,所以我们从架构设计的角度谈谈区块链的技术实现。无论你擅长什么编程语言,都能够参考这种设计去实现一款区块链产品。与此同时,梳理与之相关的知识图谱和体系,帮助大家系统去学习研究。
从架构设计上来说,区块链可以简单的分为三个层次,协议层、扩展层和应用层。其中,协议层又可以分为存储层和网络层,它们相互独立但又不可分割。
区块链架构图
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。
⑼ iOS 简单实现区块链
近年来区块链很火, 不过应该有很多和我一样的小白也不太懂区块链是什么? 作用是什么? 怎么诞生的 ? 那么你们可以看看这篇非常通俗易懂关于区块链的 文章 . 看完这片文章相信大家都有一个大概的了解.
简单来说, 区块链是因比特币而诞生的一种链式数据结构. 它的概念是去中心化, 并以密码学方式保证不可篡改和不可伪造的分布式账本. 但区块链的作用不仅仅只是作用于比特币交易而已. 区块链的设计是一种保护措施, 比如高容错的分布式计算机系统. 区块链使混合一致性成为可能. 使得区块链适合记录时间, 标题, 医疗记录和其他需要收录数据的活动, 身份识别管理, 交流管理等. 区块链对全球贸易有着很大影响.
1. 区块链维基网络
2. 中本聪阐述比特币原文地址
区块链(BlockChain)需要一个区块来初始化自己. 这个区块也叫做创世区块(Genesis Block), 然后实现后面的 block
文章: 使用 Swfit 和Vapor 构建区块链服务器
Demo : 区块链 Demo
⑽ 区块链设计原则
到目前为止,我们的团队所学到的——关于区块链特定的业务和用户需求——为我们的设计工作提供了信息。
目前,IBM 区块链设计团队正在设计从 供应链流程 到 文档 、从 开源开发人员工具 到 区块链即服务的任何 内容。这是该行业的本质:疯狂地探索一项技术的所有 可能应用,该技术 有可能在金融、医疗保健和政府等领域大幅降低成本和效率低下。
尽管设计有很多不同的方向,但我们用户的需求中有一些共同的主题,这些主题已经影响了我们作为一个团队的设计原则。这是 IBM 区块链设计团队对这些原则的第一次迭代——我们在批评工作和确定设计决策优先级时所关注的内容。
“仅仅因为区块链技术旨在消除对信任的依赖,并不意味着用户会信任机器或网络。”— Jonny Howle ,UX/UI 设计师
我们的许多用户都在处理高度敏感信息的行业,保持他们的信任对我们的业务至关重要。 几乎每个人都是区块链 的“新手” ,理解和信心程度各不相同。用户必须认为我们的产品(及其背后的人)是可靠、值得信赖和稳定的。我们通过仔细的数据公开、一致性、反馈、预测错误和积极指导来实现这一目标。
一些用户需要比其他用户更多地接触区块链数据——许多用户需要了解区块链技术如何取代他们以前的流程,才能觉得它是值得信赖的。数据的暴露会影响用户对应用程序如何工作的理解。例如,数据表明发生了函数调用,或者它可以证明某些东西在密码学上是安全的。
在决定是否包含数据元素时,我们使用以下层次结构:
1.数据必须是 可操作的。
2.如果数据不可操作,则它必须用于建立 信任和/或教育 目的。
“老派”区块链工具向您展示了许多长加密哈希。它们不是人类可读的。它们对用户毫无用处……但人们却 喜欢 它们!为什么?这是一种舒适的感觉:“我可以看到一个非人类可读的链码 ID,所以我相信我正在查看的这个东西是安全的。— Ed Moffat ,设计主管
在产品和客户体验之间建立 视觉一致性 对于感知可信度至关重要。我们使用基于网格的布局(具有有意义且成比例的负空间)、强大的排版层次结构,并应用有意义的颜色。
拥有一致的用户体验可以让我们的用户感到轻松,这对于新的区块链技术尤为重要,因为这可以促进采用和学习。— Tobias Hunter ,用户体验设计师
由于区块链的视觉语言仍在编纂中,我们在使用图像来阐明概念时要小心。虽然我们创建与熟悉元素的关联以帮助用户保留信息,但我们对视觉隐喻持谨慎态度——简化某些概念实际上可能会误导或在以后造成混淆。
我们尽一切努力使用行话少、 一致的术语 。语言应该简洁、清晰,并符合我们用户的自然交流模式。我们保持对话的语气,但不会过于随意或轻率。我们的团队特别关注像 identity 、 update 和 network 等带有含义的词:虽然许多区块链概念与通常理解的含义相似,但它们可能有很大的不同和混淆。
我们为用户所在的任何地方设计。因为区块链的定义是分布式的,所以我们必须在默认情况下跨界设计:UI扩展、图标含义和翻译等必须始终考虑在内。此外,区块链的许多用途本质上是移动的——我们维护一个无论使用何种设备,都能获得 一致的体验。
我们通过设计持续的反馈来帮助我们的用户了解正在发生的事情并减少焦虑。谨慎使用的运动和动画有助于理解正在发生的事情。
当你学习一门外语时,你是通过练习和玩耍来学习的,而不是通过阅读字典。我们正在制作工具和文档,让我们的用户可以玩耍并尝试学习这项新技术。— Sam Winslet ,视觉设计师
用户应该始终知道正在发生什么、刚刚发生了什么以及接下来会发生什么。时间是区块链应用程序中的一个重要元素,很多时候简单的加载器是不够的。
高吞吐量分布式系统本质上是异步的,系统的多个组件依赖于超时或轮询间隔。在等待达到最佳块大小时,可以配置事务(通常持续几秒钟)。SDK 将轮询、等待并重试创建新频道。— Jason Yellick ,软件开发人员
我们确保我们已经考虑(并在发布后测试)活动或功能将花费 的时间并通知用户。 这也适用于界面中的任何指标——用户看到了多少类别,有多少没有显示,等等。
我们的用户喜欢动手实践的 交互式学习, 因此他们可以在创造有形的东西的同时学习。— Raissa Xie ,用户体验研究员
因为区块链实际上是不可变的,所以我们特别关注不可逆的用户行为。如果发生错误,我们会增加摩擦或确认级别以减少错误并直接进行下一步。
零状态在我们的许多产品中都很常见,因此我们确保提供自然的下一步。用户必须有清晰、持久的导航——他们应该很容易知道如何回到之前的状态以及下一步是什么。
我们的用户希望看到简单的说明,以便尽快 进行设置和运行。
— Lucie Wu ,用户体验设计师
由于对可见性的控制是一项业务需求,因此我们确保根据角色考虑界面的不同视图。如果用户无权访问某些数据,我们不会在界面上留下漏洞。
区块链技术相对较新,大多数用户不一定知道他们需要什么。一个好的设计师应该知道如何过滤他们的意见并提出最佳解决方案。设计师通过指导他们完成整个过程,帮助他们了解这项技术可以为他们的生活带来的好处和可能性。
— Andrea Lee ,UI 设计师
我们的团队预计需要进一步的帮助并试图减少它,同时认识到 我们 的角色最有可能去哪里寻求帮助。我们提出见解以创造透明度并消除不确定性,并为用户不记得的事情提供建议。
通过工具提示和进度条向用户展示他们的新词汇,让原本令人生畏的学习任务看起来更轻松。
— Kayla White ,UI 设计师
无论上下文如何,我们都不包含会使界面混乱或使用户感到困惑的元素——每个元素都有一个目的,没有什么是为了装饰。我们利用常见的设计模式并减少用户必须做的学习量。
在许多情况下,我们的多个角色将成为流程的一部分。为了促进协作,我们设计了用户给定任务 之前和之后的步骤。 团队采用我们的技术对我们的业务模式至关重要,因此我们重视包容性、可访问的设计是理所当然的。
为复杂性而设计并不意味着让事情变得简单。使任务更容易,但不要剥夺他们的控制权。
— Dante Guintu ,UI 设计师
对区块链技术的兴奋增加了关注机器需求而不是人类需求的趋势。作为设计师,我们必须不断地重新集中精力解决问题并 为人类 创造愉快的体验。我们必须平衡区块链的本质和以人为本的设计之间的张力。
即使对于非技术用户感兴趣,区块链的技术概念似乎也异常诱人。-
Ed Moffat
因为区块链的许多应用程序都具有非常强大的潜力,所以我们必须注意以合乎道德的方式行事和设计。这意味着确保多样性融入我们的设计——从用户研究参与者到我们的团队本身。
我们的设计团队保持持续协作的状态:研究、测试和警惕不断变化的用户需求和设计模式。我们致力于保护和倡导我们的用户,考虑极端情况和异常值,并考虑用户的情绪。我们努力改善用户的生活,同时不给他们制造新的问题。
设计不是一成不变的。这个群体的主要口头禅是我们追求卓越,而不是完美。
—— 肖恩·巴克莱 ,创意总监
转自:https://medium.com/design-ibm/blockchain-design-principles-599c5c067b6e