草庐IT

区块链与农业溯源上的利与弊

地理探险家 2023-05-26 原文

区块链与农业溯源上的利与弊

区块链技术,是集分布式存储,点对点传输,共识机制,加密算法,数据区块等概念于一体的新型技术合集。著名《经济学人》杂志称:“区块链让人们在互不信任,并没有中立中央机构的情况下,能够做到互相协作,简单地说,它与生俱来就是一台创造信任的机器。”目前,区块链已经从单一的比特币应用,延伸到经济社会的各个领域。
但由于基础设施不完善、产品标准不规范、人为阻力等因素的制约,尤其是“懂技术的人不懂业务,懂业务的人又不懂技术”的现实,如何深刻理解这些技术特性,并将其与现有业务进行融合是目前很多项目遇到的直接困难。众所周知,农产品溯源领域一直是 区块链技术 落地的热点。那么,区块链将在农产品溯源领域的定位如何,它将扮演怎样的角色?本文旨在围绕以上观点展开探讨。

风雨飘摇中的食品安全
近年来,以农产品为代表的食品安全问题屡见不鲜,民众普遍对食品安全充满了忧虑。理论上说,农产品在市面上进行销售前,都会经过相关检测,只有符合标准才可以在市场上销售,因此其基本安全应当能得以保障,但事实显然并非如此。每当我们翻开报纸,打开电脑,或是浏览手机报道时,各种食品安全问题总在撞击着我们本就脆弱不堪的神经。
据报道,中国每年返回餐桌的地沟油有200至300万吨。医学研究称地沟油中的黄曲霉素强烈致癌,而同等剂量下其毒性甚至超过砒霜100倍。2011年,湖北省工商部门在蔬菜市场查获了一批用硫磺熏制过的问题生姜,化工原料硫磺对人体有着显著危害。2012年,又有网友爆出,思念牌黑芝麻汤圆中竟然吃出了创可贴,一石激起千层浪,紧接着又有消费者在该品牌的水饺中发现了死苍蝇。俗话说,民以食为天。可如今遭遇有毒,有害,非健康食品,对人们来说并非什么稀奇事。吃到放心的农产品反倒成了奢望。

究其原因,在目前体系下,中心化的管理机构占据绝对的主导地位。随着网络规模的扩大,中心服务器不但会因为基础设施和维护占用更为高额的成本,更为重要的是,由于体系中众多主体构成的交易数据并不公开透明,这样会导致一些问题。首先,由于信息不流畅,导致各主体都难以准确了解实时状况,影响协同效率;其次,由于旁观者效应,潜在问题浮现的时候,大家都倾向于认为是别人的问题,自己没有动力去更正;第三,当各主体间出现问题纠纷时,确认相关责任人的举证和追责往往费时费力。
在传统的溯源系统中,账本信息主要由各市场参与者零散的记录和存储,彼此近似看做是一种信息孤岛。在这种模式下,能否可信维护账本就成为了问题的关键,无论是源头企业,抑或是渠道商,还是流转链条上的其他相关人员,当账本信息不利于自己时,拥有者都可以随心所欲的对记录进行篡改,或者直接事后编造。因此,随着未来企业市场范围的扩大,对智能高效和防伪溯源能力的需求进一步迫切。

与生俱来的信任机器
区块链最大的魅力是,作为一个以去中心化为理念的技术,它的数据在交易各方公开透明,从而在整个链条上形成一个完整而流畅的信息流。由于区块链具有的数据不可篡改和时间戳的存在性证明的特质,这使得追溯交易变得容易起来。

现在农产品平台,因为供应链有着极为复杂的生产运输加工流程,这个流程里包括了农民、仓储公司、运输公司、经销商以及超市和零售店面等众多方面参与。前面说到,传统的溯源虽然有着一定效果,但其成本较为高昂,并且数据很容易造假。区块链技术的运用不但有效的降低了食品检查的成本,更重要的是,能够借助区块链技术,实现对各参与机构之间实现信任共享,对商品原材料过程、生产过程、流通过程、营销过程的信息进行整合并写入区块链,实现精细到一物一码的全流程正品追溯。
例如,伦敦的一家区块链企业利用区块链技术致力于为电商企业提供供应链解决方案,该公司现已得到前创世纪乐队主唱彼得·加布里埃尔(Peter Gabriel)的投资。公司宣称将通过区块链在食品运输中创造更好的透明度,并将于2025年会在1000多家食品企业实施基于区块链的应用。彼得称:“我们需要能够信任来源和渠道,特别是要确保产品以合乎道德和生态的方式生产。我相信,通过基于区块链数据系统提供的溯源服务,将对消费者产生巨大影响”。

