Page 27 - ITU Journal - ICT Discoveries - Volume 1, No. 2, December 2018 - Second special issue on Data for Good
P. 27

ITU JOURNAL: ICT Discoveries, Vol. 1(2), December 2018




          Poelstra,   Wilkins,   Piekarska,   Gorlick,   and   A  sidechains attribute  is defined using ASN.1 as
          Friedenbach   describe   a   sidechain   as   an     follows:
          interoperable blockchain solution that can be used
          to decentralize  risk and enhance security [10]. In   sidechains ATTRIBUTE ::= {
          their   proposed    blockchain-based     system,       WITH SYNTAX  Sidechains
                                                                          ID  id-Sidechains
          sidechains  provide  a  mechanism  for  moving       }
          "assets to and from other blockchains" [10]. Once
          an  asset  is  moved  to  a  sidechain,  the  sidechain   Sidechains ::=
          participants  can  manage  their  own  operational     SEQUENCE SIZE(0..MAX) OF linked Sidechain

          environment without affecting any parent blocks.     Sidechain ::= HashPointer
          This  splitting  of  operations  "between  entities"   The syntax of a sidechains attribute is a series of
          serves to "limit the damage an attacker can cause"   values of type Sidechain. A value of type Sidechain
          to  the  overall  system  [10].  This  mechanism  also   links  a  parent  block  to  a  sidechain.  This  linkage
          provides additional system agility benefits. Though   relies on type HashPointer defined in section 3.1.
          the "chains are still attached" the sidechain can be   Type Sidechain contains two optional components,
          used to test new system features and to isolate a    named  hash  and  pointers.  In  a  value  of  type
          set of logical activities "without harming the main   Sidechain,  the  pointers  component  must  be
          network  should  vulnerabilities  arise"  [11].  The   present. When the message digest of the sidechain
          blocksigners  "who  sign  blocks  of  transactions  on   block  header  can  be  calculated,  the  hash
          the  sidechain"  and  define  "its  consensus  history"   component of type Sidechain can also be included.
          can  use  a  different  consensus  mechanism  and
          different cryptographic algorithms than those used   When a new sidechain root block is created, it may
          on the parent blockchain [10].                       be doubly linked to point back to the parent block
                                                               as shown in Fig. 3.
          5.2  Fixed sidechains

          One  or  more  fixed  sidechains  can  be  added  to  a
          new top block of a parent SignedData blockchain as
          the  block  is  created.  Pointers  to  these  fixed
          sidechains can be  included in the  parent block
          header using the signed attribute, sidechains. The
          sidechains attribute is cryptographically bound to
          the new top block of the parent blockchain under a
          digital signature to link sidechains to the parent.

          Fixed  sidechain  pointers  cannot  be  modified  or
          removed from the signed attributes of the  parent
          block header without detection. Each parent block
          header is a value of type SignerInfo, which includes
          a  precedingBlock attribute and a  timestamp.  This             Fig. 3. Fixed SignedData sidechain
          signed attribute hash-links the parent blocks of the
          blockchain together, and cannot be altered without   To  link  the  sidechain  back  to  the  parent  block,  a
          loss of blockchain integrity. Each sidechain pointer   parentBlock attribute must be included in the root
          can locate a new sidechain root block, or point to   block  of  the  new  sidechain.  The  parentBlock
          any block  that already exists. Pointers to existing   attribute is similar to the precedingBlock attribute
          blocks  may  locate  blocks  within  the  parent     defined  in  section  3.1.  The  parentBlock  and
          blockchain,   perhaps   to   associate   related     precedingBlock attributes have different identifier
          information  contained  in  preceding  blocks.  A    names so that applications can readily distinguish
          sidechain  pointer  can  also  point  to  a  distributed   between these two types of links.
          block, a block whose physical location differs from
          that of the parent block.                            Subsequent blocks added to a sidechain root block
                                                               must  include  a  precedingBlock  attribute.  This
                                                               attribute should not be included in the root block




                                             © International Telecommunication Union, 2018                     5
   22   23   24   25   26   27   28   29   30   31   32