我们提到,农产品的供应链是一个非常复杂的过程,不但从农田到餐桌上涉及到一整套中间商,更与农业局,卫生局,药监局,工商局,环保局等多个官方部门产生着交集,这个过程中利益盘综错杂,显然仅仅依靠人去执行制度和采取处罚措施显然是不足的,想要净化这个环境必须得到技术层面的支持。

区块链实质上的作用是创造信任,它以一种相对比较廉价的用来建立复杂信任关系的一种基础设施。由于区块链以极低的成本解决了信任和价值的可靠传递难题,具备防篡改和防伪的特性,这有助于构建一个更加共享开放,透明可信并可核查追溯的系统,从而帮助链条上的每个环节之间迅速的达成信任关系。

落地难题与真实地位之辨

任何新技术在诞生之初都会面临各种各样的问题。对“区块链+农产品溯源”而言,也存在着各种各样的落地难题。
首先,用户对区块链接受程度有限。这将会造成很多实际使用中的认知差异。对没有相关技术经验的企业用户而言,天然会觉得补私钥可能和补身份证或者营业执照差不多,事实上这根本不一样,私钥一旦丢失,便无法对账户的资产做任何操作。同时,如果数据上传标准的不做出统一规范,也会给一般用户带来困扰。这只能通过技术的发展,逐渐来改变。
此外,不实数据几乎是所有区块链溯源场景中最大的痛点,区块链只能保证上传的数据不会被篡改,但并不能保证上传的数据本身就是真的。对此,区块链也只能在很大程度上增加造假的成本,这方面肯定还是得依靠策略和技术同时配合使用。

第三,各市场主体还有着用户隐私和交易保密方面的疑虑。我们知道,作为去中心化的账本,每个节点都掌握着区块链账本的全部信息,企业并非愿意把所有的数据和交易都公开,这里可能涉及到一些机密数据。但这并非难以解决,区块链通过多重的隐私保护方案来保护用户隐私。底层交易数据通过加密方式存储,仅对企业用户本身可见;上层应用通过严格的权限控制确保隐私安全。

最后,还存在所谓“真瓶装假酒”的问题。通过技术只能证明酒瓶本身是真的,但是怎么证明瓶子里的酒没有被掉包?这里以大闸蟹为例。众所周知,大闸蟹以阳澄湖出品最为知名。为了打击“冒牌蟹”,阳澄湖地区为当地蟹农颁发了一批防伪吊牌,但吊诡的是,市场上很多假蟹,也一样持有防伪吊牌!

因为市场对于区块链应用落地的期望过于急切,并且希望其一步到位解决所有问题,但这显然比较困难。我一直在说,区块链跟现有技术的关系是一脉相承的,它只是在解决信任难题上多走了一步,它的真实地位应该是一个有力的技术支撑,或者一块可靠的补丁,而非颠覆者。比如大闸蟹的防伪吊牌,如果应用以区块链技术,并对吊牌总量做出一定限制,它在变得不可篡改之余,每一批蟹蟹的去向都将有据可查,从而对假蟹问题形成有力控制。

因此,对区块链的定位,应该是站在改善的立场上,区块链在现有的模式上做出了升级。因为区块链技术,供应链上的交易变得清清楚楚,但并非区块链一出,所有问题都将迎刃而解,这是不现实的,它并非药到病除的灵丹妙药,事实上也不存在一个能解决所有问题的技术。

结语:
创造信任,减低成本,提升效率,这是区块链技术的显著优势。如今区块链领域最吸引人关注的就是商业化的落地问题。我们知道,区块链落地难的一大原因是企业的业务部门缺乏动力,在“衣食无忧”的时候,谁也不会忙着新产品的开发。现在,“区块链+农产品溯源”是一个非常好的落地切入点,食品安全也是现阶段民众最为关心的问题之一,传统的方法越来越显得捉襟见肘。正是因为存在诸多痛点,区块链正在以其自身的优势,为农产品溯源带来新的助力。

尽管目前的商业模式仍充满不确定因素,但将区块链应用在农产品溯源领域上有着迫切的需求和技术的可行。一旦区块链在农产品溯源上实现落地,必将引发新的一轮区块链热潮,对于产业先行者而言,领先将率先分享技术变革红利。

区块链溯源技术优点:
1、不可篡改
2、减少检验检疫的工作量。不会由于不信任而开展多次检验检疫。
3、成本较低

区块链溯源技术缺点或还不能解决的问题:
1、秘钥一旦丢失,便无法对账户的资产做任何操作,由于其特殊的密码逻辑,不能进行找回密码操作。
2、只能保证上传的数据不会被篡改,但并不能保证上传的数据本身就是真的。
3、通过技术只能证明酒瓶本身是真的,但是怎么证明瓶子里的酒没有被掉包。只能保证装苹果的盒子是真的,但盒子里的苹果被人换了是无法知道的。

有关区块链与农业溯源上的利与弊的更多相关文章

  1. ruby-on-rails - date_field_tag,如何设置默认日期? [ rails 上的 ruby ] - 2

    我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问

  2. ruby-on-rails - openshift 上的 rails 控制台 - 2

    我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新ruby​​gems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems

  3. ruby-on-rails - 相关表上的范围为 "WHERE ... LIKE" - 2

    我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que

  4. 区块链之加解密算法&数字证书 - 2

    目录一.加解密算法数字签名对称加密DES(DataEncryptionStandard)3DES(TripleDES)AES(AdvancedEncryptionStandard)RSA加密法DSA(DigitalSignatureAlgorithm)ECC(EllipticCurvesCryptography)非对称加密签名与加密过程非对称加密的应用对称加密与非对称加密的结合二.数字证书图解一.加解密算法加密简单而言就是通过一种算法将明文信息转换成密文信息,信息的的接收方能够通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,算法可以分为对称加密、非对称加密、对称加密和非

  5. ruby-on-rails - Ruby - 如何从 ruby​​ 上的 .pfx 文件中提取公钥、rsa 私钥和 CA key - 2

    我有一个.pfx格式的证书,我需要使用ruby​​提取公共(public)、私有(private)和CA证书。使用shell我可以这样做:#ExtractPublicKey(askforpassword)opensslpkcs12-infile.pfx-outfile_public.pem-clcerts-nokeys#ExtractCertificateAuthorityKey(askforpassword)opensslpkcs12-infile.pfx-outfile_ca.pem-cacerts-nokeys#ExtractPrivateKey(askforpassword)o

  6. 带有 attr_accessor 的类上的 Ruby instance_eval - 2

    我了解instance_eval和class_eval之间的基本区别。我在玩弄时发现的是一些涉及attr_accessor的奇怪东西。这是一个例子:A=Class.newA.class_eval{attr_accessor:x}a=A.newa.x="x"a.x=>"x"#...expectedA.instance_eval{attr_accessor:y}A.y="y"=>NoMethodError:undefinedmethod`y='forA:Classa.y="y"=>"y"#WHATTT?这是怎么回事:instance_eval没有访问我们的A类(对象)然后它实际上将它添加到

  7. ruby-on-rails - rails 上的 ruby : radio buttons for collection select - 2

    我有一个集合选择:此方法的单选按钮是什么?谢谢 最佳答案 Rails3中没有这样的助手。在Rails4中,它是collection_radio_buttons. 关于ruby-on-rails-rails上的ruby:radiobuttonsforcollectionselect,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/18525986/

  8. ruby - 将命令行上的变量传递给 Cucumber 测试 - 2

    我正在尝试将cucumber项目的用户名和密码置于版本控制之外。有没有办法在命令行上手动将用户名和密码等变量传递给Cucumber脚本?我的备份计划是将它们放在一个YML文件中,然后将该文件添加到gitignore,这样它们就不会被置于版本控制中。 最佳答案 所以,我看到了您对铁皮人的评论,答案是肯定的。cucumberPASSWORD=my_passwordPASSWORD被设置为环境变量,您可以通过将其引用为ENV['PASSWORD']来使用它的值。例如,browser.text_field(:id=>'pwd').setEN

  9. ruby - 将哈希值保存到 Ruby 上的文件 - 2

    我刚刚迈出了编程的第一步。我刚刚完成了CodeAcademy的另一门类(class)。这次我被要求创建一个小电影目录。这是我的问题:如何在文件中保存/加载带有电影标题和评级的哈希值而不是自己的代码?下面是代码现在的样子(几句葡萄牙语,但您可以忽略它:movies={Memento:3,Primer:4,Ishtar:1}puts"Oquevocêgostariadefazer?"puts"--Digite'add'paraadicionarumfilme."puts"--Digite'update'paraatualizarumfilme."puts"--Digite'display'

  10. ruby - 在 RUBY 上的 PADRINO 框架上使用 RSPEC 进行测试的教程 - 2

    我是Ruby新手,并被要求在我们的新项目中使用它。我们还被要求使用Padrino(Sinatra)作为后端/框架。我们被要求使用Rspec进行测试。我一直在寻找可以指导在Padrino上使用RspecforRuby的教程。我得到的主要是引用RoR。但是,我需要RubyonPadrino。请在任何入门/指南/引用/讨论等方面指导我。如有不妥之处请指正。可能是我没有针对我的问题搜索正确的词/短语组合。我正在使用Ruby1.9.3和Padrinov.0.10.6。注意:我还提到了SOquestion,但它没有帮助。 最佳答案 我没用过Pa

随机推荐